首页 > 其他分享 >分布式ActiveMQ集群

分布式ActiveMQ集群

时间:2023-09-14 15:03:07浏览次数:47  
标签:http activemq broker apache 集群 AMQ org 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

标签:http,activemq,broker,apache,集群,AMQ,org,ActiveMQ,分布式
From: https://blog.51cto.com/u_6978506/7470428

相关文章

  • 公司某产品MySql分布式架构总结
    这个是目前公司某产品Server端MySql分布式架构总结(内容总结自wiki),该产品同时使用了Mysql和MongoDB。本篇Blog只做Mysql分布式架构的介绍。----------------------------------------------------一、共4台Linux服务器A\B\C\DAmasterwithslaveBC......
  • JMS规范与ActiveMQ简记
    前一段时间公司的产品中使用了ActiveMQ作为消息通知的工具,也简要记录了一些概念,整理后与大家分享一下(部分内容摘自网络,详见参考资料一栏)。 一、ActiveMQ是一个JMS规范的一个实现。在JMS中间主要定义了2种消息模式Point-to-Point(点对点)和Publich/SubscribeModel(发......
  • 基于Docker的Redis集群配置(1)
    拉取redis镜像dockerpullredis:6.0.8启动6个docker容器,名称与端口不可重复#--cluster-enabledyes#开启redis集群#--nethost#使用宿主机的IP和端口#--appendonlyyes#开启持久化#--nameredis-1 #自定义容器名字dockerrun-d--nameredis-1--networkhost......
  • 深入研究消息队列05 各消息队列集群架构对比
    23RabbitMQ的集群架构集群构建数据可靠性身份认证资源鉴权可观测性......
  • 【ActiveMQ】Failed to start Apache ActiveMQ (localhost, ID_XXX)
    问题描述使用"bin\win64\activemq.bat"启动apache-activemq-5.18.2出错。jvm1|ERROR|FailedtostartApacheActiveMQ(localhost,ID:)jvm1|java.io.IOException:TransportConnectorcouldnotberegisteredinJMX:java.io.IOException:Failedtobin......
  • dubbo分布式项目开发____配置经验和心得
    //1.zookeeper配置文件中不要出现中文会报错 //2.分布式开发对象一定要序列化//摘抄如下在面向对象程序语言中做分布式计算的时候,经常需要将对象在不同的主机之间传输,我这次在实现分布式计算的时候,需要将一个计算对象从中央服务器Server分发给所有的客户端client。通过......
  • dubbo分布式项目开发____dubbo控制台管理
    //1.将dubbo-admin放到tomcat下自行解压修改dubbo.properties文件结构如下为了避免冲突如用到多个tomcat时修改端口号即可8080  其他8081...2..3..4等//从命名下war包的名称不带版本号放到tomcat下解压出来的就不带版本号了//启动tomcat访问这个项目我个人用的是8081单独......
  • dubbo分布式项目开发____dubbo服务调用开发
    //创建工程名 cnse-customer-user导入jar包 //工程结构//spring文件配置<?xmlversion="1.0"encoding="UTF-8"?><beansxmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ......
  • dubbo分布式项目开发____dubbo服务接口开发
    //1.创建服务提供者工程名 cnse-provider-user //2.导入jar包和创建工程包名//配置spring的xml文件<?xmlversion="1.0"encoding="UTF-8"?><beansxmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-i......
  • dubbo分布式项目开发____Zookeeper搭建步骤和配置思路
    //搭建zookeeper 1.可以放到在linux下可以在windows下解压到指定的目录如个人:F:\zookeeper2.复制下conf下复制下zoo_simple.cfg文件把复制的修改成zoo.cfg内容如下一定以不要出现中文会报错的3.修改完成后进入windowsdos命令回车一下内容说明注册中心配置正常//资源地址......