`
y806839048
  • 浏览: 1117423 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

activemq多群负载均衡

阅读更多

 

 
 
                                                                 图一
    图一说明:
   1、集群一包含3个队列:Amq1、Amq2、Amq3;集群二包含2个队列:Bmq1、Bmq2
   2、生产者一生产的消息可以同时发送到群集1、集群2,生产者二也一样
   3、消费者一可以同时从集群1、集群2消费消息,消费者二也一样
   4、某一个集群挂了,生产者和消费者可以不间断使用其它集群发送,消费消息
 
一、本文目的
        本介绍多个集群的搭建和使用,并通过负载均衡方式使用同一生产者往多个集群发送消息或使用同一消费者从多个集群消费消息。
         
二、概念说明
         1、多个集群
                图一中,集群1包含三个activemq,集群2包含2个activemq,两个集群间数据可以共用
          2、负载均衡
                图一中,生产者1发送的消息可根据集群的负载分别发送到集群1或集群2,当其中一个集群挂掉时,生产者1仍然会向集群2发送消息
                图一中,消费者1,消费者2都可以从集群1,集群2中消费消息,当其中一个集群挂掉时,消费者仍然能从另外一个集群消息消息
          3、集群间的通讯:使用networkConnector配置
 
 
三、Activemq集群的搭建
      1、单个集群的搭建参考:http://www.cnblogs.com/gossip/p/5977489.html
            注意:集群1和集群2中broker的name不能一样,zkPath不能一样
      2、本文中主要搭建2个集群,集群1包含3个activemq、集群2包含2个activemq
IP:192.168.146.129
集群A 控制台 服务接口 集群通讯接口
Amq1 8161 51511 61601
Amq2 8162 51512 61602
Amq3 8163 51513 61603
 
 
四、Activemq集群之间通讯
     Activemq集群搭建有多个方法,本文主要是通过配置networkConnectors实现,该配置放在<broker>节点下,原理为集群1配置连接集群2的所有activemq,反之亦然。配置如下:
     这也是最大的缺点,扩展性比较差

     1、集群1的每个activemq配置如下:(集群1的url包含集群2所有的队列信息,端口为队列的服务端口)

<networkConnectors>

  <networkConnector uri="static:(tcp://192.168.146.130:51511,tcp://192.168.1.101:51512)"/>

</networkConnectors>

   
     2、集群2的每个activemq配置如下:(集群2的url包含集群1所有的队列信息,端口为队列的服务端口)

<networkConnectors> <networkConnector uri="static:(tcp://192.168.146.129:51511,tcp://192.168.146.129:51512,tcp://192.168.146.129:51513)"/>

</networkConnectors>

 

五、消息生产者向多个集群发送消息

本例使用的是点对点消息队列的demo,使用方法请参考:

http://www.cnblogs.com/gossip/p/5970090.html

 

需要注意的几点:
1、各个集群只有Master节点的控制台才能使用
2、ActiveMQConnectionFactory的brokerURL必须包含所有集群队列节点的url,包括集群1和集群2,之前以为只需要包含某一个集群的url,搞了半天发现没效果

 

测试集群的高可用性:

1、集群1和集群2都注册到了ZooKeeper,都有各自的Master节点

 

2、两个集群中都只有Master节点的管控台才可用(下图为集群中Master队列收到的消息)

 

3、消息随机送到不同集群的Master队列中

 

4、手动停止集群2的Master队列,生产者卡顿了一下后继续往集群1发送消息,中间的消息并没有中断

 

5、重新启动集群2的Master队列后,生产者又重新向集群2的Master队列发送消息

 

六、消费者从多个集群消费消息

1、只有1个消费者时,随机从两个集群中消费消息

 

2、启动两个不同的消费者,他们都同时从集群1、集群2的消费消息。停止其中一个消费者后不影响另外一个消费者

 

3、关闭集群2的一个队列后(集群2只有两个队列,关闭其中1个后,整个集群都失效了),两个消费者都只从集群1消费消息

 

七、总结
      上文中主要介绍了单个Activemq集群的高可用,一般应用已经足够。本文更进一步,作为高性能和扩展性的应用,通过多个集群的方式扩展队列,使得消息可以同时发送到多个队列,也可以通过多个消费者消费同一队列的消息。
 
八、参考资料
 
 
 
分享到:
评论

相关推荐

    activemq负载均衡实现.doc

    这种部署方式允许多个 ActiveMQ 经纪人实例通过网络互相连接,共享队列,从而实现消息的负载均衡。 负载均衡有两种主要实现方式:静态发现和动态发现。 1. 静态发现: 静态发现是通过在配置文件中硬编码经纪人的...

    ActiveMQ高可用+负载均衡集群源码+文档.zip

    在ActiveMQ中,负载均衡可以通过配置多个消费端来实现,每个消费者都可以处理一部分消息,从而分摊系统压力。此外,ActiveMQ还支持使用像HawtIO这样的管理工具来监控和调整集群的负载分配。 在提供的源码和文档中,...

    ActiveMQ高可用+负载均衡集群的安装、配置、高可用测试

    1. **Virtual Topic**:ActiveMQ的Virtual Topic特性允许创建一个主题,这个主题可以被多个消费者并行消费,实现消息的负载均衡。 2. **Network of Brokers**:在多个broker之间建立网络连接,消息可以自动在broker...

    消息队列:ActiveMQ:ActiveMQ的集群与负载均衡.docx

    消息队列:ActiveMQ:ActiveMQ的集群与负载均衡.docx

    高可用之ActiveMQ高可用+负载均衡集群的安装、配置、高可用测试-java源码.zip

    5. **安装与配置**:配置ActiveMQ高可用和负载均衡集群涉及多个步骤,包括安装和启动多个broker实例,设置网络连接,配置集群策略,以及选择合适的HA策略(如Master-Slave或Network of Brokers)。这些步骤需要对...

    ActiveMQ高可用+负载均衡集群的安装、配置、高可用测试.docx

    在构建企业级的消息传递系统中,ActiveMQ是一个广泛使用的开源消息代理,它提供高可用性和负载均衡能力。本文将深入探讨如何安装、配置ActiveMQ以实现高可用性集群,并进行负载均衡测试,同时利用ZooKeeper和LevelDB...

    Apache-ActiveMQ高可用性之负载均衡.docx

    Apache ActiveMQ 是一款开源的消息中间件,它支持多种消息协议并提供高可用性和负载均衡功能。在本文中,我们将深入探讨 Apache ActiveMQ 实现高可用性的负载均衡策略,特别是基于 Broker-Cluster 的方法。 首先,...

    activemq配置组合队列(复制)、负载均衡

    本文将深入探讨如何在ActiveMQ中配置组合队列(也称为复制队列)以及实现负载均衡。 首先,让我们了解什么是组合队列。组合队列是一种特殊的队列,它的特点是消息不仅被存储在一个队列中,还会被复制到其他队列,...

    ActiveMQ+zookeeper实现高可用和负载均衡(代码和测试)

    ### ActiveMQ+zookeeper实现高可用和负载均衡 #### 一、背景与目标 在现代分布式系统中,消息中间件如ActiveMQ扮演着重要的角色,它能够帮助应用之间进行可靠的消息传递。为了保证系统的稳定性和可靠性,通常需要...

    httpd(负载均衡)+Jboss集群高可用部署配置文件

    综上所述,通过httpd的负载均衡,Jboss的集群部署,以及ActiveMQ的消息中间件,可以在Linux环境中构建一个高可用、高性能的应用系统。在实际操作中,还需要关注网络配置、安全性、监控以及日志管理等多个方面,确保...

    JMS与WebService负载均衡

    当多个MessageConsumer监听同一个Queue时,JMS提供者会自动将接收到的消息分发给这些消费者,从而实现负载均衡。这种机制使得消息处理更加高效,避免了单个消费者过载的情况。在图一中,当消息生产者发送多个消息时...

    自己实现的 ActiveMQ 多线程客户端 包含生产消息客户端和消费者消息客户端

    在这个项目中,我们看到的是一个自己实现的 ActiveMQ 客户端,它特别关注多线程的实现,这在处理大量并发消息时非常关键。 1. **ActiveMQ 的基本概念**: - **消息队列**:ActiveMQ 中的核心概念,用于存储待处理...

    activemq-5.16.0.zip

    4. **负载均衡**:在多节点环境中,消息队列可以分发任务到不同的工作节点,实现负载均衡。 5. **事件驱动架构**:在事件驱动的系统中,ActiveMQ作为事件总线,订阅和发布事件,使得系统更灵活和响应迅速。 总之,...

    消息队列activemq.zip

    3. 负载均衡与高可用:通过集群部署,ActiveMQ可以实现负载均衡和故障转移,确保服务的高可用性。 4. 安全性:支持用户认证和授权,可以设置访问控制策略,保障消息传输的安全。 5. 监控与管理:提供Web管理控制台,...

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

    ActiveMQ 集群环境是指多个 ActiveMQ 节点组成的集群,可以提供高可用性和负载均衡。可以使用 Apache ActiveMQ 的集群模式,例如使用 Master-Slave 模式或 Replicated LevelDB 模式。 总结 搭建 ActiveMQ 持久化和...

    apache-activemq-5.16.5

    4. **负载均衡**:在多台服务器组成的集群中,ActiveMQ能实现消息负载均衡,提高系统的处理能力。 5. **网络连接器**:网络连接器允许在不同的ActiveMQ实例之间创建透明的连接,实现消息路由和代理,提供更灵活的...

    ActiveMQ 5.7源码API

    通过集群配置,ActiveMQ可以实现负载均衡和故障转移,提升系统的可用性和性能。 10. **监控与管理** ActiveMQ提供Web Console和JMX接口,方便用户监控和管理消息队列的状态,进行日志查看、统计分析和配置调整。 ...

    activeMQ-activeMQ

    6. **负载均衡与消息分发**:通过网络复制,ActiveMQ能实现消息在多个broker之间的自动分发,从而实现负载均衡,提升系统的处理能力。 7. **安全控制**:ActiveMQ提供基于角色的访问控制(RBAC)和SSL/TLS加密,...

    Zookeeper+ActiveMQ测试.rar

    在IT行业中,构建高可用和负载均衡的系统是至关重要的,尤其在消息中间件领域,如ActiveMQ。本示例中的“Zookeeper+ActiveMQ测试.rar”文件包含了一个使用ZooKeeper实现ActiveMQ高可用性和负载均衡集群的实践案例。...

    ActiveMQ客户端

    7. **网络拓扑**:ActiveMQ可以通过网络连接形成集群,实现高可用性和负载均衡。在集群中,消息可以在各个节点间自动路由,提高系统的健壮性。 8. **管理工具**:ActiveMQ提供了一个Web控制台(webconsole),可以...

Global site tag (gtag.js) - Google Analytics