事件源和CQRS如何帮助解耦微服务?

问题描述 投票:0回答:1

事件源和CQRS如何帮助实现微服务的分离架构。

我们可以拥有拥有其数据的微服务,而其他微服务甚至可以通过传统的持久性手段通过服务访问该数据。是不是?

microservices cqrs event-sourcing
1个回答
0
投票

事件源和CQRS不能用于解耦服务。

使用CQRS达到的主要目标是提高服务的性能,因为您可以对写入(命令)和读取(查询)使用不同的持久性类型。

感谢,您可以使用像事件日志这样的高性能写入类型持久性来存储服务中发生的所有事件,并使用关系模型(例如用于读取,以您查询所需要的方式存储信息) 。

通常,通过使用命令模型生成的事件(查询所消耗的事件来更新读取模型)来实现两个模型之间的一致性。这些缺点是最终的一致性,因为读取模型的更新不会立即发生。

与cqrs密切相关的是事件源,它指出所有写入(创建,更新或删除)必须是不可变的,因此修改就像新事件一样存储在事件日志中。这样,您就可以了解应用程序中执行的所有操作。这样做的优点是您具有所有更改的历史记录以进行审核,并且写入速度非常快(仅追加),缺点是,如果要获取当前状态,则必须重播自开始以来的所有事件。 >

为了解决这个问题,您使用cqrs来获取进行查询的实际状态

© www.soinside.com 2019 - 2024. All rights reserved.