我正在开发微服务,我正在使用具有CQRS模式的事件采购,在我的情况下,如果用户从一个服务中删除/更新我希望它发布事件和其他服务来订阅它并删除条目关于该用户的数据也是如此。
我想问一下如何在事件采购中使用发布/订阅模式,可以使用哪个事件存储,因为目前我看到有些人使用Azure表但是如何将其用作发布/订阅?
答案 0 :(得分:3)
可以使用哪个事件存储...?
如果你有选择使用技术的奢侈,那么我建议你先看看Greg Young的Event Store
是的,那就是向全世界介绍CQRS的人。
(您可能还想查看他关于polyglot data的讨论,其中包括对基于拉动与推送的模型的讨论。
答案 1 :(得分:0)
如何在事件采购中使用发布/订阅模式
这个用例自然地规定了事件源,如果准确地实现它,那么关于通知的问题就会自动消失。 通过公共总线实现交互是最好的。实现聚合或投影的每个微服务都连接在统一的逻辑总线上,并在所有事件上签名,也可以在那里发送任何事件。
当然,当系统负载很重的时候,有必要做一些优化,例如,为事件输入名称空间,并指定总线的代理什么事件和什么微服务呢是必要的。此外,如果某些信息对于微服务是私有的,那么在总线中建立私有信道是有意义的,但是事件源理论并不提供它,与聚合之间的验证完全相同。
同样由于公共总线的概念,您还可以获得系统客户的“礼物”反应,例如浏览器。但是,您不应仅为事件订阅聚合的预测或状态。如果服务器事件与客户端不相等,则可以在其广播中输入中间实体,但不再需要存储事件。