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