一、ActiveMQ Artemis 介绍
Apache ActiveMQ Artemis 是一个高性能的开源消息代理,它完全符合 Java Message Service (JMS) 2.0 规范,并支持多种通信协议,包括 AMQP、MQTT、STOMP 和 OpenWire 等。ActiveMQ Artemis 由 Apache Software Foundation 开发和维护,旨在提供可靠的消息传递解决方案,适用于各种异步通信场景。
共享存储
共享存储是由master/slave对组成,指两个实例保存消息的目录相同,且一个是master,另一个是slave,同一时间只有一个实例对外提供服务,这个实例就是master。当master down机时,slave就会接手,变成master。由于使用的目录保存消息,因此slave启用时,消息不会丢失。
消息复制
消息复制同样是由master/slave对组成,是指slave实例复制其master实例上的消息,因此slave实例有master实例上的消息的备份。当master down机,则slave变成master,由于消息之前已进行过复制,因此消息不会丢失。
slave(backup) 端会实时同步master(live)端发送来的数据,如果master端挂了,则backup端会变成master(live)如果之前的master端恢复了,则这个恢复的master端会成为backup端.
二、部署
2.33.0版本 主从配置直通车
版本:apache-artemis-2.19.1
官网下载
https://activemq.apache.org/components/artemis/download/
master: 10.10.101.127
slave: 10.10.101.128
创建实例目录/root/broker
mdkir /root/broker
1.master 上运行如下命令:
./artemis create --host 10.10.101.127 --http-port 8161 --user admin --password admin --relax-jolokia --require-login --replicated --clustered master --staticCluster "tcp://10.10.101.128:61616" /root/broker --name master --cluster-user admin --cluster-password admin
2.slave上运行如下命令:
./artemis create --host 10.10.101.128 --http-port 8161 --user admin --password admin --relax-jolokia --require-login --replicated --clustered --slave --staticCluster "tcp://10.10.101.127:61616" /root/broker --name slave --cluster-user admin --cluster-password admin
3.修改/root/broker/etc/bootstrap.xml为如下(两边都要)
4.修改/root/broker/etc/jolokia-access.xml为如下(两边都要)
5.master节点上修改/root/broker/etc/broker.xml为如下
<ha-policy><replication><master><vote-on-replication-failure>true</vote-on-replication-failure><check-for-live-server>true</check-for-live-server></master></replication></ha-policy>
6.slave节点上修改/root/broker/etc/broker.xml为如下:
<ha-policy><replication><slave></slave></replication></ha-policy>
8.先启动master再启动slave
/root/broker/bin/artemis run
启动slave时,可以看到如下log就说明slave是处于backup状态
9.master节点的web界面上查看状态
9.slave节点的web界面上查看状态