当前位置:首页 > 英文周记 > 正文内容

activemq集群「activemq集群和配置详解」

更新时间:2026-07-18 12:00:44 周记网3年前 (2023-03-11)英文周记127

如何建立Master/Slave + Broker Cluster的ActiveMQ集群

ActiveMQ具有强大和灵活的集群功能,但在使用的过程中会发现很多的缺点,ActiveMQ的集群方式主要由两种:Master-Slave和Broker Cluster。

1、Master-Slave

activemq集群「activemq集群和配置详解」

Master-Slave方式中,只能是Master提供服务,Slave是实时地备份Master的数据,以保证消息的可靠性。当Master失效时,Slave会自动升级为Master,客户端会自动连接到Slave上工作。Master-Slave模式分为三类:Pure Master Slave、Shared File System Master Slave和JDBC Master Slave。

(1)PureMaster Slave

需要两个Broker,一个作为Master,另一个作为Slave,运行时,Slave通过网络实时从Master处**数据,同时,如果Slave和Master失去连接,Slave就会自动升级为Master,继续为客户端提供消息服务,如图所示:

实践时,我们使用两个ActiveMQ服务器,一个作为Master,Master不需要做特殊的配置;另一个作为Slave,配置${ACTIVEMQ_HOME}/conf/activemq.xml文件,在broker节点中添加连接到Master的URI和设置Master失效后不关闭Slave,如下:

broker xmlns=" " brokerName="pure_slave"

masterConnectorURI="tcp://0.0.0.0:61616" shutdownOnMasterFailure="false" dataDirectory="${activemq.base}"

同时修改Slave的服务端口,如:

transportConnectors

transportConnector name="openwire" uri="tcp://0.0.0.0:61617"/

/transportConnectors

为了看到实践的效果,Master和Slave的消息持久化介质都是采用MySQL,并且Master和Slave分别连接不同的数据库。

在消息生产者应用和消息消费者应用的Spring配置文件中添加以下红色内容:

property name="brokerURL" value="failover:(tcp://localhost:61616,tcp://localhost:61617)?initialReconnectDelay=100" /

配置完成后,我们可以通过以下步骤来进行测试:

A、启动Master和Slave,启动消息生产者应用,并分别发送一些Queue消息和Topic消息,如果此时订阅Topic消息的消费者设置了clientID,我们就可以在Master的数据库和Slave的数据库中看到尚未消费的消息,包括Queue和Topic的消息;

B、启动消费者应用,可以接收到消息;

C、关闭消费者,生产者继续发送一些消息A;

D、停止Master;

E、生产者继续发送消息B;

F、启动消费者应用,消费者可以接收到消息A和消息B,说明Slave接替了Master的工作并**了Master的消息。

这种方式只能两台机器做集群,可以起到很好的双机热备功能,但只能失效一次,只能停机恢复Master-Slave结构。

(2)SharedFile System Master Slave

SharedFile System Master Slave就是利用共享文件系统做ActiveMQ集群,是基于ActiveMQ的默认数据库kahaDB完成的,kahaDB的底层是文件系统。这种方式的集群,Slave的个数没有限制,哪个ActiveMQ实例先获取共享文件的锁,那个实例就是Master,其它的ActiveMQ实例就是Slave,当当前的Master失效,其它的Slave就会去竞争共享文件锁,谁竞争到了谁就是Master。这种模式的好处就是当Master失效时不用手动去配置,只要有足够多的Slave。Shared File System Master Slave模式如图所示:

本例子是在一台机器上运行三个ActiveMQ实例,需要对ActiveMQ的配置文件做一些简单的配置,就是把持久化适配器的存储目录改为本地磁盘的一个固定目录

现在activemq集群用的多的是zookeeper来做的吗

使用 Zookeeper 作为一个分布式的服务框架,主要用来解决分布式集群中应用系统的一致性问题,它能提供基于类似于文件系统的目录节点树方式的数据存储,但是 Zookeeper 并不是用来专门存储数据的,它的作用主要是用来维护和监控你存储的数据。

c++ activemq 怎么配置集群

主要是设置JAVA的环境变量就可以了(JAVA_HOME和CLASSPATH)。 如果是ActiveMQ 5.5.0的话,直接运行就可以了

如何在linux上配置activemq集群

配置ActiveMQ的集群需要修改conf目录下的activemq.xml

具体信息

配置方式:Master-Slave方式

对于ActiveMQ有两种运行方式,一种是放入lib,和web应用一同启动,另外一种是作为单独的mq服务器运行,因为涉及了cluster,我们采用了单独运行的配置。

下载并解压后

我们进入activeMq目录。

进入%ActiveMQ%/bin

选择启动activemq.bat

如果启动过程中没有出现错误,我们就可以进行其他的配置。

配置文件的位置在%ActiveMQ%/conf中

编写测试程序:一个用来发送Message,一个用来接收Message

配置文件

修改conf目录下的activemq.xml文件

name="host61616" uri="static://(tcp://192.168.180.69:61616,tcp://192.168.180.69:11616)" /

name="host11616" uri="static://(tcp://192.168.180.69:61616,tcp://192.168.180.69:11616)" /

具体看了解

标签: activemq集群

“activemq集群「activemq集群和配置详解」” 的相关文章

activemq集群「activemq集群同步机制」

activemq集群「activemq集群同步机制」

消息队列原理及选型 消息队列(Message Queue)是一种进程间通信或同一进程的不同线程间的通信方式。 Broker(消息服务器) Broker的概念来自与Apache ActiveM...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。