文档章节

消息中间件-Activemq之Broker-Cluster

ksfzhaohui
 ksfzhaohui
发布于 2016/01/03 20:12
字数 487
阅读 411
收藏 6

接着上一篇消息中间件-Activemq之Master-Slaver,下面看看Broker-Cluster实现负载均衡
Broker-Cluster实现负载均衡

Broker-Cluster部署方式中,各个broker通过网络互相连接,并共享queue,提供了2中部署方式:
static Broker-ClusterDynamic Broker-Cluster

1).static Broker-Cluster

将ActiveMq拷贝2份,分别命名:apache-activemq-5.10.0_M1,apache-activemq-5.10.0_M2,
下面就是配置activemq,xml:
M1做如下配置:

<networkConnectors>
	<networkConnector uri="static:(tcp://localhost:61617)"/>
</networkConnectors>
<transportConnectors>
        <transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnectio        ns=1000&amp;wireFormat.maxFrameSize=104857600"/>
 </transportConnectors>
M2做如下配置:
<networkConnectors>
	<networkConnector uri="static:(tcp://localhost:61616)"/>
</networkConnectors>
<transportConnectors>
        <transportConnector name="openwire" uri="tcp://0.0.0.0:61617?maximumConnectio        ns=1000&amp;wireFormat.maxFrameSize=104857600"/>
 </transportConnectors>
通过以上配置使M1和M2这两个 broker通过网络互相连接,并共享queue,
启动M1和M2,可以看到如下启动日志:



可以看到M1和M2,network connection has been established

测试我们还是用上一篇中的Sender和Receiver类,只需要做一点点修改:
Sender类还是链接tcp://localhost:61616,发送消息到queue,
Receiver做如下修改:

connectionFactory = new ActiveMQConnectionFactory(
	ActiveMQConnection.DEFAULT_USER,
	ActiveMQConnection.DEFAULT_PASSWORD, "tcp://localhost:61617");

经测试Receiver可以接受到数据,表示M1和M2已经共享了queue

2).Dynamic Broker-Cluster

Dynamic Discovery集群方式在配置ActiveMQ实例时,不需要知道所有其它实例的URI地址
对activemq.xml做如下配置:
M1做如下配置:

<networkConnectors>
	<networkConnector uri="multicast://default"/>
</networkConnectors>
<transportConnectors>
        <transportConnector name="openwire" uri="tcp://0.0.0.0:61616? maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"
          discoveryUri="multicast://default"/>
 </transportConnectors>
M2做如下配置:
<networkConnectors>
	<networkConnector uri="multicast://default"/>
</networkConnectors>
<transportConnectors>
        <transportConnector name="openwire" uri="tcp://0.0.0.0:61617? maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"
          discoveryUri="multicast://default"/>
 </transportConnectors>
启动M1和M2,可以看到如下启动日志: network connection has been established

测试同static broker-cluster,可以得到相同的结果。
官网配置说明:http://activemq.apache.org/networks-of-brokers.html

Master-Slaver保证了数据的可靠性,Broker-Cluster提供了负载均衡,所以一般正式环境中都会采用:
Master-Slaver+Broker-Cluster的模式

© 著作权归作者所有

共有 人打赏支持
ksfzhaohui

ksfzhaohui

粉丝 342
博文 137
码字总数 183085
作品 3
南京
高级程序员
私信 提问
ActiveMQ建立broker cluster实现负载均衡

最近在测试activeMQ这个开源中间件,在建立broker-cluster实现负载均衡时出现一个问题,请教一下: 配置是按照给的例子 activemq-static-network-broker2.xml进行的,我用一个发送者,开两个...

世道
2013/04/24
2.9K
1
Java消息中间件入门笔记 - ActiveMQ篇

入门 消息中间件带来的好处: 栗子: 通过服务调用让其它系统感知事件发生 通过消息中间件解耦服务调用 1.Linux安装消息中间件ActiveMQ 1.下载安装包 解压 2.启动与关闭 3.安装验证 4.Maven依...

巅峰小学生
04/30
0
0
activeMQ5官方文档翻译-运行消息中间件

把activeMQ中间件运行起来 注:如果你想以内嵌的方式来使用消息中间件的话你可以参照怎么在一个连接中间嵌入消息中间件 以二进制文件的方式分发的ActiveMQ自带了一个'activemq'的脚本文件来运...

z_jordon
2015/05/31
0
0
ActiveMQ官方文档翻译-内嵌消息中间件

在大多数通信拓扑结构图中都有分JMS Brokers (服务端) 和JMS客户端。但有时会把消息中间件部署到你的jvm内部也是有道理的。This allows you to optimise away a network hop;让JMS的网络调用...

z_jordon
2015/06/01
0
0
实战分享:activemq 在灾备双活建设中的研究

activemq 是业界非常流行的、功能强大的、开源消息中间件。以快速、支持多种跨语言客户端和协议著称;完全支持 JMS 1.1 and J2EE 1.4。在各个行业中有大量的应用案例。 由于 activemq 承担着...

技术小能手
08/23
0
0

没有更多内容

加载失败,请刷新页面

加载更多

slot分发内容

slot元素作为组件模板之中的内容分发插槽。这个元素自身将被替换。 有 name 特性的 slot 称为具名 slot。 有 slot 特性的内容将分发到名字相匹配的具名 slot。 内容分发就是指混合父组件的内...

Carbenson
10分钟前
1
0
python开发入门

1.执行python文件 # python ./demo.py 2.Python ImportError: No module named 'requests'异常 解决方法: # pip install requests;...

硅谷课堂
11分钟前
1
0
官宣,PyTorch 1.0 稳定版本现已推出

简评:快来一起快乐地学习吧。 随着 PyTorch 生态系统和社区继续为开发人员提供有趣的新项目和教育资源,今天(12 月 7日)在 NeurIPS 会议上发布了 PyTorch 1.0 稳定版。研究人员和工程师现...

极光推送
24分钟前
1
0
对比理解adr,ldr指令

很多人在写简单的裸机代码或分析uboot时,常常遇到adr ldr指令。却分不清这2者的区别,今天就来谈谈adr与ldr指令。 参照韦老师的代码和Makefile写了test_adr.S: .text .globl _start _start...

天王盖地虎626
35分钟前
2
0
将spring boot 项目注册为Linux的服务

springboot 注册为Linux系统服务 springboot 注册为Linux系统服务

miaojiangmin
36分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部