消息隊列--ActiveMQ集羣部署

 

 

 

   

1、activeMQ主要的部署方式?html

  1,默認的單機部署(kahadb)java

    activeMQ默認的存儲單機模式,若是配置文件不作修改,則默認使用此模式。以本地的kahadb文件的方式進行存儲,性能徹底依賴本地磁盤,不能提供高可用。mysql

  2,基於zookeeper主從模式(levelDB Master/Slave)linux

    基於zookeeper來選舉一個master,其餘節點做爲slave實時同步消息,levelDB會優先採用內存存儲消息,異步同步到磁盤。該方式讀寫性能都較好,寫性能能媲美非持久化消息。sql

    優勢:實現高可用和數據安全,性能較好。數據庫

    缺點:因爲zookeeper的選舉機制,必需要使用2n+1(n>=1)的節點,才能實現高可用。apache

  3,基於共享數據庫的主從模式(Shared JDBC Master/Slave)vim

    能夠基於經常使用的mysql,mariadb,oracle等數據庫。安全

    每一個節點啓動都會爭搶數據庫鎖,從而保證master的惟一性,其餘節點做爲備份,一直等待數據庫鎖的釋放。服務器

              由於全部消息讀寫,其實都是數據庫操做,activeMQ節點自己壓力很小,性能徹底取決於數據庫性能。

    優勢:實現高可用和數據安全,通常兩個節點就能夠實現高可用。

    缺點:性能和穩定性都依賴於數據庫。

 

2、基於zookeeper的activeMQ單臺服務器集羣部署

  1,環境需求

    Centos7系統,java環境(jdk),zookeeper安裝包,activeMQ安裝包

  2,部署jdk環境

    jdk安裝包下載地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

    

    上面這個是最新版的,我使用的是jdk-8u121-linux-x64.tar.gz。

    2.1  上傳壓縮包到服務器,在當前有壓縮包的目錄下進行操做。

    2.2  建立文件夾

      mkdir /application

    2.3  解壓壓縮包(根據你本身的包名進行修改)

      tar xf jdk-8u121-linux-x64.tar.gz  -C /application/

    2.4  建立軟連接(根據你本身的包名進行修改)

      ln -s /application/jdk1.8.0_121/ /application/jdk

    2.5  配置環境變量

      vim /etc/profile

      在最後面添加這麼幾行:

      export JAVA_HOME=/application/jdk

      export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH

      export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar

    2.6  使環境變量生效

      source /etc/profile

    2.7  查看jdk配置狀況

      命令行輸入 java -version  顯示:

      

      則配置成功。

 

  3,安裝zookeeper單機集羣

    3.1  獲取zookeeper安裝包

      wget https://archive.apache.org/dist/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz

    3.2  安裝配置(配置3個)

      3.2.1  生成3個文件

        tar xf zookeeper-3.4.14.tar.gz -C /usr/local/zookeeper1

        tar xf zookeeper-3.4.14.tar.gz -C /usr/local/zookeeper2

        tar xf zookeeper-3.4.14.tar.gz -C /usr/local/zookeeper3

           3.2.2  修改 zookeeper1 的配置文件(個人內網地址是172.16.1.8)

        cd /usr/local/zookeeper1/conf

        cp zoo_sample.cfg zoo.cfg

        vim zoo.cfg

        將文件裏面的內容清空,後加入如下內容

                             tickTime=2000

        initLimit=10

        syncLimit=5

        dataDir=/usr/local/zookeeper1/data        文件存放位置

        clientPort=2181                                       端口

        server.1=172.16.1.8:2881:3881              第一個節點IP和端口(使用內網)

        server.2=172.16.1.8:2882:3882              第二個節點IP和端口

        server.3=172.16.1.8:2883:3883              第三個節點IP和端口

      3.2.3  建立 zookeeper1 的 myid 文件

        cd /usr/local/zookeeper1

        mkdir data

        echo "1" >  /usr/local/zookeeper1/data/myid

      3.2.4  修改 zookeeper2 的配置文件

        cd /usr/local/zookeeper2/conf

        cp zoo_sample.cfg zoo.cfg

        vim zoo.cfg

        將文件裏面的內容清空,後加入如下內容

                             tickTime=2000

        initLimit=10

        syncLimit=5

        dataDir=/usr/local/zookeeper2/data        文件存放位置

        clientPort=2182                                       端口

        server.1=172.16.1.8:2881:3881              第一個節點IP和端口(使用內網)

        server.2=172.16.1.8:2882:3882              第二個節點IP和端口

        server.3=172.16.1.8:2883:3883              第三個節點IP和端口

      3.2.5  建立 zookeeper1 的 myid 文件

        cd /usr/local/zookeeper2

        mkdir data

        echo "2" >  /usr/local/zookeeper2/data/myid

      3.2.6  修改 zookeeper3 的配置文件

        cd /usr/local/zookeeper3/conf

        cp zoo_sample.cfg zoo.cfg

        vim zoo.cfg

        將文件裏面的內容清空,後加入如下內容

                             tickTime=2000

        initLimit=10

        syncLimit=5

        dataDir=/usr/local/zookeeper3/data        文件存放位置

        clientPort=2183                                       端口

        server.1=172.16.1.8:2881:3881              第一個節點IP和端口(使用內網)

        server.2=172.16.1.8:2882:3882              第二個節點IP和端口

        server.3=172.16.1.8:2883:3883              第三個節點IP和端口

      3.2.7  建立 zookeeper1 的 myid 文件

        cd /usr/local/zookeeper3

        mkdir data

        echo "3" >  /usr/local/zookeeper3/data/myid

      3.2.8  啓動zookeeper集羣

        /usr/local/zookeeper1/bin/zkServer.sh start

        /usr/local/zookeeper2/bin/zkServer.sh start

        /usr/local/zookeeper3/bin/zkServer.sh start

      3.2.9  查看zookeeper集羣狀態

        /usr/local/zookeeper1/bin/zkServer.sh status

       

       

       其中,follower是跟隨者,leader爲領導者。

 

  4,部署單臺服務器activeMQ集羣

    4.1  下載activeMQ安裝包

      下載地址爲:http://mirror.bit.edu.cn/apache//activemq/5.15.9/apache-activemq-5.15.9-bin.tar.gz

    4.2  建立3個文件目錄(3個)

      tar xf apache-activemq-5.15.9-bin.tar.gz

      cp -r apache-activemq-5.15.9 /application/activemq1

      cp -r apache-activemq-5.15.9 /application/activemq2

      cp -r apache-activemq-5.15.9 /application/activemq3

    4.3  分別修改 activemq一、activemq二、activemq3的配置文件

      4.3.1  修改 activemq一、activemq二、activemq3的  jetty.xml 文件

         vim /application/activemq1/conf/jetty.xml

         

         vim /application/activemq2/conf/jetty.xml

         

         vim /application/activemq3/conf/jetty.xml

         

      4.3.2  修改 activemq一、activemq二、activemq3的  activemq.xml  文件

         vim /application/activemq1/conf/activemq.xml   

         將 <persistenceAdapter> 文件的內容修改爲如下內容:

         

         將 <transportConnectors> 文件中的url修改,若是同樣則無需修改

            

         3個配置文件中的brokeName必定要一致(3個文件都要修改)

         

         vim /application/activemq2/conf/activemq.xml 

            將 <persistenceAdapter> 文件的內容修改爲如下內容:

          

         將 <transportConnectors> 文件中的url修改,若是同樣則無需修改

         

         vim /application/activemq3/conf/activemq.xml 

          將 <persistenceAdapter> 文件的內容修改爲如下內容:

         

         將 <transportConnectors> 文件中的url修改,若是同樣則無需修改

         

      4.3.3  啓動集羣(那個先啓動,就是Master)

         /application/activemq1/bin/activemq start

         /application/activemq2/bin/activemq start

         /application/activemq3/bin/activemq start

      4.3.4  查看啓動日誌

         tail -fn 100 /application/activemq1/data/activemq.log

         master啓動:

            

         slave啓動:

         

         登陸服務器驗證:

         輸入公網ip,加master端口訪問:

         

相關文章
相關標籤/搜索