摘要:二集群部署方式集群的部署方式主要有下面種模式實(shí)現(xiàn)負(fù)載均衡,多個(gè)之間同步消息,已達(dá)到服務(wù)器負(fù)載的可能。默認(rèn)為,單位為毫秒,表示一次嘗試重連之間等待的時(shí)間。如果宕機(jī),集群退化成標(biāo)準(zhǔn)集群,只是了失去負(fù)載均衡能力。
前言
最終需要掌握 Replicated LevelDB Store部署方式,這種部署方式是基于ZooKeeper的。
集群分為兩種方式:一、為什么使用集群?
1.偽集群:集群節(jié)點(diǎn)都搭在一臺(tái)機(jī)器上
2.真集群:集群節(jié)點(diǎn)分布在多臺(tái)機(jī)器上
更多詳細(xì):真集群與偽集群的區(qū)別
實(shí)現(xiàn)高可用,以排除單點(diǎn)故障引起的服務(wù)中斷。
實(shí)現(xiàn)負(fù)載均衡,以提升效率為更多的客戶提供服務(wù)。
二、ActiveMQ集群部署方式ActiveMQ集群的部署方式主要有下面2種:
Broker Clusters 模式:實(shí)現(xiàn)負(fù)載均衡,多個(gè)broker之間同步消息,已達(dá)到服務(wù)器負(fù)載的可能。
Master Slave 模式:實(shí)現(xiàn)高可用,當(dāng)主服務(wù)器宕機(jī)時(shí),備用服務(wù)器可以立即補(bǔ)充,以保證服務(wù)的繼續(xù)。
1. 失效轉(zhuǎn)移連接該策略用于控制消費(fèi)者的訪問,這是我們在編寫代碼的時(shí)候要使用的連接方式。一個(gè)消費(fèi)者連接到多個(gè)broker集群的中的一個(gè)broker,當(dāng)該broker出問題時(shí),消費(fèi)者自動(dòng)連接到其他一個(gè)正常的broker。消費(fèi)者使用 failover 協(xié)議來連接broker,通常叫做 失效轉(zhuǎn)移(也叫故障轉(zhuǎn)移,斷線重連機(jī)制,F(xiàn)ailOver)策略,語法如下:
failover:(uri1,uri2,...,uriN)?transportOptions
1.uri:消息服務(wù)器的地址 2.transportOptions參數(shù)說明: randomize:默認(rèn)為 true ,表示在URI列表中選擇URL連接時(shí)是否采用隨機(jī)策略。 initialReconnectDelay:默認(rèn)為10,單位為毫秒,表示一次嘗試重連之間等待的時(shí)間。 maxReconnectDelay:默認(rèn) 30000,單位毫秒,最長重連的時(shí)間間隔。
例如:
failover:(tcp://localhost:61616,tcp://localhost:61617)?randomize=false2. Broker Clusters 部署
Broker-Cluster的部署方式就可以解決負(fù)載均衡的問題。Broker-Cluster部署方式中,各個(gè)broker通過網(wǎng)絡(luò)互相連接,并共享queue,保證消息同步。
各個(gè)broker進(jìn)行消息同步使用的是NetworkConnection (網(wǎng)絡(luò)連接器),主要用于配置各個(gè)broker之間的網(wǎng)絡(luò)通訊方式,用于服務(wù)器傳遞信息。 分為靜態(tài)連接器和動(dòng)態(tài)連接器。
靜態(tài)連接器
動(dòng)態(tài)連接器
靜態(tài)連接器過于局限,動(dòng)態(tài)連接器可隨意擴(kuò)展服務(wù)器連接。
3. Master Slave 部署(主從)只需要掌握 Replicated LevelDB Store。
該Master Slave主從方案所實(shí)現(xiàn)的高可用架構(gòu)具體內(nèi)容可參考:ActiveMQ與HA架構(gòu)(master/slave)
通過部署多個(gè)broker實(shí)例,選舉產(chǎn)生一個(gè)master和多個(gè)slave,master宕機(jī)后由slave接管服務(wù)來達(dá)到高可用性。Master-Slave的方式雖然能解決多服務(wù)熱備的高可用問題,但無法解決負(fù)載均衡和分布式的問題。Broker Cluster的部署方式剛好可以解決負(fù)載均衡的問題。一般兩者結(jié)合使用。
這里主要介紹2種配置方案(一般只使用):
Share storage master slave(共享存儲(chǔ))
包括:Shared File System Master slave 和 JDBC Store Master Slave 兩種模式
此模式中Master和Slave的數(shù)據(jù)是共享的(相當(dāng)于共享同一個(gè)數(shù)據(jù)庫),當(dāng)master失效后,slave會(huì)自動(dòng)接管服務(wù),無需手動(dòng)進(jìn)行數(shù)據(jù)的copy與同步,因?yàn)閙aster存儲(chǔ)數(shù)據(jù)之后,這些數(shù)據(jù)在任何時(shí)候?qū)lave都是可見的。
master與slave之間,通過共享文件的“排他鎖”或者分布式排他鎖(ZooKeeper)來決定Broker的狀態(tài)與角色,獲取鎖權(quán)限的Broker作為master,其它的Broker則作為slave。如果master失效,它必將失去鎖權(quán)限,那么其它的slave將通過鎖競爭來選舉新master,沒有獲取鎖權(quán)限的Broker作為slave,并等待鎖的釋放(間歇性嘗試獲取鎖)。
Shared File System Master Slave模式(只適合單臺(tái)主機(jī)部署,不適合多臺(tái)主機(jī)部署)
這種方式是最常用的模式,架構(gòu)簡單,可靠實(shí)用。我們只需要一個(gè)SAN文件系統(tǒng)即可。使用文件系統(tǒng)來共享數(shù)據(jù)文件,多個(gè)Broker共享同一個(gè)文件系統(tǒng)。配置如下: ``````
JDBC Store Master Slave模式(適合多臺(tái)主機(jī)部署)
數(shù)據(jù)存儲(chǔ)用的是數(shù)據(jù)庫(MySQL/Oracle等),相對于日志文件而言,JDBC Store通常認(rèn)為是低效的。配置如下: ``````
Replicated LevelDB Store(使用ZooKeeper協(xié)調(diào)多個(gè)Broker)重要
基于復(fù)制的LevelDB Store模式是ActiveMQ 5.9以后新增的特性,這是ActiveMQ全力打造的HA存儲(chǔ)引擎。 一般都使用這種方式。由于利用zk 進(jìn)行配置管理,可以方便監(jiān)控,同時(shí)配置也相對簡單。
使用ZooKeeper(集群)注冊所有的ActiveMQ Broker。只有其中的一個(gè)Broker可以對外提供服務(wù)(也就是Master節(jié)點(diǎn)),其他的Broker處于待機(jī)狀態(tài),被視為Slave。如果Master因故障而不能提供服務(wù),則利用ZooKeeper的內(nèi)部選舉機(jī)制會(huì)從Slave中選舉出一個(gè)Broker充當(dāng)Master節(jié)點(diǎn),繼續(xù)對外提供服務(wù)。
由于基于ZooKeeper(通常ZooKeeper集群至少需要3個(gè)實(shí)例,才能保證ZooKeeper本身的高可用性),所以Broker最低需要3個(gè)。activemq.xml中配置如下:
三、 Master Slave和Broker Cluster結(jié)合使用(常用方式)
--- | 高可用 | 負(fù)載均衡 |
---|---|---|
Master Slave | 是 | 否 |
Broker Cluster | 否 | 是 |
Master Slave只能實(shí)現(xiàn)高可用性,不能實(shí)現(xiàn)負(fù)載均衡。
Broker Cluster 只能實(shí)現(xiàn)負(fù)載均衡,不能實(shí)現(xiàn)高可用性。
Master Slave和Broker Cluster 結(jié)合使用可以實(shí)現(xiàn)高可用和負(fù)載均衡,如下圖:
按 A->B->C 順序啟動(dòng)節(jié)點(diǎn)服務(wù)。
這個(gè)集群是綜合了Broker Cluster和master/slave兩種基本集群方式,其中master/slave(B和C)是基于共享存儲(chǔ)實(shí)現(xiàn)的。A和B組成消息同步,A和C組成消息同步是為實(shí)現(xiàn)均衡負(fù)載,B和C組成master/slave是為了實(shí)現(xiàn)高可用。
如果A宕機(jī),集群退化成標(biāo)準(zhǔn)master/slave集群,只是了失去負(fù)載均衡能力。
如果B宕機(jī),C會(huì)繼續(xù)提供服務(wù),集群退化成Broker Cluster集群,失去高可用能力。
如果C宕機(jī)也會(huì)失去高可用能力(同B)。
ABC無論哪一臺(tái)宕機(jī),集群都不會(huì)崩潰,但是需要迅速恢復(fù)。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/69221.html
摘要:要想保證負(fù)載均衡得再結(jié)合部署方案,配置網(wǎng)絡(luò)連接器。編碼時(shí),端消費(fèi)者通過協(xié)議來連接集群。一服務(wù)器配置集群集群保證本身的高可用性。只需使用進(jìn)行配置即可,默認(rèn)端口為。 前言 本案例使用的是真集群方式,準(zhǔn)備三臺(tái)主機(jī),IP分別為192.168.100.142、192.168.100.143、192.168.100.144 偽集群部署請看:ActiveMQ+ZooKeeper 偽集群整合如果需要了...
摘要:前言本案例使用的是偽集群方式,即在一臺(tái)主機(jī)上部署個(gè)服務(wù)端口不同個(gè)服務(wù)端口不同。要想保證負(fù)載均衡得再結(jié)合部署方案,配置網(wǎng)絡(luò)連接器。編碼時(shí),端消費(fèi)者通過協(xié)議來連接集群。只需使用進(jìn)行配置即可,默認(rèn)端口為。 前言 本案例使用的是偽集群方式,即在一臺(tái)主機(jī)上部署3個(gè)activemq服務(wù)(端口不同)+3個(gè)zookeeper服務(wù)(端口不同)。 真集群部署請看:ActiveMQ+ZooKeeper集群整...
摘要:前言集群分為兩種方式偽集群集群節(jié)點(diǎn)都搭在一臺(tái)機(jī)器上真集群集群節(jié)點(diǎn)分布在多臺(tái)機(jī)器上更多詳細(xì)真集群與偽集群的區(qū)別該教程使用的是偽集群,由于在一個(gè)主機(jī)上實(shí)現(xiàn)集群,這里直接使用了模式共享文件系統(tǒng)。該教程是使用個(gè)服務(wù)實(shí)現(xiàn)集群。 前言 集群分為兩種方式:1.偽集群:集群節(jié)點(diǎn)都搭在一臺(tái)機(jī)器上2.真集群:集群節(jié)點(diǎn)分布在多臺(tái)機(jī)器上更多詳細(xì):真集群與偽集群的區(qū)別 該教程使用的是偽集群,由于在一個(gè)主機(jī)上實(shí)...
摘要:時(shí)間年月日星期六說明本文部分內(nèi)容均來自慕課網(wǎng)。這個(gè)時(shí)候,可以啟動(dòng)多臺(tái)積分系統(tǒng),來同時(shí)消費(fèi)這個(gè)消息中間件里面的登錄消息,達(dá)到橫向擴(kuò)展的作用。 時(shí)間:2017年07月22日星期六說明:本文部分內(nèi)容均來自慕課網(wǎng)。@慕課網(wǎng):http://www.imooc.com教學(xué)源碼:無學(xué)習(xí)源碼:https://github.com/zccodere/s... 第一章:課程介紹 1-1 課程安排 Java...
摘要:一臺(tái)機(jī)器啟動(dòng)多個(gè)修改修改文件所有涉及的端口,都要不一樣文件數(shù)據(jù)庫主從和集群搭建主從配置修改的唯一添加數(shù)據(jù)庫配置添加到目錄在節(jié)點(diǎn)添加集群配置在節(jié)點(diǎn)添加修改節(jié)點(diǎn)參考關(guān)注公眾號(hào)獲取海量視頻 一臺(tái)機(jī)器啟動(dòng)多個(gè)activeMQ1、brokerName修改 2、修改activemq.xml文件 所有涉及transportConnec...
閱讀 2189·2021-11-24 09:38
閱讀 3249·2021-11-08 13:27
閱讀 3091·2021-09-10 10:51
閱讀 3160·2019-08-29 12:20
閱讀 672·2019-08-28 18:28
閱讀 3467·2019-08-26 11:53
閱讀 2715·2019-08-26 11:46
閱讀 1525·2019-08-26 10:56