发送消息在消费者服务总线中出现异常时如何管理错误

How to manage errors when send message has exception in consumer service bus

我搜索了如何在服务总线 azure 的使用者中管理异常,如何提醒发送者,我搜索了像 Saga 这样的模式,但我不知道这是否是正确的目的。 当我阅读示例代码时,在主要情况下,如果消费者出现异常,则发送者不会发出警报。但是在生产环境中如何管理这个以避免手动解决。

我有一个请求在其他服务上付款的运输服务,当请求开始时,运输服务上有一个标志设置为 "PaymentRequested",但如果付款服务中有异常,标志永远是"PaymentRequested"。如何避免这种情况。

通常情况下,如果消费者成功处理了命令消息,则应该发送成功事件消息,否则应该发送失败事件消息。这就是发件人如何知道操作是否成功。

同时发送者应该定义一个超时来接收这些事件消息。如果消费者因异常而崩溃,发送者将不会在超时期限内收到通知。这可能意味着操作失败(或任何其他原因)并且发送方可以考虑再次重新发送命令(命令应该是幂等的以安全重试)或由于超时而报告失败。