0

我正在开发微服务,我使用CQRS模式的事件采购,在我的情况下,如果用户从一项服务中删除/更新,我希望它发布一个事件和其他服务来订阅它,并从其db中删除关于该用户的条目。如何在事件采购和CQRS中使用发布/订阅模式

我想问如何在事件采购中使用pub/sub模式,可以使用哪个Event存储区,因为目前我已经看到一些人使用Azure Tables,但是如何将它用作pub/sub?

+0

如果您的事件位于Azure Table存储中,如何将事件投影到您的已读模型中? –

+0

目前,我没有使用任何活动商店。我也在寻找这样一个解决方案,我可以将我的事件投影到读取模型,这无法通过Azure表存储完成。这就是为什么我要求可以自​​动执行此操作的Event Store –

+0

正如答案中所述,EventStore(http://www.geteventstore.com)支持订阅,此功能是构建读取模型的最佳方式。虽然预测不是pub-sub。后者是消息传递模式。 –

回答

2

可以使用哪个事件存储...?

如果你有选择使用该技术的奢侈品,那么我会建议你寻找到格雷格 - 年轻的Event Store

对,就是那个引入CQRS世界同一个人开始了。

(您可能还想回顾他在polyglot data上的演讲,其中包括讨论基于拉和推的模型)。

0

我如何使用发布/订阅模式在事件采购

该用例自然放下对eventsourcing,如果准确地意识到这一点,然后通知有关的问题将自动消失。 通过公共巴士实现交互是最好的。每个实现您的聚合或投影的微服务都连接在统一的逻辑总线中,并在所有事件上签名,并且还可以在那里发送任何事件。

当然,如果系统处于沉重负载下,则有必要进行一些优化,例如为事件输入名称空间并向总线的中介者指定什么事件以及什么微服务有必要交付。此外,如果某些信息对于微服务是私有的,那么在公共汽车上建立专用信道是有意义的,然而它不是由事件采购理论提供的,与集合体之间的验证完全相同。

还要感谢公共巴士的概念,您还会收到系统客户(例如浏览器)的“作为礼物”反应。但是,您不得仅为事件订阅聚合的预测或状态。如果服务器事件与客户端不相同,则可以在其广播中输入中间实体,但它不再是存储事件的责任。