ActiveMQ5.14.1+Zookeeper3.4.9高可用偽分布式部署


本文借鑒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” ,回車

    

           

打開另外一個CMD窗口,輸入命令“netstat -ano|findstr "2181" ”查看zookeeper是否啟動成功,如圖端口2181已經打開,說明啟動成功

  

五、測試ActiveMQ偽分布式是否安裝成功

  1. cmd啟動zookeeper,輸入命令“zookeeper解壓目錄\bin\zkServer.cmd”;

    2. 分別啟動三個activemq,打開三個cmd窗口,分別輸入如下命令:

    “D:\apache-activemq-5.14.1-bin\mq1\bin\activemq start”

    “D:\apache-activemq-5.14.1-bin\mq2\bin\activemq start”

    “D:\apache-activemq-5.14.1-bin\mq3\bin\activemq start”

mq1:

mq2:

mq3:同上。

瀏覽器中輸入http://127.0.0.1:8161/admin/(此時master為mq1)

 此時可以看到作為master的是端口為8161的activemq即mq1;當關閉mq1的命令窗口,此時mq2變為master,mq3變為slave

再次查看http://127.0.0.1:8161/admin/ ,可以看到服務已經關閉了;而此時,zookeeper已經將master切換到了mq2上了,可以查看mq2的地址http://127.0.0.1:8162/admin/

至此,偽分布式activemq的部署已經完成了,歡迎交流指正!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM