ActiveMQ(11):集群下的消息回流功能
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ActiveMQ(11):集群下的消息回流功能相关的知识,希望对你有一定的参考价值。
一、简介
1.1 “丢失”的消息
有这样的场景,broker1和broker2通过networkConnector连接,一些consumers连接到broker1,消费broker2上的消息。消息先被broker1从broker2上消费掉,
然后转发给这些consumers。不幸的是转发部分消息的时候broker1重启了,这些consumers发现broker1连接失败,通过failover连接到broker2上去了,但是
有一部分他们还没有消费的消息被broker2已经分发到了broker1上去了。这些消息,就好像是消失了,除非有消费者重新连接到broker1上来消费。怎么办呢?
丢失现象测试:
1、在61616上发出30个消息,然后在61676上接收3个消息,结果消息全转到61676上来了
2、再在61616上接收消息时,接收不到了:
从5.6版起,在destinationPolicy上新增的选项replayWhenNoConsumers。这个选项使得broker1上有需要转发的消息但是没有消费者时,把消息回流到它原始
的broker。同时把enableAudit设置为false,为了防止消息回流后被当做重复消息而不被分发,示例如下:在activemq.xml下的<policyEntries>下
<policyEntry queue=">" enableAudit="false"> <networkBridgeFilterFactory> <conditionalNetworkBridgeFilterFactory replayWhenNoConsumers="true"/> </networkBridgeFilterFactory> </policyEntry>
注意:这个配置在61616和61676上都要配置才可以
本文出自 “我爱大金子” 博客,请务必保留此出处http://1754966750.blog.51cto.com/7455444/1916763
以上是关于ActiveMQ(11):集群下的消息回流功能的主要内容,如果未能解决你的问题,请参考以下文章
JAVAEE——宜立方商城08:Zookeeper+SolrCloud集群搭建搜索功能切换到集群版Activemq消息队列搭建与使用