本文藉鑒http://www.cnblogs.com/gossip/p/5977489.html,在此基礎上進行了完善,使之成為一個完整版的偽分散式部署說明,在此記錄一下! 一、本文目的 介紹如何在同一臺虛擬機上搭建高可用的Activemq服務,集群數量包含3個Activemq,當Activemq可 ...
本文藉鑒http://www.cnblogs.com/gossip/p/5977489.html,在此基礎上進行了完善,使之成為一個完整版的偽分散式部署說明,在此記錄一下! 一、本文目的 介紹如何在同一臺虛擬機上搭建高可用的Activemq服務,集群數量包含3個Activemq,當Activemq可用數>=2時,整個集群可用。 本文Activemq的集群數量為3個,分別命名為mq1,mq2,mq3 二、概念介紹 1、偽集群 集群搭建在同一臺虛擬機上,3個Activemq分別使用不同的埠提供服務,啟用1個為Master,其它2個為Slaver,同一時間僅Master隊列提供服務 2、高可用 3個Activemq服務,同一時間僅Master隊列提供服務,當Master隊列掛掉後,其它2個Slaver自動選舉出1個成為Master,整個隊列服務依然可用。當掛掉的隊列重新恢復後,自動加入集群。當集群僅剩下1個隊列時,整個隊列不可用。 3、Activemq集群數據存儲方式 a) kahaDB:文件共用,預設方式 b) JDBC:資料庫共用 c) LevelDB:數據共用,本文使用方式 三、Activemq偽集群的搭建 1、Activemq的埠介紹 Activemq預設主要使用2個埠,8161(控制台使用)、61616(提供服務的埠),如果需要搭建集群,還需要開放集群間通訊的埠(主要用於選舉Master) 2、Activemq集群埠的分配
控制台 | 服務介面 | 集群通訊介面 | |
mq1 | 8161 | 51511 | 61601 |
mq2 | 8162 | 51512 | 61602 |
mq3 | 8163 | 51513 | 61603 |
服務介面沒有使用預設的61611是因為activemq預設還會使用61613,61614等埠;
3、修改activemq配置
a) 安裝activemq,本文使用Activemq版本為5.14.1,下載地址http://activemq.apache.org/activemq-5141-release.html;(前提條件,電腦已安裝java JDK,不然啟動時會提示)
解壓文件到任意目錄,然後打開CMD命令視窗,輸入命令“解壓目錄\bin\activemq start
”,在瀏覽器里輸入“http://127.0.0.1:8161/admin/”預設賬號密碼都是“admin”.如圖:
至此,activemq單機模式安裝成功。
b) 修改配置文件activemq.xml,路徑為conf/activemq.xml
1、broker(所有activemq的brokerName必須一致,才能加入同一個集群)
2、配置levelDB,在<broker>節點內添加(原始配置文件中是不存在<replicatedLevelDB>節點的,另外紅色方框標示的是集群通信介面)
bind:集群間通訊的ip和埠
zkAddress:ZooKeeper地址,多個可用,逗號分隔
hostname:主機名,可在/etc/hosts中進行配置,預設“localhost”
zkPath:zkPath目錄(自定義),可在ZooInspetor中進行查看
2、配置服務介面,在<transportConnectors>節點內,僅修改紅色方框標註的地方
3、配置控制臺端口,conf\jetty.xml文件中,在id="jettyPort"的<bean>節點內,僅修改紅色方框標註的地方
c) 將整個activemq的安裝目錄複製成三個,並命名mq1,mq2,mq3;並修改mq2和mq3中的配置文件(安如上方法),更改其服務介面為“51512”,“51513”和控制臺端口“8162”,“8163”以及集群通信介面“61602”,“61603”。
四、Zookeeper單機模式安裝
下載zookeeper3.4.9,https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.4.9/ 並解壓至任意目錄,確保以及安裝java JDK
啟動zookeeper,打開cmd命令視窗,輸入“解壓目錄\bin\zkServer.cmd” ,回車