10.ActiveMQ 静态网络连接配置

1. ActiveMQ 的 networkConnector 是什么

        在某些情况下,需要多个 ActiveMQ 的 Broker 来做集群。此时就会涉及到 Broker 到 Broker 之间的通信,这个就被称之为ActiveMQ 的 networkConnector。

        ActiveMQ 的 networkConnector 默认是单向的,一个 Broker 在一端发送消息,另一个 Broker 在另一端接收消息。这就是所谓的"桥接"。ActiveMQ 也支持双向链接,对于两个Broker创建一个双向的通道,不仅可以发送消息而且也能从相同的通道来接收消息 。

        如下图所示,通过 networkConnector 可以将两个 Broker 组成一个集群模式,保持两个 Broker 之间的网络通信连接。那么生产者A 生产数据至 Broker-1,消费者 A 便可以在 Broker-2 上消费到生产者A 生产的数据生产者B 生产数据至 Broker-2,消费者 B 也可以在 Broker-1 上消费到生产者B 生产的数据。

2.networkConnector(静态网络)如何配置

   修改conf/目录下的activemq.xml文件,增加如下配置,即可完成对静态网络的配置,配置如下:

   注意:一定要配置在<broker>标签下!!!位置如下图所示

<networkConnectors>
    <networkConnector uri="static://(tcp://192.168.204.201:61616,tcp://192.168.204.202:61616)"/>
</networkConnectors>

        两个 Broker 之间,通过一个 static 的协议来进行网络连接。一个消费者连接到 Broker-2 的一个地址上,当生产者在 Broker-1 上以相同的地址发送消息时,此时消息便会被转移到 Broker-2 上,也就是说 Broker-1 会将消息转发到 Broker-2 上。

3.ActiveMQ消息回流机制

        当我们在 Broker-1 上生产10条数据,在Broker-2 上使用 receive() 的方式消费消息(不使用 listener的方式 监听)。当消费了2条数据后,因为一些原因导致 Broker-2 挂掉了,那么此时还有8条数据没有被消费。

        通过静态网络连接, 在 Broker-2 上消费, Broker-1 会将自己的10条数据全部转发至 Broker-2 。此时 Broker-1 上没有消息,Broker-2 上有10条数据。当 Broker-2 仅仅消费2条消息就挂掉了,此时会有8条数据阻塞在 Broker-2。在这种情况下,因为 Broker-1 上已经没有数据了,此时如果从 Broker-1 上也是无法消费的。那么这种情况下,只有等到 Broker-2 服务重启正常后,8条阻塞的消息才能被消费。这明显没有起到高可用的效果。此时 ActiveMQ 为我们提供了一种消息回流机制。可以在 Broker-2 挂掉之后,直接通过 Broker-1 来消费阻塞在 Broker-2 上的8条数据。

       修改conf/目录下的activemq.xml文件,增加如下配置,即可完成对消息回流的配置,配置如下:

配置在<destinationPolicy>标签中<policyEntries>标签下,配置位置如下图所示:

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

       如图,表示对所有队列设置回流操作。即可完成在 Broker-2 挂掉之后,直接通过 Broker-1 来消费阻塞在 Broker-2 上的8条数据。通过配置 1.networkConnector 2.息回流机制 ,从而满足 Broker 的高可用


附录:ActiveMQ动态网络连接 

      ActiveMQ 也支持动态网络连接,使用 multicast (广播)协议将一个 Service服务 和其他的 Broker 的 Service 服务相互连接起来。multicast 能够自动的发现其他的 Broker,从而替代了使用 static 功能列表 Brokers。

      优点:用 multicast 协议可以在网络中频繁的添加和删除 IP 不会有影响。

      缺点:自动的链接地址和过渡的消耗网络资源

      具体如何配置,可以自行百度,后期我也会再次尝试配置。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

扛麻袋的少年

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

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

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

打赏作者

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

抵扣说明:

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

余额充值