我们已将 ActiveMQ 放在新服务器上。将其配置为使用“kahadb”(我们读到的首选)并将其设置为允许文件扩展到 2GB。
然后,当我们将负载放入队列时(+- 500/秒),几分钟内 activemq 就会崩溃。
当 ActiveMQ 尝试重新启动时,它无法重新启动,因为数据库已损坏:
2010-11-29 13:00:50,359 | ERROR | Failed to start ActiveMQ JMS Message Broker. Reason:
java.io.EOFException | org.apache.activemq.broker.BrokerService | WrapperSimpleAppMain
java.io.EOFException
at java.io.RandomAccessFile.readFully(RandomAccessFile.java:383)
at java.io.RandomAccessFile.readFully(RandomAccessFile.java:361)
at org.apache.kahadb.page.PageFile.readPage(PageFile.java:792)
at org.apache.kahadb.page.Transaction.load(Transaction.java:411)
只有删除数据库并让它使用日志自行修复才能再次启动,但几分钟后又会崩溃。
还有其他人遇到这些可靠性问题吗?
ActivemQ(5.4.1)安装在Win2003上,Java64位(1.6.0__22)
负载由 4 个使用 Stomp 运行 PHP 的网络服务器完成。
这是 5.4.1 的已知问题。它已在 5.4.2 版本中修复并可用,现在随时都会发布。您可以从这里测试候选版本:https://repository.apache.org/content/repositories/orgapacheactivemq-023/org/apache/activemq/apache-activemq/5.4.2/
我也注意到了这个问题(性能不佳,并且多台机器在高流量时崩溃)。它确实在最新版本中得到了修复,但我建议在生产系统上降级到 5.3.2。