消息传送顺序

来自RabbitMQ - 消息订单

AMQP 0-9-1核心规范的第4.7节解释了保证排序的条件:在一个频道中发布的消息,通过一个交换机,一个队列和一个输出频道将按照它们发送的相同顺序接收。 自2.7.0版本以来,RabbitMQ提供了更强大的保证。

这与EasyNetQ一致吗? 我会预料到它会持续下去,但我有时(但并非总是)看到不同的行为。

如果消费者是同步的(不是我的情况;我已经锁定,但是在这种情况下总是假的“if”之后开始),我是否应该相信消息要按照它们发布的顺序进行消费? (相同类型的消息,相同的原点,去相同的目的地)还是有其他元素在这里播放EasyNetQ内部,我应该知道哪些不保留传递的消息顺序?


EasyNetQ为每个IBus实例实现一个消费者线程,因此如果使用标准的非异步订阅方法,消息处理程序将按照RabbitMQ传递消息的相同顺序同步触发。 不应该有任何需要执行锁定。 如果您使用异步订阅,处理程序仍然会按顺序调用,但当然它们可能会按顺序发出ACK,具体取决于您如何实现异步处理程序。

链接地址: http://www.djcxy.com/p/5841.html

上一篇: Message order of delivery

下一篇: What's the point of AMQP?