activemq amqp消息顺序保留

activemq amqp消息顺序保留,activemq,amqp,Activemq,Amqp,我对这句话的含糊不清感到困惑: 如果在一个队列上有多个使用者,使用者将竞争消息,ActiveMQ将在它们之间进行负载平衡,因此顺序将丢失 这是否意味着如果我有一个制作人(P1)发布一个主题(T1)和该主题的四个订阅者(S1、S2、S3、S4)。所有这些都使用AMQP 是否不能保证来自P1的消息顺序会被S1以相同的顺序看到 而其他订户不一定会看到P1实际发送的订单?) 注意,我在这里通过主题讨论jms发布/订阅:// [如果我添加了更多制作人,但每个制作人都有自己的主题队列,这会影响其他队列的顺

我对这句话的含糊不清感到困惑:

如果在一个队列上有多个使用者,使用者将竞争消息,ActiveMQ将在它们之间进行负载平衡,因此顺序将丢失

这是否意味着如果我有一个制作人(P1)发布一个主题(T1)和该主题的四个订阅者(S1、S2、S3、S4)。所有这些都使用AMQP

是否不能保证来自P1的消息顺序会被S1以相同的顺序看到

而其他订户不一定会看到P1实际发送的订单?)

注意,我在这里通过主题讨论jms发布/订阅://

[如果我添加了更多制作人,但每个制作人都有自己的主题队列,这会影响其他队列的顺序吗?]


我没有料到这一点,但网站上的声明给了我们一些关注。

文档实际上相当清楚:

ActiveMQ将保留单个生产者向主题上的所有使用者发送的消息的顺序。如果队列上只有一个使用者,则单个生产者发送的消息顺序也将保留

因为你问的是关于主题的问题,所以第一句话基本上为你确定下来,对于主题,当有一个制作人时,顺序是保持不变的。主题上的每个订阅者都会看到发送的每条消息,并按照发送的顺序看到它(禁止任何基于优先级的重新排序)。只有在讨论队列(而不是主题)时,排序才会变得更加复杂


对于一个队列,您不再进行发布/订阅,而是进行点对点的发布,在这种情况下,多个订阅者竞争队列中的消息,因此您不再有订单保证,因为每个消费者将接收一些消息,并且根据预取情况,他们将接收一些您无法预测的批

您正在使用哪个ActiveMQ代理?我假设您使用的是5.x,但我想确认一下。版本5.15是的