阅读ActiveMQ文档(我们正在使用5.3版本),我找到一个关于使用ActiveMQ使用JDBC持久性适配器的可能性的部分.
有什么好处?它是否提供性能或可靠性的任何增益?什么时候应该用它?
解决方法
在我看来,如果您想要一个故障切换代理,并且您无法使用该文件系统,您将使用JDBC持久性. JDBC持久性比在日志文件系统中慢得多(在我们的测试期间).对于单个代理商,日志文件系统是最好的.
如果您在主动/被动故障切换中运行两个经纪人,则两个经纪人必须能够访问相同的日志/数据存储,以便被动代理可以检测并接管主要的故障.如果您使用的是日志文件系统,那么这些文件必须位于使用NFS,WinShare,iSCSI等的某种共享网络驱动器上.如果要将文件共享删除,通常需要一个更高端的NAS设备单点故障.
另一个选择是您可以将这两个经纪人指向数据库,哪些大多数应用程序已经可以访问.这种折衷通常是性能上的简单性,因为我们的测试中记录的JDBC持久性较慢.
我们通过NFS挂载到一个专用的NAS设备,将ActiveMQ运行在具有日志记录持久性的主动/被动代理对中,并且对我们来说非常有效.我们能够通过我们的系统处理超过600 msgs /秒没有任何问题.