Windows服务总线点对点通信减少广播

时间:2013-03-17 06:10:36

标签: servicebus

我使用Windows Service Bus 1.0在不同进程之间进行通信,每个上下文事件流都作为主题存在于总线上。

使用服务总线链接有界上下文之间的事件我需要一种方法来同步事件(或者换句话说,请求重放过去的事件)当有界上下文重新联机但想要限制潜在的消息流回来仅转到请求它的端点,至少如果这可以通过使用现有的Service Bus功能轻松完成。

因此,假设一个假想的ContextC发送消息来请求来自ContextA和ContextB的所有先前事件,那么这些重放消息是否有任何方式只能发送给ContextC?

将上下文映射为主题所有者(或者换句话说,单个总线订阅者到总线主题)的最佳方法是什么,以便于上面的单播重播?

1 个答案:

答案 0 :(得分:1)

在我的世界里,我保持这些东西松散耦合 - 每个上下文都把东西放到一个主题上,任何需要东西订阅的东西。

每个SB订阅都可以根据属性使用Service Bus的过滤功能(例如,您可以通过在消息上添加属性来标记事件,然后对订阅具有过滤条件,这意味着只有列入白名单的事件类别才会应用于每个消费者)。

此外,您已经按主题进行了分类。

订阅和主题允许您处理事件而不会丢失或让发布者担心或追逐订阅者。

您还提到过您在其他问题中将其与事件存储区绑定 - 在这种情况下,您的邮件可能需要按顺序使用。如果是这种情况,您需要在邮件上添加会话ID。

我可以推测为什么你想要这个用户驱动的重新传递,但现在不会。在任何人回答如何使用Service Bus实现最佳目标之前,您需要先解释/验证概念和要求(通过提出解释更高级别目标的问题)。