消息分组如何影响并发使用者之间的消息分布?

时间:2020-10-28 09:53:05

标签: activemq-artemis

下面的图片描绘了我使用消息组和基于Spring的JMS使用者的基本用例。

请注意,这里的并发是指如下所示的配置集:

defaultJmsListenerContainerFactory.setConcurrency("3-10");

Msg-Grp with ANYCAST address

  • G1和G2侦听器是否会同时接收各个组的消息?
  • 无论如何,来自一个群组的消息是否会等待另一群组中的任何消息的发送?

1 个答案:

答案 0 :(得分:1)

通常来说,接收分组消息的多个使用者可以同时接收它们。但是,有一些警告...

核心JMS客户端实现实际上使用来自 local 数据结构的消息,该数据结构根据consumerWindowSize异步填充了消息,该the documentation默认为1 MiB(1024 * 1024字节)。如果消费者正在从一个较大的连续组接收消息,并且其“窗口”已满,则代理将无法向其发送更多消息,并且必须等待消费者确认消息才能发送更多消息。一旦发送了该分组消息块,则代理将能够将消息从其他组发送到其他使用者。

enter image description here中也对此进行了解释(尽管细节有所减少)。