AMQP 0-9-1 核心规范的第 4.7 节解释了保证排序的条件:在一个通道中发布的消息,通过一个交换和一个队列以及一个传出通道将按照它们发送的顺序被接收。自 2.7.0 版以来,RabbitMQ 提供了更强的保证。
这适用于 EasyNetQ 吗?我原以为它会保持不变,但我有时(但并非总是)会看到不同的行为。
如果消费者是同步的(还不是我的情况;我有锁定但它在“如果”之后开始,在这种情况下总是错误的),我应该相信消息按照发布的顺序被消费吗?(相同类型的消息,相同的来源,到达相同的目的地)或者 EasyNetQ 内部是否还有其他元素在起作用,我应该知道哪些不保留消息传递顺序?