我们应该关闭 Azure 服务总线订阅客户端上的会话吗

Should we close session on Azure service bus subscription client

我在会话中使用 Azure 服务总线 topic/subscriptions。 我正在为 sessionId 设置一个硬编码值,因为我想控制传入消息的处理。

因此,即使有多个符合条件的订阅者可以处理此消息,也只有一个订阅者会获得会话锁并进行处理。一旦完成处理,我就通过关闭会话来释放锁,这样新消息就可以被任何处理器接收。我唯一关心的是,在消息处理完成后关闭会话有什么缺点吗?如果我关闭会话,关闭会话的处理器是否能够稍后打开会话并处理消息?

TIA

会话通常用于消息组而不是单个消息。当您希望按顺序 (FIFO) 处理这些消息时,单个订阅者应处理该订阅,直到会话中的消息全部处理完毕。然后,你所做的,关闭一个会话,是好的,因为它最终会过期。更不用说您的订阅者可以开始处理另一个会话,而不是等待 "empty" 会话超时。

如果您每个会话只有一条消息,我建议您不要一开始就使用会话。