ActiveMQ 自学(三) 集群部署

ActiveMQ 自学(三) 集群部署




这里我介绍Broker-cluster集群部署-------实现负载均衡

Broker-Cluster部署方式中,各个broker通过网络互相连接,并共享queue
broker-A上面指定的queue-A中接收到一个message处于pending状态,而此时没有consumer连接broker-A
(没有消费者了,目前queue-A只能等待);但如果cluster中的broker-B上面有一个consumer
在消费queue-A的消息(并且处于闲置状态) 那么 broker-B 会先通过内部网络获取到 broker-A 上面的 message
并通知自己的consumer来消费。这样就实现了负载均衡。

此处基本配置-----修改activemq中的activemq.xml文件中静态指定broker需要建立桥连接的其他broker;
首先在Broker-A节点中添加networkConnector节点
  <broker xmlns="http://activemq.apache.org/schema/core" brokerName="localhost" dataDirectory="${activemq.data}">
<networkConnectors> 
                <networkConnector uri="static:(tcp:// 0.0.0.0:61617)" duplex="false"/>
</networkConnectors>
修改Broker-B节点添加networkConnector节点
 <broker xmlns="http://activemq.apache.org/schema/core" brokerName="localhost" dataDirectory="${activemq.data}">
<networkConnectors> 
                <networkConnector uri="static:(tcp:// 0.0.0.0:61616)" duplex="false"/>
</networkConnectors>

分别启动mqA、B

同理,如果您的ActiveMQ集群规划中有三个ActiveMQ服务节点,那么任何一个节点都应该配置其它两个服务节点的连接方式

其他配置属性

下表列举了在networkConnector标签中还可以使用的属性以及其意义。请特别注意其中的duplex属性。如果只从字面意义理解该属性,

则被称为“双工模式”;如果该属性为true,当这个节点使用Network Bridge连接到其它目标节点后,

将强制目标也建立Network Bridge进行反向连接。其目的在于让消息既能发送到目标节点,又可以通过目标节点接受消息,

但实际上大多数情况下是没有必要的,因为目标节点一般都会自行建立连接到本节点。所以,该duplex属性的默认值为false。

属性名称 默认值 属性意义
name bridge 名称
dynamicOnly false 如果为true, 持久订阅被激活时才创建对应的网路持久订阅。
decreaseNetworkConsumerPriority false 如果为true,网络的消费者优先级降低为-5。如果为false,则默认跟本地消费者一样为0.
excludedDestinations empty 不通过网络转发的destination
dynamicallyIncludedDestinations empty 通过网络转发的destinations,注意空列表代表所有的都转发。
staticallyIncludedDestinations empty 匹配的都将通过网络转发-即使没有对应的消费者,如果为默认的“empty”,
那么说明所有都要被转发
duplex false 已经进行详细介绍的“双工”属性。
prefetchSize 1000 设置网络消费者的prefetch size参数。如果设置成0,那么就像之前文章介绍过的那样:
消费者会自己轮询消息。显然这是不被允许的。
suppressDuplicateQueueSubscriptions false 如果为true, 重复的订阅关系一产生即被阻止(V5.3+ 的版本中可以使用)。
bridgeTempDestinations true 是否广播advisory messages来创建临时destination。
alwaysSyncSend false 如果为true,非持久化消息也将使用request/reply方式代替oneway方式发送到
远程broker(V5.6+ 的版本中可以使用)。
staticBridge false 如果为true,只有staticallyIncludedDestinations中配置的destination
可以被处理(V5.6+ 的版本中可以使用)。

以下这些属性,只能在静态Network Connectors模式下使用

属性名称 默认值 属性意义
initialReconnectDelay 1000 重连之前等待的时间(ms) (如果useExponentialBackOff为false)
useExponentialBackOff true 如果该属性为true,那么在每次重连失败到下次重连之前,都会增大等待时间
maxReconnectDelay 30000 重连之前等待的最大时间(ms)
backOffMultiplier 2 增大等待时间的系数

请注意这些属性,并不是networkConnector标签的属性,而是在uri属性中进行设置的,例如:

uri= "static:(tcp://host1:61616,tcp://host2:61616)?maxReconnectDelay=5000&useExponentialBackOff=false"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值