【发布时间】:2017-04-07 18:52:02
【问题描述】:
场景: 我们将消息(相同类型)从多个发件人发送到一个队列。每个发件人将发送一组消息,这些消息通过给定组的唯一会话 ID 绑定在一起。组数没有限制。在消费端,我们有多个接收者。
问题: 如果接收者没有在组中的最后一条消息上调用 await session.CloseAsync(),那么在我们的 azure 服务总线实例中是否会对性能产生影响?
【问题讨论】:
标签: azure azureservicebus
场景: 我们将消息(相同类型)从多个发件人发送到一个队列。每个发件人将发送一组消息,这些消息通过给定组的唯一会话 ID 绑定在一起。组数没有限制。在消费端,我们有多个接收者。
问题: 如果接收者没有在组中的最后一条消息上调用 await session.CloseAsync(),那么在我们的 azure 服务总线实例中是否会对性能产生影响?
【问题讨论】:
标签: azure azureservicebus
对于消息会话,关闭会话表示任何其他接收者都可以接听会话并继续处理(消息会话只能由单个接收者处理以确保 FIFO 语义)。您应该努力在不再需要或结束时关闭会话。这样,您的客户端就可以开始处理正在等待处理的另一个会话的消息。
有一个很好的sample with explanation Clemens 的会话如何工作,您也可以看看。
【讨论】: