ActiveMQ 自学(三) 集群部署
ActiveMQ 自学(三) 集群部署
转载—-茂盛博客
gossip
maosheng
这里我介绍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-B节点添加networkConnector节点:
分别启动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”
还没有评论,来说两句吧...