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

相关推荐
予枫的编程笔记9 天前
【Java进阶2】Java常用消息中间件深度解析:特性、架构与适用场景
java·kafka·rabbitmq·rocketmq·activemq
Lisonseekpan17 天前
Kafka、ActiveMQ、RabbitMQ、RocketMQ对比
java·后端·kafka·rabbitmq·rocketmq·activemq
武子康23 天前
Java-199 JMS Queue/Topic 集群下如何避免重复消费:ActiveMQ 虚拟主题与交付语义梳理
java·分布式·消息队列·rabbitmq·activemq·mq·java-activemq
小股虫1 个月前
从零开始:ActiveMQ安装、Java应用实战与Web控制台体验
java·activemq·java-activemq
夏霞1 个月前
c# ActiveMQ
开发语言·c#·activemq
吃西瓜的星星1 个月前
从0开始完成ActiveMQ-cpp在windows_x86平台的编译(从编译openssl开始)
activemq·openssl·c/c++
b***74882 个月前
2025年前端开发新方向预测
剪枝·activemq·argocd
ANYOLY2 个月前
ActiveMQ 核心知识点
activemq
原来是好奇心2 个月前
消息队列终极选型:RabbitMQ、RocketMQ、Kafka与ActiveMQ深度对比
分布式·kafka·rabbitmq·rocketmq·activemq·mq
你想考研啊2 个月前
Linux下搭建Activemq的Master-Slave(共享文件模式)
linux·运维·activemq