首页 > 解决方案 > ActiveMQ Artemis 消息分组领导选举

问题描述

我们正在使用 ActiveMQ Artemis 节点集群,并且我们希望使用消息分组功能。从文档中,我们了解到我们需要确定 1 个节点作为此功能的主节点。有没有办法让集群本身自动动态地完成这个选举?

如果没有,假设我们自己做,有没有办法动态更改节点的消息分组设置而无需重新启动它?

我们正在使用 EmbeddedActiveMQ。

问候尼古拉斯

标签: groupingmessageactivemq-artemis

解决方案


无法动态“选择”将做出消息分组决策的节点。它必须静态配置。此外,如果不重新启动代理,就无法更改配置。

也就是说,我鼓励您查看ActiveMQ Artemis 文档中的此说明:

一般来说,结合集群和消息分组是一个糟糕的选择,因为分组(即有序)消息和通过集群进行水平扩展的基本思想本质上是相互矛盾的。

消息分组强制执行有序的消息消费。有序消息消费要求在消费组中的下一条消息之前,每条消息都被完全消费并确认。这导致串行消息处理(即没有并发)。

但是,集群的想法是水平扩展代理,以便通过添加可以同时处理消息的消费者来增加消息吞吐量。但是由于消息组是有序的,因此每个组中的消息不能同时被消费,这违背了水平扩展的目的。


推荐阅读