【发布时间】:2013-03-18 04:37:51
【问题描述】:
我使用Windows Service Bus 1.0在不同进程之间进行通信,每个上下文事件流作为一个主题存在于总线上。
使用服务总线在有界上下文之间链接事件我需要一种方法来同步事件(或者换句话说,请求重播过去的事件)当有界上下文重新联机但想要限制返回的潜在消息泛滥时只去请求它的端点,至少如果这是可以通过使用现有服务总线功能轻松完成的事情。
所以假设一个假想的 ContextC 发送一条消息来请求来自 ContextA 和 ContextB 的所有先前事件,有没有办法让这些重播消息只发送到 ContextC?
将上下文映射为主题所有者(或者换句话说,将单个总线订阅者映射到总线主题)以促进上述单播重播的最佳方式是什么?
【问题讨论】:
-
您是否正在尝试实现一种可以在本地或 Windows Azure 中同等部署的解决方案?
-
对我来说,术语都是错误的,因为您的其余问题都假设事件源 CQRS 架构。上下文不应该互相“发送”消息,而是可以互相收听。你能谈谈你更高层次的需求吗?为什么下游消费者需要担心所有这些东西?您这样做是为了促进事件的重播,以便在依赖上下文中的读取模型中“清除并重建”状态吗?
-
Ruben 感谢您一直以来的帮助。事件的发送和重放仅适用于恢复已上线并希望同步先前事件的有界上下文 - 我同意您的 cmets,因为这与我们通常只听的正常操作中应该发生的事情相同
-
当您说“上线”时,您是在谈论创建一个全新的上下文,该上下文需要从其宇宙的黎明开始从合作伙伴上下文中获取事件源?因为如果您谈论的是典型的上线感觉,即处理 10 秒到 10 天的中断,那真的只是正常的生活。如果您使用任何适当的排队机制,这就是全部理由
标签: servicebus