ActiveMQ 集群负载平衡

Posted cac2020

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ActiveMQ 集群负载平衡相关的知识,希望对你有一定的参考价值。

目前的架构:

技术分享图片

负载均衡方案:=========================================

技术分享图片

第二种方案呢,假设我们整个应用是个食堂,这个食堂里面有好多饭口,每个饭口有好多大爷大妈(咦~~~)。每个饭口实现了高可用,即使有大妈不上班,还有大爷顶上。针对好多学生(用户),实现了负载均衡,学生被基本均匀的分配到每一个饭口上。

食堂----应用

饭口----集群

大妈----服务器

==================================

现在我们利用Broker-Cluster 可以解实现负载均衡。配置的方法就是:

打开activemq.xml文件,在persistenceAdapter的前面加上

<networkConnectors>
  <networkConnector uri="static:(tcp://host1:61616,tcp://host2:61616,tcp://..)" duplex="false"/>
</networkConnectors>

就拿这两个集群来说:

集群1 >>>>>>>>链接>>>>>>>> 集群2:192.168.127.1,192.168.127.2,192.168.127.3 加上

<networkConnectors>
  <networkConnector uri="static:(tcp://192.168.127.4:61616,tcp://192.168.127.5:61616,tcp://192.168.127.6:61616)" duplex="false"/>
</networkConnectors>

 

集群2 >>>>>>>>链接>>>>>>>> 集群1: 192.168.127.4,192.168.127.5,192.168.127.6 加上

<networkConnectors>
  <networkConnector uri="static:(tcp://192.168.127.1:61616,tcp://192.168.127.2:61616,tcp://192.168.127.3:61616)" duplex="false"/>
</networkConnectors>

 

说白了就是把对方的地址拿过来

 

如果是三个集群呢?

那么就多加一个<networkConnector uri="tcp://..."/>

比如多了一个集群3(IP:192.168.127.7,192.168.127.8,192.168.127.9)

集群1 >>>>>>>>链接>>>>>>>> 集群2&集群3:192.168.127.1,192.168.127.2,192.168.127.3 加上

<networkConnectors>
  <networkConnector uri="static:(tcp://192.168.127.4:61616,tcp://192.168.127.5:61616,tcp://192.168.127.6:61616)" duplex="false"/>
  <networkConnector uri="static:(tcp://192.168.127.7:61616,tcp://192.168.127.8:61616,tcp://192.168.127.9:61616)" duplex="false"/>
</networkConnectors>

 

集群2 >>>>>>>>链接>>>>>>>> 集群1&集群3        和         集群3 >>>>>>>>链接>>>>>>>> 集群1&集群2              照葫芦画瓢

 

以上是关于ActiveMQ 集群负载平衡的主要内容,如果未能解决你的问题,请参考以下文章

ActiveMQ(13):ActiveMQ的集群

JMS之——ActiveMQ高可用+负载均衡集群

Mule 中的 ActiveMQ 负载均衡

HAProxy负载平衡集群

带有 nginx 负载平衡器问题的 Socket.IO 集群

负载平衡集群中的 PHP 会话 - 怎么样?