activemq的多个broker之间的消息共享

假设activemq有两个broker服务,A和B。

在A的activemq.xml的broker标签下添加如下配置:

<networkConnectors>  

            <networkConnector uri="static:(tcp://172.16.15.111:61616,tcp://172.16.15.111:61626)" duplex="true"/>  

        </networkConnectors>

该配置可以让消息从A到B,或者从B到A。但只能流动一次。也就是不能从A到B再回到A。

如果duplex="false"则只能从A到B。


那么如何能让消息来回流转,使A和B自由共享消息呢?

在activemq.xml的policyEntries标签下(注意这里需要在A和B上都配置)做如下配置:

<policyEntry queue=">" enableAudit="false">
                     <networkBridgeFilterFactory>
                         <conditionalNetworkBridgeFilterFactory replayWhenNoConsumers="true"/>
                     </networkBridgeFilterFactory>
                 </policyEntry>

该配置可以实现消息回流。


客户端连接broker的时候使用容错机制"failover:(tcp://172.16.15.111:61616,tcp://172.16.15.111:61626)",这样当某个broker挂了,客户端会自动连接别的broker。

以上配置也间接实现了activemq的均衡负载。


不过这种均衡负载是针对broker的,也就是说如果A上连了一个客户端,B上连了两个,那么A上的一个客户端消费的和B上的两个客户端加起来相等。

如果要三个客户端均分的话,需要给networkConnector标签添加一个属性,也就是在duplex="true"后面添加conduitSubscriptions="false"。它的意思是多个网络消费者是否被当做一个消费者来对待。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值