【发布时间】:2011-10-15 09:29:00
【问题描述】:
ActiveMq v 5.5 带有配置为 KahaDB 的默认消息存储。有人在企业级解决方案中使用它吗?应该用 MSSQL 代替它吗?他们每个人都有什么好处?
【问题讨论】:
ActiveMq v 5.5 带有配置为 KahaDB 的默认消息存储。有人在企业级解决方案中使用它吗?应该用 MSSQL 代替它吗?他们每个人都有什么好处?
【问题讨论】:
持久性机制应该基于您的应用程序的需要。一个密切相关的问题是故障转移/可用性。
单纯从消息持久化的速度来说,KahaDB 会是最快的;它专门针对围绕消息传递(写入/读取/丢弃)的模式进行了调整。如果您使用 MSSQL 之类的东西,即使启用了日志功能,您也会在效率上放弃数量级(以 mgs/sec 为单位)。如果您关心发布大量消息并愿意将消息恢复留给管理员或某些“在这里发明”的过程,则此设置非常有效。
那么,为什么要选择不同的持久性机制呢?高可用性。
Re:类似于关系数据库的东西,它可能已经在您的企业中可用,这意味着某人(希望)经历了集群和测试灾难恢复的努力。这意味着您应该能够进行主/从设置,并且如果主服务器出现故障,您的消息将可以恢复。从站将检测到锁丢失并开始使用完全相同的消息存储。如果您的性能阈值低得多,但您非常关心正常运行时间并确保您始终可以发布/订阅消息,则此设置非常理想。
无论如何,在经过良好调整的系统中,我们所说的 >= 数百条消息/秒,因此性能考虑可能将成为您的首要关注点。如果性能真的那么重要,我会考虑查看RabbitMQ 之类的东西,这绝对有助于提高效率,但代价是使高可用性的设置更加复杂。 p>
这是discussion on some of the failover options with ActiveMQ。我已经决定使用共享文件主/从设置,并在 SAN 上共享 KahaDB。似乎是一个不错的中间解决方案。
【讨论】: