`

activemq 双机——ActiveMQ集群Pure Master Slave

    博客分类:
  • jms
 
阅读更多
文章来源http://hi.baidu.com/minordragon/blog/item/6752c21fcad2b211314e15e7.html

如下:
解决单点故障:Pure Master Slave

1.         Master:给broker取个名字,修改其持久化KAHADB文件

2.         Slave:给broker取个名字,修改其持久化KAHADB文件,需要配置Master的地址和端口

3.         一个Master只能带一个Slave

4.         Master工作期间,会将消息状况自动同步到Slave

5.         Master一旦崩溃,Slave自动接替其工作,已发送并尚未消费的消息继续有效

6.         Slave接手后,必须停止Slave才能重启先前的Master

     MQ配置

1.         Master:首先复制 $activemq_dir$/conf/activemq.xml,并改名为:pure_master.xml,修改文件(192.168.0.20)

1)         <broker brokerName="pure_master" …

2)         <kahaDB directory="${activemq.base}/data/kahadb_pure_master "/>

3)         <transportConnector name="openwire" uri="tcp://0.0.0.0:61616"/>

2.         Slave:首先复制 $activemq_dir$/conf/activemq.xml,并改名为:pure_slave.xml,修改文件(192.168.0.86)

1)         <broker brokerName="pure_slave" masterConnectorURI="tcp://192.168.0.20:61616"  //master的ip

shutdownOnMasterFailure="false" …

2)         <kahaDB directory="${activemq.base}/data/kahadb_pure_slave "/>

3)         <transportConnector name="openwire" uri="tcp://0.0.0.0:61616"/>

3.         首先启动Master,启动完毕后在另一个Shell启动Slave,Slave启动后,可以看到Master那个Shell中显示已经Attach上了Slave

1)         启动Master:$activemq_dir$\bin>activemq xbean:file:../conf/pure_master.xml

2)         启动Slave:$activemq_dir$\bin>activemq xbean:file:../conf/pure_slave.xml

     JAVA测试:队列

1.         生产者

public static void main(String[] args) throws Exception {

         ConnectionFactory cf = new ActiveMQConnectionFactory("failover:(tcp://0.0.0.0:61616,tcp://0.0.0.0:61617)");

         Connection conn = cf.createConnection();

         conn.start();

         Session sess = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);

         Queue qq = new ActiveMQQueue("qq1");

         MessageProducer prod = sess.createProducer(qq);

         Message msg = null;

        

         Scanner scan = new Scanner(System.in);

         String str = scan.next();

         while(true) {

                   msg = sess.createTextMessage(str);

                   prod.send(msg);

                   if(str.equals("exit")) {

                            break;

                   }

                   str = scan.next();

         }

         conn.close();

}

2.         消费者

public static void main(String[] args) throws Exception {

         ConnectionFactory cf = new ActiveMQConnectionFactory("failover:( tcp://0.0.0.0:61616,tcp://0.0.0.0:61617)");

         Connection conn = cf.createConnection();      

         conn.start();

         Session sess = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);

         Queue qq = new ActiveMQQueue("qq1");

         MessageConsumer cs = sess.createConsumer(qq);

 

         TextMessage msg = (TextMessage)cs.receive();

         String str = msg.getText();

         while(true) {

                   System.out.println("receive msg:\t"+msg.getText());

                   if(str.equals("exit")) {

                            break;

                   }

                   msg = (TextMessage)cs.receive();

                   str = msg.getText();

         }

         conn.close();

}

     测试步骤

1.         启动生产者,发送几条消息

2.         启动消费者,可看到接收到的消息

3.         关闭消费者

4.         生产者继续发送几条消息—消息A

5.         停止Master(可看到生产者端显示连接到Slave(tcp://0.0.0.0:61617)了)

6.         生产者继续发送几条消息—消息B

7.         启动消费者

8.         消费者接收了消息A和消息B,可见Slave接替了Master的工作,而且储存了之前生产者经过Master发送的消息

     结论

Pure Master Slave模式实现方式简单,可以实现消息的双机热备功能;队列可以实现消息的异步和点对点发送
分享到:
评论

相关推荐

    ActiveMQ 集群——JDBC Master Slave + Broker Cluster

    ActiveMQ 集群——JDBC Master Slave + Broker Cluster ActiveMQ 集群是指将多个 ActiveMQ 服务器组合在一起,以提高系统的可扩展性和可靠性。在这个集群中,我们可以使用 JDBC Master Slave 模式和 Broker Cluster...

    activemq_master-slave集群安装文档

    这种配置是ActiveMQ推荐的策略之一,提供了三种不同的实现方式:Pure Master Slave、Shared File System Master Slave和JDBC Master Slave。 在安装和配置ActiveMQ Master-Slave集群之前,需要准备以下环境: 1. ...

    activemq-master-slave集群安装文档.doc

    在ActiveMQ中,主要有三种Master-Slave实现:Pure Master Slave、Shared File System Master Slave和JDBC Master Slave。这里主要讨论的是JDBC Master Slave模式,它依赖于数据库来确定哪个Broker是Master,哪个是...

    ActiveMQ实战——实现一个简易版的聊天室

    在本篇《ActiveMQ实战——实现一个简易版的聊天室》中,我们将深入探讨如何利用Apache ActiveMQ构建一个简单的在线聊天应用。ActiveMQ是Apache软件基金会的一个开源项目,它是一款功能强大的消息中间件,用于在...

    ActiveMQ Master/Slave 主从配置

    ActiveMQ支持多种高可用的主从配置模式,包括Shared File System Master/Slave、JDBC Master/Slave和Replicated LevelDB Store。文章主要介绍了使用JDBC Master/Slave模式来实现ActiveMQ的高可用配置。 在JDBC ...

    linux环境下ActiveMQ持久化、集群环境搭建详解

    可以使用 Apache ActiveMQ 的集群模式,例如使用 Master-Slave 模式或 Replicated LevelDB 模式。 总结 搭建 ActiveMQ 持久化和集群环境需要对 Linux 操作系统、Java 环境、ActiveMQ 等方面有深入的了解。需要安装...

    基于kahadb的activemq高可用集群部署配置示例

    本示例将详细讲解如何基于KahaDB存储引擎构建ActiveMQ的高可用集群。 KahaDB是ActiveMQ的一个持久化存储机制,它提供了快速、可扩展和可靠的存储解决方案。在高可用集群中,KahaDB确保即使在broker故障时,消息也...

    window系统搭建activeMQ集群和操作步骤

    在Windows系统上搭建ActiveMQ集群是一项关键的任务,它涉及到分布式消息传递系统的设计和优化。ActiveMQ是Apache软件基金会开发的一款开源消息代理,它遵循Java Message Service (JMS) 规范,提供高可靠的消息传递...

    activemq master-slave搭建的NFSV4文档

    ** activemq master-slave 架构与 NFSV4 的集成** 在企业级消息传递系统中,Apache ActiveMQ 是一个广泛使用的开源消息代理,它提供了可靠的消息传递服务。为了实现高可用性和容错性,ActiveMQ 支持主从(master-...

    activemq+zk集群配置

    ActiveMQ是Apache软件基金会的一个开源项目,它是一款高效、强大的消息中间件,而ZooKeeper则是一个分布式协调服务,用于管理分布式应用的配置信息、命名服务、集群状态等。在大型分布式系统中,这两者的结合使用...

    ActiveMQ部署方案分析对比.zip

    ActiveMQ集群部署方式对比:Pure Master Slave方式,Shared Filesystem Master-Slave方式 ,Shared Database Master-Slave方式,Replicated LevelDB Store方式,Broker-Cluster部署方式....

    RabbitMQ集群-ActiveMQ集群集合

    本篇文章将深入探讨两个主流的消息队列服务——RabbitMQ和ActiveMQ,特别是它们在集群环境下的部署和配置。 首先,我们来看RabbitMQ集群。RabbitMQ是一款基于AMQP协议的开源消息中间件,由Erlang编程语言实现,以其...

    4.7、activemq 集群 conduitSubscriptions 均衡消费和master slave,jdbc存储1

    在ActiveMQ集群环境中,实现消息均衡消费和主备切换是一个重要的功能。本示例主要讨论了如何通过配置和代码实现ActiveMQ集群中的`conduitSubscriptions`策略,以及结合`jdbc`存储,来确保消息的高可用性和消费的均衡...

    centos6下ActiveMQ+Zookeeper消息中间件集群-完整部署记录(个人精华版)

    本篇文章记录centos6下ActiveMQ+Zookeeper消息中间件集群-完整部署过程,讲解十分详细,本人线上实操手册。在此分享出来,希望能帮助到有用到的朋友。

    activemq集群配置文档

    本文档将详细介绍如何利用 ZooKeeper 实现 ActiveMQ 的 Master-Slave 集群配置,以及具体的部署步骤。 #### 二、ActiveMQ 高可用原理 ##### 2.1 原理概述 在 ActiveMQ 的集群配置中,采用 ZooKeeper 作为集群协调...

    ActiveMQ集群

    Master-Slave模式是ActiveMQ的一种简单的集群模式,其中有一个主节点(Master)和多个从节点(Slave)。主节点处理所有的消息发送和接收,而从节点则用作备份。一旦主节点宕机,一个从节点会接替主节点的角色成为新...

    基于zookeeper+levelDB的ActiveMQ集群测试代码

    ZooKeeper在ActiveMQ中的主要作用是作为集群的选主仲裁器,确保在多台服务器组成的ActiveMQ集群中,只有一个Master节点对外提供服务,从而保证消息的有序性。 LevelDB是Google开源的一个轻量级、高性能、单机键值对...

    ActiveMQ集群安装和部署

    之后可以通过ActiveMQ的管理界面来验证集群状态,确认Master和Slave是否正常通信并处于活动状态。 #### 五、总结 通过以上步骤,我们完成了ActiveMQ集群的安装和基本配置。ActiveMQ集群可以显著提高消息处理的能力...

Global site tag (gtag.js) - Google Analytics