[狗尾续貂第四篇]ActiveMQ集群

原创 2016年08月28日 16:18:37

前言

这一篇是看过lifetragedy的两篇系列的Apache ActiveMQ实战(2)-集群之后,所写。
主要是写过程中,遇到的问题,和简要的总结。

关于ActiveMQ集群

当我们的系统庞大之后,需要很多不同的服务协同工作之后,系统和系统之间的关联如果仅仅是直接调用,或者是采用dubbo类似的系统协调,也不足够。比如说,一个下单动作需要关系到用户积分,账单/支付记录,可能还需要同步给第三方系统(比如阿里百川),发送通知,可能还需要失败重发机制。如果完全嵌入到一个服务端的一个方法里几乎是不可能的。那么,系统和系统之间就需要交互,消息队列是一种不错的减少关联请求的处理时间和解耦系统的良药。另外在日志服务器和消息服务器,一般也会采用消息队列。
关于ActiveMQ这两个博客,写的比较全面,从单机到集群(HA+均衡)
袁明凯的系列:http://blog.csdn.net/lifetragedy/article/details/51869032
菩提树下的杨过的系列:http://www.cnblogs.com/yjmyzz/category/195427.html

关于duplex的问题

文中说到了duplex的作用,在最后引出完美方案之前给出了一个集群架构方案,也就是“MASTER SLAVE+BROKER CLUSTER”同时设置duplex为true的方案。
博主给出的解释是,duplex=true之后,才能让消息在不同的broker之间传递。
其实这种理解是错的,broker中的自配置networkConnectors的目的就是要做到在不同的broker之间传递消息,duplex=false时是建立一方向另一方的单向消息,duplex=true时,是建立双向的消息。
比如broker1的tcp连接地址是192.168.0.1:61616,broker2的tcp连接地址是192.168.0.1:61617,如果使用duplex=false建立双向链接,需要在broker1和broker2的两个配置文件中都添加指向对方的networkConnector。如果使用duplex=true,那么只需要在任意一个broker的配置文件中添加即可。

关于使用zookeeper做Master-Slave的问题

在按照原博主的文章进行部署的过程中,遇到了一个问题,就是启动master和slave之后,出现几次“Not enough cluster members connected to elect a new master”的INFO提示,而且jetty服务器连不上,activemq也连接不上。

看配置文件,没有发现任何异常,最终在google上找到了问题的原因,是因为我在部署的时候,slave和master使用了不同的broker名称。这种方式要求master和slave必须有相同的broker名。

具体的见http://activemq.2283324.n4.nabble.com/ReplicatedLevelDb-Not-enough-cluster-members-connected-to-elect-a-new-master-td4669281.html

版权声明:本文为博主原创文章,未经博主允许不得转载。

ActiveMQ的集群与高可用

单纯从《ActiveMQ In Action(Manning-2011)》一书介绍的总结。
  • zuolj
  • zuolj
  • 2016年11月11日 08:40
  • 7849

activemq-集群和主从模式 学习笔记

activemq主从模式与集群 三种masterslave模式 三种主从模式 networkConnector模式 activemq持久化 comsumer特性 des...
  • chanrenyuan
  • chanrenyuan
  • 2017年04月19日 19:38
  • 1576

Zookeeper + ActiveMQ 集群整合

一、使用ZooKeeper实现的Master-Slave实现方式,是对ActiveMQ进行高可用的一种有效的解决方案,高可用的原理:使用ZooKeeper(集群)注册所有的ActiveMQ Broke...
  • u010634288
  • u010634288
  • 2017年01月29日 22:33
  • 1354

ActiveMQ集群

ActiveMQ集群的方式,按主从方式分有四种,Pure Master Slave、Shared File System Master Slave、JDBC Master Slave、Replicat...
  • brushli
  • brushli
  • 2014年12月06日 22:58
  • 1561

ActiveMQ的几种集群配置

ActiveMQ是一款功能强大的消息服务器,它支持许多种开发语言,例如Java, C, C++, C#等等。企业级消息服务器无论对服务器稳定性还是速度,要求都很高,而ActiveMQ的分布式集群则能很...
  • u010739551
  • u010739551
  • 2016年02月16日 11:39
  • 1876

架构设计:系统间通信(26)——ActiveMQ集群方案(下)

通过之前的文章,我们讨论了ActiveMQ的基本使用,包括单个ActiveMQ服务节点的性能特征,关键调整参数;我们还介绍了单个ActiveMQ节点上三种不同的持久化存储方案,并讨论了这三种不同的持久...
  • yinwenjie
  • yinwenjie
  • 2016年04月23日 17:33
  • 15527

架构设计:系统间通信——ActiveMQ集群方案(上)

1、综述 通过之前的文章,我们讨论了ActiveMQ的基本使用,包括单个ActiveMQ服务节点的性能特征,关键调整参数;我们还介绍了单个ActiveMQ节点上三种不同的持久化存储方案,并讨论了...
  • u013214151
  • u013214151
  • 2016年04月19日 20:38
  • 752

ActiveMQ集群

  • 2015年06月01日 11:49
  • 156KB
  • 下载

JMS学习九(ActiveMQ集群)

上一篇文章中我们说到了失效转移(failover),网络连接器(networkconnection),下面我们就来实践一下即搭建Broker集群,Broker集群的搭建就使用到了failover和ne...
  • QH_JAVA
  • QH_JAVA
  • 2017年03月12日 12:22
  • 546

activeMQ主要的几类集群部署方式

官方主从实现的文档:http://activemq.apache.org/masterslave.html   一、activeMQ主要的几类部署方式比较 1、默认的单机部署(kahadb) ...
  • Truong
  • Truong
  • 2017年06月26日 12:35
  • 338
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[狗尾续貂第四篇]ActiveMQ集群
举报原因:
原因补充:

(最多只允许输入30个字)