0

我对 MSMQ 4.0 很陌生。我陷入了以下情况;服务 A 获取用户详细信息并返回用户 ID。然后服务 B 使用用户 ID 获取账单详细信息。现在我必须对这些步骤进行排队。我打算使用事务队列。有人可以帮我1)从第一条消息中获取ID并将其包含在第二条消息中。2)如果至少一个步骤失败,我必须回滚(事务队列为我执行)重试或 5 次,如果仍然失败,则将其移动到 VerifyAdminQueue 以供管理员验证。我不喜欢使用死信队列等,

提前致谢。

4

1 回答 1

1

使用 MSMQ 队列构建的服务是真正的单向服务。这意味着没有内置的响应概念。有很多方法可以使用 MSMQ 实现请求-响应通信模式,但所有这些方法都需要您自己构建响应并将响应发送回调用者。

使用单向操作,回滚非常简单,实际上 MSMQ 会回滚消息传输中的任何失败步骤。然而,更复杂的操作(例如请求-响应)在 MSMQ 中缺乏任何事务的概念,因此跨多个消息传输步骤的任何回滚都需要您编写补偿代码。

于 2012-05-21T17:53:08.180 回答