【发布时间】:2015-06-18 18:55:53
【问题描述】:
下面是配置:
- 2 个 JBoss 应用程序节点
- 应用节点上有5个监听器,每个监听器有50个线程,支持 集群并设置为主动-主动侦听器,因此它们运行在 两个应用节点
- 侦听器只需获取消息并将信息记录到 数据库
- 使用 JMeter 将 50000 条消息发布到 ActiveMQ。
这是对第一次执行的观察:
- 在大约 22 分钟内消耗了总共 50000 条消息。
- 大约 1 分钟内消耗的前 0-10000 条消息
- 大约 2 分钟消耗 10000-20000 条消息
- 大约 4 分钟消耗 20000-30000 条消息
- 大约 6 分钟消耗 30000-40000 条消息
- 8 分钟消耗 40000-50000 条消息
所以我们看到消息消耗时间随着消息数量的增加而增加。
不重启任何服务器的第二次执行:
- 大约 53 分钟内消耗了 50000 条消息!
但是在删除activemq的data文件夹并重启activemq之后, 性能再次提高,但随着更多数据进入队列而下降!
我在activemq.xml中尝试了多个配置,但都没有成功...
有人遇到过类似的问题,有解决办法吗?让我知道。谢谢。
【问题讨论】:
-
是否有消息消费失败? KahaDB(我假设这就是您正在使用的,尽管您确实需要在您的问题中指定它)如果其中的一条消息仍未使用(提示:在 DLQ = 未使用),则将保留整个文件,因此可以解释为至少有一些放缓。