ActiveMQ Artemis 系列| High Availability 主备模式(消息复制) 版本2.19.1

一、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界面上查看状态

相关推荐
追梦@Java8 天前
Spring + ActiveMQ 整合实现点对点(point to point)消息发送案例
java·后端·spring·activemq·java-activemq
追梦@Java9 天前
Spring + ActiveMQ 整合实现发布/订阅(publish-subscribe)消息发送案例
java·后端·spring·activemq·java-activemq
追梦@Java9 天前
ActiveMQ 的网络连接及消息回流机制
github·activemq
鬼钺魂11 天前
springboot集成activemq,并配置多个mq
spring boot·activemq·java-activemq
醉颜凉20 天前
四大消息队列:Kafka、ActiveMQ、RabbitMQ、RocketMQ对比
分布式·kafka·消息队列·rabbitmq·rocketmq·activemq·mq
点点滴滴的记录1 个月前
ActiveMQ、RabbitMQ、Kafka、RocketMQ在优先级队列、延迟队列、死信队列、重试队列、消费模式、广播模式的区别
kafka·rabbitmq·activemq
点点滴滴的记录1 个月前
ActiveMQ、RabbitMQ、Kafka、RocketMQ在消息回溯、消息堆积+持久化、消息追踪、消息过滤的区别
kafka·rabbitmq·activemq
点点滴滴的记录1 个月前
ActiveMQ、RabbitMQ、Kafka、RocketMQ在事务性消息、性能、高可用和容错、定时消息、负载均衡、刷盘策略的区别
kafka·rabbitmq·activemq
点点滴滴的记录1 个月前
ActiveMQ、RabbitMQ、Kafka、RocketMQ在多租户、多协议支持、流量控制、顺序性消息、幂等性的区别
kafka·rabbitmq·activemq
点点滴滴的记录1 个月前
ActiveMQ、RabbitMQ、Kafka、RocketMQ的区别简介
kafka·rabbitmq·activemq