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端口訪問: