准备三台机子(140 141 149)
1、分别下载安装 activeMQ
# cd /usr/local/src
# wget http://mirrors.cnnic.cn/apache//activemq/5.14.2/apache-activemq-5.14.2-bin.tar.gz
2、解压启动
# tar -zxvf apache-activemq-5.14.2-bin.tar.gz
重命名解压包,我命名的方式是activemq+机器的ip最后一位 当然你也可以不用修改 直接apache-activemq-5.14.2
# mv apache-activemq-5.14.2 activemq141
修改activemq管控台端口,也可以不用修改,此处修改是为了即使是伪集群也可以搭建,我此处
141 设置的为8161
142 设置的为8162
149 设置的为8163
#vi /usr/local/src/activemq140/conf/jetty.xml
集群配置(/usr/local/src/activemq141/conf/activemq.xml配置 ):
# vi /usr/local/src/activemq140/conf/activemq.xml
注意:此处集群的机器的 brokerName必须一致
机器140配置:
<broker xmlns="http://activemq.apache.org/schema/core" brokerName="dubbomq">
<persistenceAdapter>
<replicatedLevelDB
directory="${activemq.data}/leveldb"
replicas="3"
bind="tcp://0.0.0.0:62621"
zkAddress="192.168.40.140:2182,192.168.40.141:2183,192.168.40.149:2181"
hostname="192.168.40.140"
sync="local_disk"
zkPath="/activemq/leveldb-stores"
/>
</persistenceAdapter>
</broker>
机器141配置:
<broker xmlns="http://activemq.apache.org/schema/core" brokerName="dubbomq">
<persistenceAdapter>
<replicatedLevelDB
directory="${activemq.data}/leveldb"
replicas="3"
bind="tcp://0.0.0.0:62622"
zkAddress="192.168.40.140:2182,192.168.40.141:2183,192.168.40.149:2181"
hostname="192.168.40.141"
sync="local_disk"
zkPath="/activemq/leveldb-stores"
/>
</persistenceAdapter>
</broker>
机器149配置:
<broker xmlns="http://activemq.apache.org/schema/core" brokerName="dubbomq">
<persistenceAdapter>
<replicatedLevelDB
directory="${activemq.data}/leveldb"
replicas="3"
bind="tcp://0.0.0.0:62623"
zkAddress="192.168.40.140:2182,192.168.40.141:2183,192.168.40.149:2181"
hostname="192.168.40.149"
sync="local_disk"
zkPath="/activemq/leveldb-stores"
/>
</persistenceAdapter>
</broker>
启动之前需在防火墙上打开对应端口:
第一台机器(192.168.40.140)
#vi /etc/sysconfig/iptables
-A INPUT -p tcp -mstate --state NEW -m tcp --dport 8161 -j ACCEPT
-A INPUT -p tcp -mstate --state NEW -m tcp --dport 62621 -j ACCEPT
-A INPUT -p tcp -mstate --state NEW -m tcp --dport 51511 -j ACCEPT
第一台机器(192.168.40.141)
#vi /etc/sysconfig/iptables
-A INPUT -p tcp -mstate --state NEW -m tcp --dport 81612 -j ACCEPT
-A INPUT -p tcp -mstate --state NEW -m tcp --dport 62622 -j ACCEPT
-A INPUT -p tcp -mstate --state NEW -m tcp --dport 51512 -j ACCEPT
第一台机器(192.168.40.149)
#vi /etc/sysconfig/iptables
-A INPUT -p tcp -mstate --state NEW -m tcp --dport 8163 -j ACCEPT
-A INPUT -p tcp -mstate --state NEW -m tcp --dport 62623 -j ACCEPT
-A INPUT -p tcp -mstate --state NEW -m tcp --dport 51513 -j ACCEPT
再分别重启防火墙:
# service iptables restart
按安装顺序启动activemq:
# /usr/local/src/activemq140/bin/activemq start
# /usr/local/src/activemq141/bin/activemq start
# /usr/local/src/activemq149/bin/activemq start
监听日志:
# tail -f /usr/local/src/activemq140/data/activemq.log
# tail -f /usr/local/src/activemq141/data/activemq.log
# tail -f /usr/local/src/activemq149/data/activemq.log
设置开机启动:
# vi /etc/rc.local
su - root -c /usr/local/src/activemq140/bin/activemq start
# vi /etc/rc.local
su - root -c /usr/local/src/activemq141/bin/activemq start
# vi /etc/rc.local
su - root -c /usr/local/src/activemq149/bin/activemq start
运用ZooInspector(基于zookeeper)监控active运行状态:
此处三个activemq运行的程序,可以看出我们之前部署的active集群已经推举出新的master了。
其他两个从节点 只负责备份 不处理读写 只有当master挂掉以后才重新选举出master
登录控制台:账号密码为 admin/admin
可以看出 我这里已经消费了的消息记录。
在这里三个activemq集群中,挂掉一台集群可以正常运行,如果挂掉两台则不能运行了。
因为activemq集群是依赖zookeeper集群的 如果zookeeper集群down掉 那么activemq集群也不能正常运行