0

ASB 的 SessionId 可用于保证排序,例如,如果我们有 5 条消息更新订单,并且有 3 个消费者在运行,那么消费者不会同时处理该订单的多条消息(SessionId = OrderId)。

但假设我有 3 个主题:

  • 创建订单
  • 更新顺序
  • 删除订单

如果有 X 条消息分布在这 3 个主题中,并且都具有相同的 SessionId,那么每个主题的消费者会注意其他主题正在使用的 SessionId 吗?

例如,如果 CreateOrder 消费者正在使用 SessionId=5 的消息,UpdateOrder 消费者是否会等待此锁释放,然后再获取它自己的一条 SessionId=5 的消息?

4

1 回答 1

1

不同主题的会话相互独立,互不影响。也就是说,当你在topic1中接收到SessionId=1的消息时,你也可以在topic2中接收到SessionId=2的消息。更多细节请参考官方文档Azure Service Bus message sessions在此处输入图像描述

于 2020-12-18T06:10:17.347 回答