cd /opt
wget https://www-eu.apache.org/dist/activemq/5.15.9/apache-activemq-5.15.9-bin.tar.gz
tar -xvf apache-activemq-5.15.9-bin.tar.gz
hostnamectl set-hostname activemq01.csp
hostnamectl set-hostname activemq02.csp
hostnamectl set-hostname activemq03.csp
cd /opt/apache-activemq-5.15.9/conf/
vim activemq.xml
brokerName="activemqCluster"
<persistenceAdapter>
<!--<kahaDB directory="${activemq.data}/kahadb"/>-->
<replicatedLevelDB
directory="${activemq.data}/leveldb"
replicas="3"
bind="tcp://0.0.0.0:62222"
zkAddress="192.168.165.29:2181,192.168.165.30:2181,192.168.165.31:2181"
hostname="192.168.165.33"
zkPath="/activemq/leveldb-stores"
sync="local_disk"/>
</persistenceAdapter>
sync:在消息被消费完成前,同步信息所存贮的策略。如果有多种策略用逗号隔开,ActiveMQ会选择较强的策略。而如果有local_mem, local_disk这两种策略的话,那么ActiveMQ则优先选择local_disk策略,存储在本地硬盘。
# cat /etc/sysconfig/iptables
*filter
:INPUT ACCEPT [0systemctl restart iptables.service:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8161 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 61616 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 62222 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 10050 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
# systemctl restart iptables.service
/opt/apache-activemq-5.15.9/bin/activemq start
/opt/apache-activemq-5.15.9/bin/activemq stop
当一个ActiveMQ节点挂掉,或者一个ZooKeeper节点挂掉,ActiveMQ服务依然正常运转。如果仅剩一个ActiveMQ节点,因为不能选举Master,ActiveMQ不能正常运转;同样的,如果ZooKeeper仅剩一个节点活动,不管ActiveMQ各节点是否存活,ActiveMQ也不能正常提供服务。 (ActiveMQ集群的高可用,依赖于ZooKeeper集群的高可用。)