记activemq删除topics后,再次推送数据到消费端无法进行消费
AI 摘要
在使用activemq时,删除并重新创建同名topics后,消费端无法消费消息。解决方法是修改消费者的clientId并确保消费者先启动,订阅成功后再推送消息,避免连接名和订阅名称重复。
date
Dec 13, 2024
URL
slug
activemq-topics-tips
status
Published
tags
activemq
mq
消息队列
springboot
summary
因activemq的topics中数据过多无法直观判断推送数量,所以将原来topics删除重新创建了一个同名的topics。推送数据后,消费端没有进行消费,但是在本地启动的消费者可以消费。
消费端服务重启后,也出现了无法消费消息的情况。
队列中存在未消费的数据,其他消费端启动后并没有对其进行消费。
type
Post
问题
因activemq的topics中数据过多无法直观判断推送数量,所以将原来topics删除重新创建了一个同名的topics。推送数据后,消费端没有进行消费,但是在本地启动的消费者可以消费。
消费端服务重启后,也出现了无法消费消息的情况。
队列中存在未消费的数据,其他消费端启动后并没有对其进行消费。
解决
修改消费者clientId后,先启动消费者,使消费者订阅成功后。生产者推送消息消费者才可接收到消息。
删除topics同时,需要将订阅当前topics的消费者也删除掉

原因
目前来看可能为消费端连接名问题,修改了连接名重启后,生产者发送消息,生产者可接收到。但这好像并不能在根本上解决此问题。
生产者的clientId定义时需要注意不可与消费者的重复,订阅名称也不可重复。
activemq需要消费者先启动,订阅成功后生产者再进行推送才可正常使用。
只删除了topics之前对应订阅的消费者还存在,还是会订阅原来的topics。