`

分布式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分布式集群视频教程

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

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

    ActiveMq实战性视频-分布式

    从activemq入门到 实战-activemq集群与应用,分布式。货真价实

    ActiveMQ部署方案分析对比

    单点的ActiveMQ作为企业应用无法满足高可用和集群的需求,所以ActiveMQ提供 了master-slave、broker cluster等多种部署方式,但通过分析多种部署方式之后我认为需要将两种部署方式相结合才能满足我们公司分布式和高...

    Fourinone分布式计算框架

    FourInOne整体代码仅仅为70k,跟Hadoop, Zookeeper, Memcache, ActiveMq等开源产品代码上没有任何相似性,不需要任何依赖,引用一个jar包就可以嵌入式使用,良好支持window环境,可以在一台机器上模拟分布式环境,更...

    Fourinone分布式并行计算四合一框架

     Fourinone整体代码短小精悍,跟Hadoop, Zookeeper, Memcache, ActiveMq等开源产品代码上没有任何相似性,不需要任何依赖,引用一个jar包就可以嵌入式使用,良好支持window环境,可以在一台机器上模拟分布式环境,...

    ActiveMq工作无忧面试题详解

    介绍:本课程共6节内容,是从“精讲”课程中抽取出来的面试题详解,内容包括基础、主从架构的搭建和访问、分布式集群搭建和访问等。如果您对整个课程感兴趣可以直接在本网站搜索“张立坤”讲师即可查看我的所有课程...

    java及javaweb编程教程、ssm、商城实战项目、how2j网站的全站教程、包含从前端到后端全栈技术

    工具和中间件,包括maven、git、Intellij IDEA、Redis、WebSocket、shiro、quartz、ElasticSearch、docker、activemq、rabbitmq、SpringCloud分布式和集群、oracle、mysql等数据库教程、微信登录、java web技术栈...

    消息队列及数据中间件总结

    ZeroMQ ActiveMQ消息中转实现形式为队列形式,分布式、集群服务助手。 Redis MongoDB较成熟的非结构性数据库产品,key-value数据库,结构松散的文本型数据库。 Memcached高性能的分布式内存对象缓存系统,数据读写...

    大型分布式网站架构与实践

     如何使用分布式消息系统ActiveMQ来降低系统之间的耦合度,以及进行应用间的通信。  垂直化的搜索引擎在分布式系统中的使用,包括搜索引擎的基本原理、Lucene详细的使用介绍,以及基于Lucene的开源搜索引擎工具...

    Java思维导图xmind文件+导出图片

    ActiveMQ基于Spring完成分布式消息队列实战 Kafka Kafka基于Zookeeper搭建高可用集群实战 kafka消息处理过程剖析 Java客户端实现Kafka生产者与消费者实例 kafka的副本机制及选举原理剖析 基于kafka实现应用...

    Java基于Redis分布式消息队的报文过滤系统的设计与实现

    内容概要:通过带着读者基于 Redis 分布式消息队列的报文过滤系统的设计与实现过程做了详尽细致的描述。依据 ActiveMQ、Redis、Java、Mybatis 等计算机技术,结合业务分离的项目设计理念和主备部署服务的特点,本...

    基于Dubbo分布式网上售票系统-源代码压缩包.zip

    并且采用MySQL做数据库集群,用Redis做数据缓存,同时利用SVN做版本控制能,并利用Activemq处理消息以及采用LayUi和Jquery方式来实现界面,用这些技术来开发民航网上售票管理系统这个系统。 设计文档在这里:...

    activemq-artemis-helm:ActiveMQ Artemis群集的Helm图表(正在进行中)

    是一个开源项目,用于构建多协议,可嵌入,非常高性能的集群异步消息传递系统。 Apache ActiveMQ Artemis是面向消息的中间件(MoM)的示例。2.什么是ActiveMQ Artemis舵图图表是由描述相关的资源集的文件组成的程序...

    基于SSM+mysql的分布式电商项目源码+数据库+项目说明(课程设计).zip

    5.ActiveMQ:使用Activemq发送接收消息,通过消息队列实现商品同步。 6.FreeMarker:FreeMarker是一个用Java语言编写的模板引擎,它基于模板来生成文本输出。FreeMarker与Web容器无关,即在Web运行时,它并不知道...

    基于Dubbo分布式高校学籍管理系统设计与实现-源代码.zip

    技术架构选用Dubbo的分布式服务,采用SSM框架技术实现,采用MySQL做数据库集群,用Redis做数据缓存,利用SVN做版本控制,能利用Activemq处理消息,界面采用LayUi和Jquery实现方式。 2.要有详细的系统分析、设计、...

    淘淘商城14天文档

    项目简介:淘淘网上商城是一个...MyCat mysql分布式集群解决方案 LVS+Nginx(web服务器) Quartz(定时任务) ActiveMQ(消息队列) Alibaba Dubbo服务接口集群 Fastdfs 分布式文件系统(图片服务器) 项目特色:

    【JeeSpringCloud v3.2.4】后台权限管理系统+互联网云快速开发框架+微服务分布式代码生成.zip

    模块包括:定时任务调度、服务器监控、平台监控、平台设置、开发平台、单点登录、Redis分布式高速缓存、会员、营销、在线用户、日志、在线人数、访问次数、调用次数、直接集群、接口文档、生成模块、代码实例、安装...

Global site tag (gtag.js) - Google Analytics