
测试:
一、单向的情况

重启mq
接上一篇的代码,稍作修改



先运行QueueSender1,发送30条消息到brokerA
然后,运行QueueReceiver2,开始消费,过几秒,停止。此时,brokerB把30条消息都拿到自己这边了。
再运行QueueReceiver1,一条消息也收不到。
二、双向的情况

重启mq
先运行QueueSender1,发送30条消息到brokerA
然后,运行QueueReceiver2,开始消费,过几秒,停止。此时,brokerB把30条消息都拿到自己这边了。
再运行QueueReceiver1,一条消息也收不到。
说明这种情况下,双向的也不行。
那双向是什么意思呢?是指,有生产者把消息发给b1,那么b2可以从b1拿到,反过来,也是一样的。
三、解决方法
<policyEntry queue=">" enableAudit="false">
<networkBridgeFilterFactory>
<conditionalNetworkBridgeFilterFactory replayWhenNoConsumers="true"/>
</networkBridgeFilterFactory>
</policyEntry>
conf和conf2里面的 activemq.xml里面都要加这段配置

这里要小心帖进去的代码里面的空格和换行符的格式要正确,不然,没法启动mq。(这个坑花了我20分钟)
测试:
重启mq
先运行QueueSender1,发送30条消息到brokerA
然后,运行QueueReceiver2,开始消费,过几秒,停止。此时,brokerB把30条消息都拿到自己这边了。
再运行QueueReceiver1,从QueueReceiver2停止的消息开始,接着消费。说明,消息可以回流了。
四、另一个测试
先启动QueueReceiver1和QueueReceiver2,然后启动QueueSender1。
会发现,QueueReceiver1和QueueReceiver2瓜分了QueueSender1发送的30条消息。但是,并不均衡。
本文探讨了在ActiveMQ中消息无法在Broker间双向流动的问题,通过特定配置实现了消息的回流,确保了消息能够在停止消费后继续被接收。同时,文章还提及了在消息消费过程中的负载不均衡现象。
554

被折叠的 条评论
为什么被折叠?



