ActiveMQ的集群部署方式主要有三种:
Master-Slave部署方式(又分为基于共享文件和数据库的方式)
Broker-Cluster部署方式
Master-Slave与Broker-Cluster相结合的部署方式
Shared filesystem Master-Slave 部署方式
Shared database Master-Slave 部署方式
基于数据库的Master-Slave集群部署
在ActiveMQ的安装目录/lib/extra 下添加数据库驱动包
修改activemq.xml文件的broker节点开启持久化
在activemq.xml文件中修改持久化策略
在activemq.xml文件中添加数据源
将配置好的activemq全部复制到其他服务器,启动ActiveMQ集群搭建就完成了
Master-Slave集群主要解决了单点故障的问题,Master-Slave集群中的一个节点挂掉,其他的节点任然可用,服务就任然可用。集群搭建好之后在代码中测试时,只需要修改brokerUrl的值,如”failover:(tcp://master:61616,tcp://salve:61616)?initialReconnectDelay=100”
基于Broker-Cluster集群部署
Broker-Cluster集群通过网络连接,将多个broker组合,对外构成一个整体,集群之间共享队列和主题列表
Broker-Cluster集群的搭建非常简单,只需要在activemq.xml文件中指定broker需要连接的其他节点的broker信息即可,在所有broker都启动后,可以在Web管理界面的Network页面内看到连接的信息。
Static Broker-Cluster部署配置示例:
<networkConnectors>
<networkConnector uri="static:(tcp://other-broker:port)" duplex="false" />
<networkConnectors>
Dynamic Broker-Cluster部署配置示例:
<networkConnectors>
<networkConnector uri="multicast://default" />
<networkConnectors>
Master-Slave与Broker-Cluster相结合的集群
Master-Slave集群解决了单点故障的问题,但是仍然只是一个节点处理所有请求。Broker-Cluster可以做到负载均衡,但是无法解决单点故障的问题。Master-Slave与Broker-Cluster两者相结合的集群即可解决单点故障又可保证负载均衡,做到了高可靠和高可用。
Master-Slave与Broker-Cluster集群部署配置示例:
<networkConnectors>
<networkConnector uri="masterslave:(tcp://other-cluster1-master:61616,tcp://other-cluster1-slave:61616)" duplex="false" />
<networkConnector uri="masterslave:(tcp://other-cluster2-master:61616,tcp://other-cluster2-slave:61616)" duplex="false" />
<networkConnectors>
网络连接器配置说明
networkConnector配置属性说明:
本文分享自微信公众号 - Coding Diary(gh_7e1f05090980)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。
来源:oschina
链接:https://my.oschina.net/u/2306928/blog/4358522