zookeeper與activemq整合


(1)zookeeper與activemq原理

使用ZooKeeper實現的Master-Slave實現方式,是對ActiveMQ進行高可用的一種有效的解決方案,高可用的原理:使用ZooKeeper(集群)注冊所有的ActiveMQ Broker。只有其中的一個Broker可以對外提供服務(也就是Master節點),其他的Broker處於待機狀態,被視為Slave。如果Master因故障而不能提供服務,則利用ZooKeeper的內部選舉機制會從Slave中選舉出一個Broker充當Master節點,繼續對外提供服務。

(2)環境

  • centos版本
#cat /etc/redhat-release 
CentOS release 6.5 (Final)
  • 關閉selinux和iptables防火牆配置
sed -ri '/^SELINUX=/cSELINUX=disable' /etc/selinux/config
setenforce 0
iptables -I INPUT 1 -s 192.168.92.0/24 -j ACCEPT
service iptables save
  • zookeeper環境
主機IP                 消息端口        通信端口        節點目錄/usr/local/下
192.168.92.134        2181            2888:3888          zookeeper
192.168.92.135        2181            2888:3888          zookeeper
192.168.92.136        2181            2888:3888          zookeeper
  • activemq環境
主機IP                         消息端口      控制台端口          節點目錄/usr/local/下
192.168.92.134                  61616          8161                 activemq
192.168.92.135                  61616          8161                 activemq
192.168.92.136                  61616          8161                 activemq

(3)安裝zookeeper

1)基本配置

#node1配置:192.168.92.134 
[ -d /tools ] || mkdir /tools 
cd /tools
wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.3.6/zookeeper-3.3.6.tar.gz
tar xf zookeeper-3.3.6.tar.gz -C /usr/local/
ln -sv /usr/local/zookeeper-3.3.6/ /usr/local/zookeeper
mkdir  /usr/local/zookeeper/{data,log}
echo 1 >/usr/local/zookeeper/data/myid
echo "export PATH=/usr/local/zookeeper/bin:$PATH" >>/etc/profile ; source /etc/profile
###############################################################################
#node2配置:192.168.92.135 
[ -d /tools ] || mkdir /tools 
cd /tools
wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.3.6/zookeeper-3.3.6.tar.gz
tar xf zookeeper-3.3.6.tar.gz -C /usr/local/
ln -sv /usr/local/zookeeper-3.3.6/ /usr/local/zookeeper
mkdir  /usr/local/zookeeper/{data,log}
echo 2 >/usr/local/zookeeper/data/myid
echo "export PATH=/usr/local/zookeeper/bin:$PATH" >>/etc/profile ; source /etc/profile
###############################################################################
#node3配置:192.168.92.136
[ -d /tools ] || mkdir /tools 
cd /tools
wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.3.6/zookeeper-3.3.6.tar.gz
tar xf zookeeper-3.3.6.tar.gz -C /usr/local/
ln -sv /usr/local/zookeeper-3.3.6/ /usr/local/zookeeper
mkdir  /usr/local/zookeeper/{data,log}
echo 3 >/usr/local/zookeeper/data/myid
echo "export PATH=/usr/local/zookeeper/bin:$PATH" >>/etc/profile ; source /etc/profile

2)修改配置文件:三台節點的配置相同

cd /usr/local/zookeeper/conf
cp zoo_sample.cfg zoo.cfg
#vim zoo.cfg
clientPort=2181
server.1=192.168.92.134:2888:3888 
server.2=192.168.92.135:2888:3888 
server.3=192.168.92.136:2888:3888 
dataDir=/usr/local/zookeeper/data
dataLogDir=/usr/local/zookeeper/log

3)三台節點啟動zookeeper

zkServer.sh start
ss -anltup | grep 2181
# zkServer.sh status
JMX enabled by default
Using config: /usr/local/zookeeper-3.3.6/bin/../conf/zoo.cfg
Mode: follower
zkServer.sh status
JMX enabled by default
Using config: /usr/local/zookeeper-3.3.6/bin/../conf/zoo.cfg
Mode: leader

(4)安裝和配置activemq

1)安裝activemq

cd /tools
wget https://mirrors.tuna.tsinghua.edu.cn/apache//activemq/5.15.3/apache-activemq-5.15.3-bin.tar.gz
tar xf apache-activemq-5.15.3-bin.tar.gz -C  /usr/local/
ln -sv /usr/local/apache-activemq-5.15.3/ /usr/local/activemq
echo  "export PATH=$PATH:/usr/local/activemq/bin"  >>/etc/profile;source /etc/profile

2)修改配置文件

cp /usr/local/activemq/conf/activemq.xml{,.bak}
  • 修改配置文件內容如下
#vim /usr/local/activemq/conf/activemq.xml
注釋一下內容:
		<!--
        <persistenceAdapter>
            <kahaDB directory="${activemq.data}/kahadb"/>
        </persistenceAdapter>
		-->
修改內容如下:三台主機的hostname各種修改成自己的ip地址即可
<persistenceAdapter>
<replicatedLevelDB 
directory="${activemq.data}/leveldb"
replicas="3"
bind="tcp://0.0.0.0:0"
zkAddress="192.168.92.134:2181,192.168.92.135:2181,192.168.92.136:2181"
zkPassword="redhat"
hostname="192.168.92.134"
sync="local_disk"
zkPath="/activemq/leveldb-stores" />
</persistenceAdapter>
修改brokerName:三台服務器必須要一樣
<broker xmlns="http://activemq.apache.org/schema/core" brokerName="mq" dataDirectory="${activemq.data}">
  • 啟動activemq
activemq start 


免責聲明!

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



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