`

分布式ActiveMQ集群

 
阅读更多

回顾总结前一段时间学习的ActiveMQ分布式集群相关的知识,分享出来希望对看到的人有所帮助。

一、分布式ActiveMQ集群的部署配置细节:

官方资料:http://activemq.apache.org/clustering.html

基本上看这个就足够了,本文就不具体分析配置文件了。

1、Queue consumer clusters:

同一个queue,如果一个consumer失效,那么未被确认的消息都会被发送到这个queue的其它consumer上。

如果某个consumer处理消息比较快,那么它将处理更多的消息。

(Queue consumer clusters 不需要特殊的配置。)

2、Master-Slave高可用性:

主要目的是实现AMQ的高可用性和容错,如果某broker挂了,需要等待它重启才能继续处理消息。而如果消息被复制到slave上,在当master挂了时,可以直接切换到slave导致消息不会丢失。分为3种形式:

(1)pure master-slave。

该方式已经逐渐被淘汰:http://activemq.apache.org/pure-master-slave.html

(2)Shared File System Master Slave。

官方资料:http://activemq.apache.org/masterslave.html

利用共享文件系统:当多台机器上都部署了AMQ时,指定这些机器的一个共享的文件路径作为存储。

存储默认是基于AMQ的kahaDB(底层是文件系统)实现。

当一个AMQ实例获得了共享文件的锁,这个实例就成为了Master,其它实例即为Slave。如果这时Master挂了,其它AMQ实例会竞争共享文件的锁,获得锁的就成为Master,其它实例还是Slave。部署时Slave没有限制数,而且自动切换Master不需要人工干预。(官方资料有详细的过程图片介绍)

(3)JDBC Master Slave。

官方资料:http://activemq.apache.org/masterslave.html

其实与Shared File System一样,只是把共享文件系统换成数据库作为存储。方便实用,但要保证数据库的高可用性。

3、Broker Cluster中的静态与动态发现:

如何让一个broker知道网络上的其它多个broker呢?主要分为静态发现和动态发现两种类型:

(1)The Static Transport(静态发现,包括failover协议)。

官网资料:http://activemq.apache.org/static-transport-reference.html

所谓静态发现:就是将所有已知的broker uri连接时手工进行配置,对client端uri地址做相应修改。

关于failover:

当一个client连接到某个broker,而这个broker挂了,客户端就需要自动连接到网络上其它已知的broker上。

AMQ使用failover协议实现该功能,但需要在client连接时将所有broker以硬编码的形式进行配置。

AMQ的failover协议官方资料:http://activemq.apache.org/failover-transport-reference.html

(2)The Discovery Transport(动态发现)。

官网资料:http://activemq.apache.org/static-transport-reference.html

所谓动态发现,就是部署前不需要知道所有AMQ实例的uri地址,只要进行相关配置,启动后让AMQ自己检测。

需要修改AMQ配置文件,同时client端连接uri地址也要相应修改。

4、Network of Broker:

主要目的是实现负载均衡,提高消息处理能力。

一个client1连接broker1发送消息,另一个client2连接broker2消费消息,这时就需要将broker1上的消息路由到broker2上。而当broker2上的consumer挂了,也需要将消息转发到其它的有consumer的broker上,避免消息大量堆积无法处理,目前的解决方案是Network of Broker。

官方资料:http://activemq.apache.org/networks-of-brokers.html

 

本文主要对ActiveMQ分布式集群相关知识进行整理总结,具体配置过程见上文中的官方资料,很详细的。

 

网上一些不错的参考资料:

http://www.doc88.com/p-086413647667.html

http://wenku.baidu.com/view/d0cd7757ad02de80d4d8408a.html

http://bh-keven.iteye.com/blog/1617788

分享到:
评论
1 楼 sundensky 2014-03-20  
必须好评!很有用,非常感谢分享。

相关推荐

    activemq分布式集群视频教程

    activemq分布式集群视频教程,activemq分布式集群视频教程,activemq分布式集群视频教程,activemq分布式集群视频教程,activemq分布式集群视频教程

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

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

    RabbitMQ集群-ActiveMQ集群集合

    3. 负载均衡:在ActiveMQ集群中,消息可以根据策略均匀分配到各个节点,减轻单个节点的压力,提高整体性能。 4. 网络拓扑:理解ActiveMQ的网络拓扑,包括连接器(Connectors)和桥梁(Brokers),对于优化集群性能...

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

    在这个场景中,我们将深入探讨如何利用ZooKeeper和LevelDB来构建一个高可用的ActiveMQ集群。 ZooKeeper是Apache Hadoop项目的一个子项目,它是一个分布式的,开放源码的分布式应用程序协调服务,是集群的管理者,...

    activeMQ集群的使用与配置[收集].pdf

    ActiveMQ集群的使用与配置 ActiveMQ集群支持多种不同的方面,包括Queue consumer clusters、Broker clusters和Network of brokers等。 Queue Consumer Clusters ActiveMQ支持订阅同一个queue的consumers上的集群...

    activeMQ集群的使用与配置[归类].pdf

    ActiveMQ集群的配置和使用是软件开发中涉及消息中间件管理的重要部分,特别是在构建高可用性和可扩展性系统时。ActiveMQ作为一个强大的开源消息代理,提供了多种集群解决方案以确保服务的连续性和性能优化。 首先,...

    ActiveMQ集群

    ActiveMQ集群是为了解决大规模消息处理和提升系统高可用性而设计的一种部署模式。它允许通过连接多个独立的Broker实例,将它们作为一个整体对外提供服务,从而增强消息处理能力。这种模式使得集群中的各个Broker能够...

    ActiveMQ集群安装和部署

    在分布式系统中,为了提高系统的可用性和扩展性,通常会采用ActiveMQ集群来提供更强大的消息处理能力。本文将详细介绍ActiveMQ集群的安装和部署过程。 #### 二、环境准备 **1. 环境要求** - 两台安装好Windows ...

    使用Apache ActiveMQ开发企业级系统案例(核心原理、框架整合、中间件、(项目文档+数据库+完整源码)-适合毕设论文

    MQJMS以及ActiveMQ的关系理解 主动式MQ ActiveMQ的环境搭建 ...分布式ActiveMQ集群开发详解 ActiveMQ集群配置方法 在Spring下集成ActiveMQ ActiveMQ中间件实现实时消息传递第13讲-使用ActiveMQ与Sping框架整合案例

    ActiveMQ集群:网络连接模式(network connector)详解.docx

    ActiveMQ 集群网络连接模式(Network Connector)详解 ActiveMQ 集群网络连接模式(Network Connector)是 ActiveMQ 提供的一种集群功能,旨在提高消息服务的横向扩展性和高可用性。通过将多个不同的 broker 实例...

    ActiveMQ 集群——JDBC Master Slave + Broker Cluster

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

    activemq集群安装

    在ActiveMQ集群中,LevelDB被用于存储和复制消息,以确保数据的一致性。 集群部署的高可用性原理在于,每个Broker都在ZooKeeper集群上注册,ZooKeeper监控所有Broker的状态。Master Broker负责处理客户端请求,而...

    高可用之ActiveMQ集群:网络连接模式(network connector)详解.docx

    【ActiveMQ集群网络连接模式详解】 ActiveMQ 是一个开源的消息代理服务器,它支持多种消息协议,如AMQP、STOMP等。在面对大规模消息处理需求和追求系统高可用性时,ActiveMQ 提供了集群解决方案,其中网络连接模式...

    ActiveMQ集群及生产者和消费者Java代码.zip

    在这个“ActiveMQ集群及生产者和消费者Java代码”压缩包中,我们可以探讨以下几个关键知识点: 1. **ActiveMQ集群**:ActiveMQ的集群能力允许多个服务器形成一个逻辑单元,提供高可用性和负载均衡。当一个消息代理...

    activemq+zk集群配置

    现在我们来详细探讨如何配置ZooKeeper集群和ActiveMQ集群。 首先,我们要理解ZooKeeper集群的基本概念。ZooKeeper集群由多个节点(称为ZooKeeper服务器)组成,每个节点都存储和处理一部分数据。为了保证高可用性,...

    windows server下zookeeper+activemq集群部署

    总之,这个部署过程涵盖了JDK的安装、Zookeeper集群配置、ActiveMQ集群部署、数据共享、高可用性设置和负载均衡策略。通过这些步骤,可以创建一个稳定的、可扩展的、高可用的分布式消息队列系统,为应用程序提供可靠...

    activemq和zookeeper资源

    在`activemq集群.pdf`中,可能详细解释了如何配置多个ActiveMQ节点,设置网络连接器以使它们能相互发现并共享负载,以及如何配置持久化和集群策略以保证消息的正确传递。 这些资源涵盖了从单个服务的安装到集群部署...

Global site tag (gtag.js) - Google Analytics