ActiveMQ消息回流

可能有时候我们会遇到消息丢失的场景,比如broker1和broker2通过networkConnector连接,一些消费者连接到broker1,消费broker2的消息。broker2的消息先被broker1消费掉,然后broker1转发给这些消费者。但是转发部分消息的时候,broker1挂掉了或者重启了。这些消费者发现broker1连接失败,通过failover连接到broker2上去了。但是broker2之前转发给broker1的还有部分消息没有被消费,除非有其他的消费者连接到broker1上面去消费,这时候,怎么办呢?

 

destinationPolicy上有一个选项replayWhenConsumers,这个选项使得broker1上有需要转发的消息但是没有消费时,把消息回流到他原始的broker,同时把enableAudit设置为false,为了防止消息回流后被当做重复消息而不被分发。

 

<destinationPolicy>

      <policyMap>

        <policyEntries>

           <policyEntrytopic=">" enableAudit="false">

             <networkBridgeFilterFactory>

                 <conditionalNetworkBridgeFilterFactoryreplayWhenNoConsumers="true" />

             </networkBridgeFilterFactory>

             <pendingMessageLimitStrategy>

                 <constantPendingMessageLimitStrategylimit="1000"/>

             </pendingMessageLimitStrategy>

           </policyEntry>

        </policyEntries>

      </policyMap>

</destinationPolicy>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

莫言静好、

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值