【发布时间】:2014-10-27 20:16:45
【问题描述】:
我正在通过使用利用 MSMQ 传输层的 NServiceBus 集成两个(将来可能超过两个)系统。 我需要支持几种业务对象类型的同步(特别是来自端点端的这些对象上的创建、更新、删除事件)。 我正在使用 Pub/Sub 消息传递模式。
NSB 消息传输有关创建、更新和删除业务对象的信息。服务总线应禁止更新或删除特定端点系统中不存在的对象。
让我们考虑以下情况。 Endpoint1中有消息按以下顺序发布:
[Message1]: "create business object A"
[Message2]: "update business object A"
[Message3]: "delete business object A"
问题 1:我们不知道 Endpoint2 将按什么顺序 (a) 接收入站队列和 (b) 处理上述消息,对吗?
问题 2:如果 Message1 在 Endpoint2 中没有得到正确处理,它将被放回队列中,然后将首先处理其他消息,对吗?
问题 3:在这种情况下,Message2 和 Message3 会因为尝试对不存在的对象进行操作而报错。那我应该如何处理 Message2 和 Message3 呢?我应该为此使用 sagas 吗?
问题 4:另一个问题:如果有多个“更新对象 A”消息 - 如何确保/强制将最后一个作为最后一个处理?
【问题讨论】:
标签: nservicebus