尝试了解Azure Service Bus会话

时间:2017-11-23 09:52:51

标签: c# session fifo sessionid azure-servicebus-queues

所以我试图了解Azure服务总线会话ID,以便在我的队列中创建FIFO。

我的想法非常简单但我不知道在FIFO方面它是否正确。

我正在考虑在队列中创建FIFO的这些步骤:

创建:

首先:检查队列中的消息及其会话ID,并公开ID层次结构。

下一步:使用层次结构中的最新会话ID创建新邮件,并将该值迭代1(+1)

下一步:发送到服务总线队列。

阅读:

首先:检查队列中是否有消息及其会话ID,并公开ID层次结构。

下一步:读取并删除层次结构中最早的会话ID。

下一步:处理...

请记住,我还没有包含错误处理,例如读取和删除部分,因为我已经想到了。

所以问题是这是正确的思维方式,而且,我如何在C#中实现这一点我真的找不到能够直接解释这个概念的东西。

1 个答案:

答案 0 :(得分:1)

详细说明:

让我们说您总共有9条队列消息,这些消息分为三个会话,会话ID 1、2和3。然后每组3消息将按顺序进行处理(先进先出)。

但是,如果会话监听器多于一个,则在会话之间或每组消息之间仍可能发生并行性。

存储所有9条消息的队列的每个侦听器/处理器都会锁定共享相同会话ID的所有消息,然后一次处理每条消息,直到会话完成(通常没有更多消息可用)除非您关闭“自动完成”功能并决定在需要时决定手动关闭该会话,否则该会话ID会位于该队列中。)

希望这是有道理的。