ActiveMQ 自学(三) 集群部署

心已赠人 2022-07-24 08:27 288阅读 0赞

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”

发表评论

表情:
评论列表 (有 0 条评论,288人围观)

还没有评论,来说两句吧...

相关阅读

    相关 ActiveMQ

    ActiveMQ集群 1.1 何为集群? 集群就是将相同的程序、功能,部署在两台或多台服务器上,这些服务器对外提供的功能是完全一样的。通过不断横向扩展增加服务器的