【发布时间】:2020-10-05 17:33:39
【问题描述】:
我们的代理网络由不同服务器上的三个代理组成。 网络连接器配置如下:
<networkConnectors>
<networkConnector uri="static:(ssl://broker2:61616,ssl://broker3:61616)" networkTTL="5"/>
</networkConnectors>
整体设置如下图所示。
在实践中,我们有时会看到特定客户端的消息消费出现较大延迟。在这种情况下,消息在最终被消费之前被多次转发给其他代理。到目前为止,我们一直无法找出可能是什么原因造成的。
消费者不是很忙。它们是使用 Spring JMS 库实现的。每个代理的最低消费者数量为 3 个,但这可以根据需要自动扩展。
我们怀疑只有特定客户端受到影响的原因可能与我们使用 JMSGroupId 对消息处理方式进行排序这一事实有关。但是,我们没有确切的证据证明这一点。它仍然无法解释为什么会发生。
我们还考虑将以下参数添加到网络连接器,因为我们认为这可能会改善行为:
dynamicOnly="true"
decreaseNetworkConsumerPriority="true"
suppressDuplicateQueueSubscriptions="true"
但是,这样做也很可怕,因为我们觉得我们不完全了解现在正在发生的事情,因此无法真正确定这些设置会对行为产生什么影响。
【问题讨论】:
标签: java activemq spring-jms