摘要:前言本案例使用的是偽集群方式,即在一臺主機(jī)上部署個服務(wù)端口不同個服務(wù)端口不同。要想保證負(fù)載均衡得再結(jié)合部署方案,配置網(wǎng)絡(luò)連接器。編碼時,端消費者通過協(xié)議來連接集群。只需使用進(jìn)行配置即可,默認(rèn)端口為。
前言
本案例使用的是偽集群方式,即在一臺主機(jī)上部署3個activemq服務(wù)(端口不同)+3個zookeeper服務(wù)(端口不同)。
真集群部署請看:ActiveMQ+ZooKeeper集群整合
如果需要了解ActiveMQ集群部署的整體概念,可以參考我這篇文章:ActiveMQ集群整體認(rèn)識
原理簡介:
一般在部署ActiveMQ集群的時候,更傾向于使用基于ZooKeeper的Replicated LevelDB Store方式,該方式是Master Slave部署方案的其中一種策略,也是在多臺主機(jī)實現(xiàn)ActiveMQ集群的主流部署方式。 此教程只保證了高可用性。要想保證負(fù)載均衡得再結(jié)合Broker Clusters 部署方案,配置網(wǎng)絡(luò)連接器。
工作流程:
在ZooKeeper中管理多個Broker節(jié)點,根據(jù) Master選舉策略讓其中一個 Broker選舉為Master(只有Master才具備對外提供服務(wù)的能力),剩下Broker為slave。
編碼時,client端(消費者)通過failover協(xié)議來連接ActiveMQ集群。
-- | 服務(wù)端口 | 集群通信端口 | 節(jié)點目錄/opt/下 |
---|---|---|---|
zk1 | 2181 | 2887:3887 | /zookeeper/zk1 |
zk2 | 2182 | 2888:3888 | /zookeeper/zk2 |
zk3 | 2183 | 2889:3889 | /zookeeper/zk3 |
集群通信端口:第一個端口是master和slave之間的通信端口,默認(rèn)是2888;第二個端口是leader選舉的端口,集群剛啟動的時候選舉或者leader掛掉之后進(jìn)行新的選舉的端口默認(rèn)是3888。
在/opt/zookeeper下復(fù)制3個zookeeper服務(wù),并分別配置它們的文件conf/zoo.cfg:
zk1:
zk1/conf/zoo.cfg:
# zookeeper的數(shù)據(jù)存儲和日志存儲目錄(如果目錄不存在就新建) dataDir=/opt/zookeeper/zk1/data dataLogDir=/opt/zookeeper/zk1/log #服務(wù)端口 clientPort=2181 # zk集群之間的通信地址 server.1=localhost:2887:3887 server.2=localhost:2888:3888 server.3=localhost:2889:3889
創(chuàng)建zk1/data/myid文件,填入數(shù)字1:
# 由于該zk1是server.1,所以在myid中設(shè)置數(shù)字1 $ vim /opt/zookeeper/zk1/data/myid
zk2:
zk2/conf/zoo.cfg:
# zookeeper的數(shù)據(jù)存儲和日志存儲目錄(如果目錄不存在就新建) dataDir=/opt/zookeeper/zk2/data dataLogDir=/opt/zookeeper/zk2/log #服務(wù)端口 clientPort=2182 # zk集群之間的通信地址 server.1=localhost:2887:3887 server.2=localhost:2888:3888 server.3=localhost:2889:3889
創(chuàng)建zk2/data/myid文件,填入數(shù)字1:
# 由于該zk2是server.2,所以在myid中設(shè)置數(shù)字2 $ vim /opt/zookeeper/zk2/data/myid
zk3:
zk3/conf/zoo.cfg:
# zookeeper的數(shù)據(jù)存儲和日志存儲目錄(如果目錄不存在就新建) dataDir=/opt/zookeeper/zk3/data dataLogDir=/opt/zookeeper/zk3/log #服務(wù)端口 clientPort=2183 # zk集群之間的通信地址 server.1=localhost:2887:3887 server.2=localhost:2888:3888 server.3=localhost:2889:3889
創(chuàng)建zk3/data/myid文件,填入數(shù)字3:
# 由于該zk3是server.3,所以在myid中設(shè)置數(shù)字3 $ vim /opt/zookeeper/zk3/data/myid1.2 分別啟動zookeeper服務(wù)
$ /opt/zookeeper/zk1/bin/zkServer.sh start # 啟動zk1服務(wù) $ /opt/zookeeper/zk2/bin/zkServer.sh start # 啟動zk2服務(wù) $ /opt/zookeeper/zk3/bin/zkServer.sh start # 啟動zk3服務(wù) $ /opt/zookeeper/zk1/bin/zkServer.sh status # 查看zk1服務(wù)狀態(tài) $ /opt/zookeeper/zk2/bin/zkServer.sh status # 查看zk2服務(wù)狀態(tài) $ /opt/zookeeper/zk3/bin/zkServer.sh status # 查看zk3服務(wù)狀態(tài)2. ActiveMQ偽集群配置 2.1 修改ActiveMQ配置文件conf/activemq.xml和conf/jetty.xml
-- | 服務(wù)端口 | jetty控制臺端口 | 節(jié)點目錄/opt/下 |
---|---|---|---|
node1 | 61616 | 8161 | /activemq/node1 |
node2 | 61617 | 8162 | /activemq/node2 |
node3 | 61618 | 8163 | /activemq/node3 |
在/opt/activemq/復(fù)制3個activemq服務(wù),并分別配置它們的文件conf/activemq.xml和conf/jetty.xml:
conf/jetty.xml:
node1:
/opt/activemq/node1/conf/activemq.xml:
/opt/activemq/conf/jetty.xml:
node2:
/opt/activemq/node2/conf/activemq.xml:
/opt/activemq/conf/jetty.xml:
node3:
/opt/activemq/node3/conf/activemq.xml:
/opt/activemq/node3/conf/jetty.xml:
2.2 依次啟動activemq服務(wù)
$ /opt/activemq/node1/bin/activemq start # 啟動節(jié)點node1服務(wù) $ /opt/activemq/node2/bin/activemq start # 啟動節(jié)點node2服務(wù) $ /opt/activemq/node3/bin/activemq start # 啟動節(jié)點node3服務(wù) $ ps -ef|grep activemq # 檢查進(jìn)程是否運(yùn)行,即activemq是否啟動成功 $ netstat -anp|grep 61616 # 查看服務(wù)端口61616,監(jiān)聽情況 $ netstat -anp|grep 61617 # 查看服務(wù)端口61617,監(jiān)聽情況 $ netstat -anp|grep 61618 # 查看服務(wù)端口61618,監(jiān)聽情況三、Client使用
該zookeeper+activemq的集群Master Slave部署方案,能夠提供(3-1)/2的容錯率,即3臺服務(wù)器允許宕機(jī)一臺,而不影響整個集群的對外提供服務(wù)。
編寫代碼連接時使用failover策略:
String url = failover:(tcp://192.168.100.142:61616,tcp://192.168.100.142:61617,tcp://192.168.100.142:61618)?initialReconnectDelay=1000
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/69253.html
摘要:要想保證負(fù)載均衡得再結(jié)合部署方案,配置網(wǎng)絡(luò)連接器。編碼時,端消費者通過協(xié)議來連接集群。一服務(wù)器配置集群集群保證本身的高可用性。只需使用進(jìn)行配置即可,默認(rèn)端口為。 前言 本案例使用的是真集群方式,準(zhǔn)備三臺主機(jī),IP分別為192.168.100.142、192.168.100.143、192.168.100.144 偽集群部署請看:ActiveMQ+ZooKeeper 偽集群整合如果需要了...
摘要:二集群部署方式集群的部署方式主要有下面種模式實現(xiàn)負(fù)載均衡,多個之間同步消息,已達(dá)到服務(wù)器負(fù)載的可能。默認(rèn)為,單位為毫秒,表示一次嘗試重連之間等待的時間。如果宕機(jī),集群退化成標(biāo)準(zhǔn)集群,只是了失去負(fù)載均衡能力。 前言 最終需要掌握 Replicated LevelDB Store部署方式,這種部署方式是基于ZooKeeper的。 集群分為兩種方式:1.偽集群:集群節(jié)點都搭在一臺機(jī)器上2....
摘要:前言集群分為兩種方式偽集群集群節(jié)點都搭在一臺機(jī)器上真集群集群節(jié)點分布在多臺機(jī)器上更多詳細(xì)真集群與偽集群的區(qū)別該教程使用的是偽集群,由于在一個主機(jī)上實現(xiàn)集群,這里直接使用了模式共享文件系統(tǒng)。該教程是使用個服務(wù)實現(xiàn)集群。 前言 集群分為兩種方式:1.偽集群:集群節(jié)點都搭在一臺機(jī)器上2.真集群:集群節(jié)點分布在多臺機(jī)器上更多詳細(xì):真集群與偽集群的區(qū)別 該教程使用的是偽集群,由于在一個主機(jī)上實...
摘要:熱門框架學(xué)習(xí)目錄項目介紹專輯欄目一簡介環(huán)境安裝配置客戶端連接常用命令集群搭建分布式鎖二簡介環(huán)境安裝配置基本特性啟動過程分析選舉過程主從數(shù)據(jù)同步過程分析集群搭建分布式鎖三簡介環(huán)境安裝配置基本特性基本概念和模型收發(fā)消息案例架構(gòu)初識收發(fā)消息原 HotFrameLearning 熱門框架學(xué)習(xí)(目錄) - I、項目介紹 - II、專輯欄目 一、Redis Redis 簡介 Redis 環(huán)境安裝...
閱讀 3596·2023-04-26 02:24
閱讀 931·2023-04-25 14:47
閱讀 2478·2021-11-24 11:16
閱讀 1711·2021-11-24 09:38
閱讀 1571·2021-11-18 10:07
閱讀 2061·2021-09-22 15:49
閱讀 1589·2019-08-30 15:55
閱讀 875·2019-08-26 13:38