Apache ActiveMQ Artemis集群队列消息堆积问题排查咨询
Apache ActiveMQ Artemis Cluster Queue Message Backlog Issue
我们在运维Apache ActiveMQ Artemis集群队列时碰到了一个头疼的问题:特定集群队列会时不时出现消息堆积,这种情况每天会发生1-4次,绝大多数时候都出现在生产环境(过去90天里测试环境仅触发过1次)。堆积的消息完全无法投递到集群内其他Broker上的消费者,唯一能恢复的办法就是重启集群连接器(或者干脆重启整个Broker)。根据症状比对,我们怀疑这个问题和ARTEMIS-3809有关联。
环境配置
- 集群架构:单环境部署6台服务器,划分为3组主备节点
- 操作系统:Red Hat Linux
已尝试的解决措施
- 把Artemis版本从2.22.0升级到了2.23.1,希望修复已知的集群相关问题
- 调整集群连接器的
minLargeMessageSize参数值为1024000
不过这里有个配置上的小插曲:我们原本想按照官方文档在cluster-connection节点里配置min-large-message-size,但Broker启动时直接报错,提示broker.xml没通过XSD校验,所以只能退而求其次,在每个集群Broker的连接器URL参数里指定minLargeMessageSize,现在我们不确定这个配置是否真的生效了。
目前我们已经写了个监控脚本,用来检测集群队列的消息堆积情况,一旦发现异常就自动重启集群连接器,算是个临时的应急方案,但根本问题还没解决。
寻求帮助
- 这种没有任何日志报错的消息堆积问题该怎么排查?堆积发生时,Broker日志里完全看不到相关的错误信息或者堆栈跟踪,我们毫无头绪。
- 需要开启哪些类的调试/追踪级别的日志,才能抓到集群连接器的异常细节?
内容的提问来源于stack exchange,提问作者Aleksandr Milovidov
相关产品推荐
相关产品推荐

