关于activeMQ的死信消息
最近想把activemq服务配置成failover的,但是出了点小问题,虽然不影响使用,看着不爽,大家看一下是否碰到过类似问题?
两个broker用的是"Shared File System Master Slave"这种方式做failover,jmsFactory是这样配置的:
<bean id="jmsFactory" class="org.springframework.jms.connection.CachingConnectionFactory">
<property name="brokerURL">
<value> failover:(tcp://localhost:61616,tcp://localhost:61617)?randomize=false</value>
</property>
</bean>
这时消息的收发都没有问题,failover也生效了,奇怪的是 ActiveMQ.DLQ里出现了死信消息,而且每条消息都会出现在DLQ队列里,这是为什么?但又不影响正常队列的使用。
开始以为是多个broker造成的,但是后来去掉1个broker,只留1个,jmsFactory配置只配置一个消息服务地址,如下:
failover:(tcp:10.0.0.187:61616)?randomize=false,
这时还是会出现死信消息
只有使用普通的单broker配置没有问题,没有出现死信消息,如下
<bean id="jmsFactory" class="org.springframework.jms.connection.CachingConnectionFactory">
<property name="brokerURL">
<value> tcp://localhost:61616</value>
</property>
两个broker用的是"Shared File System Master Slave"这种方式做failover,jmsFactory是这样配置的:
<bean id="jmsFactory" class="org.springframework.jms.connection.CachingConnectionFactory">
<property name="brokerURL">
<value> failover:(tcp://localhost:61616,tcp://localhost:61617)?randomize=false</value>
</property>
</bean>
这时消息的收发都没有问题,failover也生效了,奇怪的是 ActiveMQ.DLQ里出现了死信消息,而且每条消息都会出现在DLQ队列里,这是为什么?但又不影响正常队列的使用。
开始以为是多个broker造成的,但是后来去掉1个broker,只留1个,jmsFactory配置只配置一个消息服务地址,如下:
failover:(tcp:10.0.0.187:61616)?randomize=false,
这时还是会出现死信消息
只有使用普通的单broker配置没有问题,没有出现死信消息,如下
<bean id="jmsFactory" class="org.springframework.jms.connection.CachingConnectionFactory">
<property name="brokerURL">
<value> tcp://localhost:61616</value>
</property>
</bean>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
DLQ一般是投递失败或消息过期,
检查下是那种情况
木有,你有线索的话请告诉我
OK
回复
您好,这个现在知道什么原因了么。。。求指教。
回复
@伊森papa : 我这也是,好奇怪哦
解决了么。我配置动态集群的brokerURL也有问题,配置2个会接受很慢