ActiveMQ(八)——ActiveMQ的集群
一、队列消费者集群(Queue consumer clusters)
ActiveMQ支持Consumer对消息高可靠性的负载平衡消费,如果一个Consumer死掉,该消息会转发到其他的Consumer消费的Queue上。如果一个Consumer获得消息比其它的Consumer快,那么它将获得更多的消息。因此推荐ActiveMQ的Broker和Client使用failover://transport的方式来配置链接。
二、Broker的集群(Broker clusters)
大部分情况下是使用一些列的Broker和Client链接到一起。如果一个Broker死掉了,Client可以自动链接到其它的Broker上。实现以上行为需要用failover协议作为Client。
如果启动了多个Broker,Client可以使用static discovery或者Dynamic discovery容易的从一个broker到另一个broker直接链接。
这样当一个broker上没有Consumer的话,那么它的消息不会被消费,然而该broker会通过存储和转发的策略来把该消息发到其它的broker上。
注意:
ActiveMQ默认的两个broker,static链接后是单方向的,broker-A可以访问消费broker-B的消息,如果要支持双向通信,需要在netWorkConnector配置的时候,设置duplex=true就可以了。
三、Master Slave
在5.9的版本里面,废除了Pure Master Slave的方式,目前支持:
1:Shared File System Master Slave:基于共享存储的Master-Slave,多个broker实例使用一个存储文件,谁拿到文件锁就是master,其他处于待启动状态,如果master挂掉了,某个抢到文件锁的slave变成master
2:JDBC Master Slave:基于JDBC的Master-Slave,使用同一个数据库,拿到LOCK表的写锁的broker成为master
3:Replicated LevelDB Stroe:基于ZooKeeper复制LevelDB存储的Master-Slave机制,这个是5.9新加的
详情:http://activemq.apache.org/masterslave.html
专注于为中小企业提供做网站、成都网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业绩溪免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上千余家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
- JDBC Master Slave的方式
利用数据库作为数据源,采用Master/Slave模式,其中在启动的时候Master首先获得独有锁,其它Slaves Broker则等待获取独有锁
推荐客户端使用Failover来连接Brokers。
如图所示: - Master失败
如果Master失败,则它释放独有锁,其他Slaver则获取独有锁,其他Slaver立即获得独有锁后此时它将变成Master,并且启动所有的传输连接。同时,Client将停止连接之前的Master和将会轮询连接到其他可用利用的Broker,即新Master。如上中图所示 - Master重启
任何时候去启动新的Broker,即作为新的Slaver来加入集群,如上右图所示 - JDBC Master Slaver的配置
使用来配置消息的持久化,自动就会使用JDBC Master Slave的方式。
本文标题:ActiveMQ(八)——ActiveMQ的集群
转载来于:http://myzitong.com/article/ieggeg.html