【发布时间】:2011-11-22 14:59:41
【问题描述】:
在我们的场景中,我正在考虑使用 pub sub 技术。但是我不知道哪个是更好的选择。
1 ########
我们的网络服务在外部调用时会发布一条消息,表示发生了什么事,ExternalPersonCreatedMessage!
此消息将包含一个字段,该字段表示将消息处理到的目标(允许多个)。
各种订阅者都会订阅。这些订阅者将通过检查目标字段来过滤消息以查看是否需要任何操作。
2 ########
我们的 Web 服务将解析传入呼叫并根据字段中提供的目的地发布特定类型的消息。即将创建许多 Destination[n]PersonCreatedMessage 消息。
订阅者将只订阅他们关心的特定消息。即不必过滤任何消息
问题
以上哪个是更好的选择,为什么?以及如何阻止自己制作 RequestMessages。从我读过/看到的内容来看,我应该尝试以 PersonCreated、PersonDeleted 的方式来构建它,即在 CreatePerson 或 DeletePerson 等请求中发生了某些事情并且 没有 >
我的想法正确吗?我一直在寻找有关如何构建消息的指导,并确保我不会走错路,但没有找到关于该做什么和不该做什么的指导。任何人都可以帮助和指导吗?我想试着从一开始就纠正这个:)
【问题讨论】:
-
您能否详细介绍一下业务规则是什么?您可能不需要发布。根据我的经验,内容过滤不是一个好方法。
-
亚当。我觉得我在兜圈子,但following 有助于解释业务场景。作者非常友善(非常感谢)帮助我掌握了 NServiceBus。这个问题与上述博客上的评论混合在一起,是我仍然需要快速回答的巨大漏洞。我不知道这些问题/问题是否以任何方式表明 NServiceBus 是错误的工具。任何帮助表示赞赏。
-
您可以使用 PServiceBus(pservicebus.codeplex.com),它允许您发布通知并让订阅者使用过滤器进行订阅,指定他们仅在包含特定字段时才希望接收消息,例如目的地。过滤将在 ESB 服务器级别而不是在订阅者级别完成,因此订阅者不需要检查消息是否符合他们的标准。使用这种方法可以让您不必担心发布两条或更多条不同的消息
标签: nservicebus