ActiveMQ性能问题及注意事项

发布于 2024-12-04 23:45:21 字数 171 浏览 1 评论 0原文

我将在我的一个项目(持久消息主题)中第一次使用 ActiveMQ。我读到持久消息对每秒消息数量的规模施加了限制。我应该注意哪些其他因素(例如缓慢的消费者)限制了 activemq 的规模和性能特征,应该密切监控哪些指标,以及什么值会导致所有的崩溃。

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

I am going to use ActiveMQ for the first time in one of my projects (topics for durable messages). I have read that durable messages enforce a limit to the scale of number of messages per second. What are the other factors that I should be aware of (e.g. slow consumers) that puts a limit to the scale and performance characteristics of activemq and what metrics should be closely monitored and what are the values at which all hell breaks lose.

I don't expect to be pushing more than a thousand events per second in ActiveMQ for now.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

烟沫凡尘 2024-12-11 23:45:21

这里有一些提示...

  • 增加默认值的 systemUsage 限制
  • 增加默认值的 JVM 堆大小
  • 如果使用 则 KahaDB,考虑将enableJournalDiskSyncs设置为false(显着提高吞吐量)或最好使用新的LevelDB
  • 了解生产者流量控制并考虑禁用(经常执行)
  • 考虑使用虚拟主题(而不是持久主题消费者)
  • 了解预取限制并根据需要进行调整

here are a few tips...

  • increase your systemUsage limits from the defaults
  • increase your JVM heap size from the defaults
  • if using KahaDB, consider setting enableJournalDiskSyncs to false (helps throughput dramatically) or preferably use the new LevelDB
  • learn about producer flow control and consider disabling (frequently done)
  • consider using virtual topics (instead of durable topic consumers)
  • learn about prefetch-limit and tweak as needed
救星 2024-12-11 23:45:21

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

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

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

Two specific issues I ran into with activeMQ:

1) There are memory limits enforced per queue that need to be tuned. ActiveMQ won't fill up your heap unless you change the config. So you need to set -Xmx and change the config to use more memory.

2) Related to #1, by default the sender (client) blocks when limits are reached. In newer versions, there is a setting to avoid this and have an exception thrown instead. See http://activemq.apache.org/producer-flow-control.html.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文