溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

ActiveMQ(八)——ActiveMQ的集群

發(fā)布時(shí)間:2020-07-22 08:15:03 來(lái)源:網(wǎng)絡(luò) 閱讀:224 作者:mazongfei 欄目:編程語(yǔ)言

一、隊(duì)列消費(fèi)者集群(Queue consumer clusters)
     ActiveMQ支持Consumer對(duì)消息高可靠性的負(fù)載平衡消費(fèi),如果一個(gè)Consumer死掉,該消息會(huì)轉(zhuǎn)發(fā)到其他的Consumer消費(fèi)的Queue上。如果一個(gè)Consumer獲得消息比其它的Consumer快,那么它將獲得更多的消息。因此推薦ActiveMQ的Broker和Client使用failover://transport的方式來(lái)配置鏈接。
二、Broker的集群(Broker clusters)
     大部分情況下是使用一些列的Broker和Client鏈接到一起。如果一個(gè)Broker死掉了,Client可以自動(dòng)鏈接到其它的Broker上。實(shí)現(xiàn)以上行為需要用failover協(xié)議作為Client。
     如果啟動(dòng)了多個(gè)Broker,Client可以使用static discovery或者Dynamic discovery容易的從一個(gè)broker到另一個(gè)broker直接鏈接。
     這樣當(dāng)一個(gè)broker上沒(méi)有Consumer的話,那么它的消息不會(huì)被消費(fèi),然而該broker會(huì)通過(guò)存儲(chǔ)和轉(zhuǎn)發(fā)的策略來(lái)把該消息發(fā)到其它的broker上。
注意:
ActiveMQ默認(rèn)的兩個(gè)broker,static鏈接后是單方向的,broker-A可以訪問(wèn)消費(fèi)broker-B的消息,如果要支持雙向通信,需要在netWorkConnector配置的時(shí)候,設(shè)置duplex=true就可以了。
三、Master Slave
     在5.9的版本里面,廢除了Pure Master Slave的方式,目前支持:
1:Shared File System Master Slave:基于共享存儲(chǔ)的Master-Slave,多個(gè)broker實(shí)例使用一個(gè)存儲(chǔ)文件,誰(shuí)拿到文件鎖就是master,其他處于待啟動(dòng)狀態(tài),如果master掛掉了,某個(gè)搶到文件鎖的slave變成master
2:JDBC Master Slave:基于JDBC的Master-Slave,使用同一個(gè)數(shù)據(jù)庫(kù),拿到LOCK表的寫鎖的broker成為master
3:Replicated LevelDB Stroe:基于ZooKeeper復(fù)制LevelDB存儲(chǔ)的Master-Slave機(jī)制,這個(gè)是5.9新加的
詳情:http://activemq.apache.org/masterslave.html

  • JDBC Master Slave的方式
    利用數(shù)據(jù)庫(kù)作為數(shù)據(jù)源,采用Master/Slave模式,其中在啟動(dòng)的時(shí)候Master首先獲得獨(dú)有鎖,其它Slaves Broker則等待獲取獨(dú)有鎖
         推薦客戶端使用Failover來(lái)連接Brokers。
    如圖所示:
    ActiveMQ(八)——ActiveMQ的集群
  • Master失敗
         如果Master失敗,則它釋放獨(dú)有鎖,其他Slaver則獲取獨(dú)有鎖,其他Slaver立即獲得獨(dú)有鎖后此時(shí)它將變成Master,并且啟動(dòng)所有的傳輸連接。同時(shí),Client將停止連接之前的Master和將會(huì)輪詢連接到其他可用利用的Broker,即新Master。如上中圖所示
  • Master重啟
         任何時(shí)候去啟動(dòng)新的Broker,即作為新的Slaver來(lái)加入集群,如上右圖所示
  • JDBC Master Slaver的配置
         使用<jdbcPersistenceAdapter/>來(lái)配置消息的持久化,自動(dòng)就會(huì)使用JDBC Master Slave的方式。
向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI