设置ActiveMQ代理网络的正确方法



如本问题所述,我们有一个由不同服务器上的三个代理组成的代理网络。网络连接器配置如下:

<networkConnectors>
<networkConnector uri="static:(ssl://broker2:61616,ssl://broker3:61616)" networkTTL="5"/>
</networkConnectors>

我们也在考虑将以下参数添加到网络连接器中,因为我们认为这可能会改善行为(由于这篇博客文章的建议(:

dynamicOnly="true"
decreaseNetworkConsumerPriority="true"
suppressDuplicateQueueSubscriptions="true"

然而,这样做也很可怕,因为我们觉得我们还没有完全了解现在发生的事情,因此无法真正确定这些设置会对行为产生什么影响。官方文件对此并不明确(顺便说一句,这一点和其他许多方面都不清楚(。

更新:

我们想要实现的是,在消息第一次到达的地方,尽可能多地在broker上处理消息。客户端(如另一篇文章所示(通过Wifi连接,但可以回退到4G。在实践中,我们看到他们定期切换网络,从而连接到不同的代理。我们想限制网络连接器上的流量。

这些设置应该会让您获得想要的"首选本地"行为:

递减网络消费者优先级=";真";suppressDuplicateQueueSubscriptions=";真";

此外,添加messagTTL=4和consumerTTL=1。这允许消息跳过n+1次。(其中n是集群中的代理数量(。此外,consumerTL=1意味着代理只能从其直接对等方看到消费者,而不能通过多个跃点看到消费者。

在您的用例中,去掉networkTTL设置——messageTTl和consumerTL将取代它,使您能够更好地控制消息跳数和消费者意识。

最新更新