一、隊列消費者集群(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
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。