【问题标题】:activemq performance gotchas and precautionsactivemq性能陷阱及注意事项
【发布时间】:2011-11-19 18:37:04
【问题描述】:

我将在我的一个项目(持久消息主题)中第一次使用 ActiveMQ。我读过持久消息强制限制每秒消息数量的规模。还有哪些我应该注意的其他因素(例如缓慢的消费者)限制了 activemq 的规模和性能特征,应该密切监控哪些指标,以及在什么情况下,所有的地狱都将失去价值。

目前我预计 ActiveMQ 中每秒推送的事件不会超过一千个。

【问题讨论】:

    标签: performance jms scalability activemq


    【解决方案1】:

    这里有一些提示...

    • 从默认值提高您的系统使用限制
    • 从默认值增加 JVM 堆大小
    • 如果使用KahaDB,请考虑将 enableJournalDiskSyncs 设置为 false(显着提高吞吐量)或最好使用新的 LevelDB
    • 了解producer flow control 并考虑禁用(经常这样做)
    • 考虑使用virtual topics(而不是持久主题消费者)
    • 了解prefetch-limit 并根据需要进行调整

    【讨论】:

      【解决方案2】:

      我在使用 activeMQ 时遇到的两个具体问题:

      1) 每个需要调整的队列都有内存限制。除非您更改配置,否则 ActiveMQ 不会填满您的堆。所以你需要设置-Xmx 并更改配置以使用更多内存。

      2) 与 #1 相关,默认情况下,sender(客户端)会在达到限制时阻止。在较新的版本中,有一个设置可以避免这种情况并引发异常。见http://activemq.apache.org/producer-flow-control.html

      【讨论】: