【发布时间】:2021-06-09 01:56:07
【问题描述】:
我有一个单节点 ActiveMQ 实例,其中两个竞争消费者连接到一个主题。根据 JMS 2.0 规范共享主题订阅。共享订阅确实保证只有两个订阅者(使用相同的订阅名称)才能收到消息。但我注意到的是,它不能保证只有在第一条消息被确认时才会传递第二条消息。如果第一个消费者需要时间来确认消息,则即使在消费者将第一个消息的确认发送给代理之前,第二个消息也会传递给免费消费者。这是标准行为吗?有没有办法阻止代理在确认第一条消息之前传递第二条消息?
【问题讨论】:
-
您看到的是标准行为。将共享订阅添加到规范中的主要原因之一(如果不是唯一原因)是允许负载平衡。如果严格执行命令,那将首先破坏负载平衡的目的。并发处理总是会引入乱序处理的可能性。
标签: redhat activemq-artemis amq