你正在 Azure Service Bus 上设计一个订单处理工作流。同一 OrderID 的所有消息必须严格按照 FIFO 顺序处理,并且你需要跨消息维护每个订单的状态以跟踪工作流阶段。你应该怎么做?
选择一个答案
点击一个选项来检查您的答案。
正确答案: 在目标队列或订阅上启用 RequiresSession。, 将同一订单中所有消息的 SessionId 设置为 OrderID。, 使用 SessionReceiver 接收消息,并使用 GetState/SetState 持久化每个订单的工作流状态。.
为什么这是答案
要确保同一 OrderID 的所有消息严格按照 FIFO 顺序处理并维护状态,Azure Service Bus 会话是关键。在目标队列或订阅上启用 RequiresSession 是使用会话的前提。将同一订单中所有消息的 SessionId 设置为 OrderID,这样 Service Bus 就能将这些消息识别为属于同一个会话。然后,使用 SessionReceiver 接收消息,它能保证会话内消息的顺序处理。SessionReceiver 还提供了 GetState/SetState 方法,允许你在会话级别持久化和检索每个订单的工作流状态,从而跟踪工作流阶段。 将 MessageId 设置为 OrderID 不会强制 FIFO 顺序或提供状态管理。消息延迟主要用于安排消息在未来某个时间点可用,与会话的 FIFO 和状态管理目的不同。
通过考试 — 无需无休止地寻找答案
将本次考试的所有验证问题和解释集中在一处,节省数小时的准备时间。1,000+ 认证 · 20+ 语言 · 免费开始。
更快通过考试 → 无需银行卡