ActiveMQ 5.4.1与5.3.2版本对比及集群配置分析

版权申诉
0 下载量 106 浏览量 更新于2024-08-04 收藏 95KB DOCX 举报
"activemq学习心得" 在深入探讨ActiveMQ的学习心得之前,首先明确一点,ActiveMQ是Apache软件基金会下的一个开源消息中间件项目,它实现了多种消息协议,如OpenWire、AMQP、STOMP、XMPP等,使得应用程序能够通过消息传递方式解耦。 在文档中提到的版本5.4.1和5.3.2,这是ActiveMQ的两个不同版本。从描述来看,5.4.1存在一个bug,当消息队列消费完后,第二次填充需要等待数分钟,第三次则无法再生产消息。作者因此转而使用5.3.2进行测试。这表明在升级或选择ActiveMQ版本时,需要注意兼容性和已知问题,尤其是对于关键业务来说,稳定性是至关重要的。 在5.3.2的配置文件中,我们看到了`<persistenceAdapter>`和`<systemUsage>`的部分。`persistenceAdapter`配置了KahaDB作为持久化存储,`directory="${activemq.base}/data/kahadb"`指定了数据库文件的位置,`journalMaxFileLength="50mb"`限制了日志文件的最大大小。KahaDB是ActiveMQ的一种日志管理机制,用于保证消息的持久化和快速恢复。 `<systemUsage>`部分定义了系统使用的资源限制。`<memoryUsage>`设置了内存使用上限为400MB,`<storeUsage>`设定了存储空间上限为1GB,`<tempUsage>`则限制临时存储为100MB。这些设置有助于控制ActiveMQ在运行时对系统资源的消耗,防止过度使用导致性能下降或系统崩溃。 文档还提到了ActiveMQ在特定配置下可存储约78万条数据,大约占用1GB硬盘空间和400MB内存,且在150分钟内完成。这意味着在平均一秒处理100条消息的情况下,ActiveMQ表现出了良好的处理能力。当然,这个速度是在普通PC上的测试结果,实际服务器可能可以达到更高的处理速率,例如4000条每秒。 在集群方面,ActiveMQ支持集群部署以实现故障转移和负载均衡。然而,当服务器出现未消费消息时,若服务器宕机,这些消息只能在服务器恢复后才能被消费。为解决这个问题,文档建议使用主从(master/slave)模式,但这会带来性能影响,因为主节点恢复时需要停止从节点。集群有两种模式: 1. Failover:当主服务器失效时,客户端能够自动切换到备用服务器,确保服务的连续性。 2. Network:这种模式用于跨服务器的消息传播,使得一个服务器产生的消息能够在网络中的其他服务器上被消费,提高了消息的可达性。 ActiveMQ的学习和实践涉及到配置优化、资源管理、高可用性策略等多个方面。理解并熟练掌握这些知识点对于构建可靠、高效的消息传递系统至关重要。