《微服务架构设计模式》读书笔记---第七章:在微服架构中实现查询

2020-05-25  本文已影响0人  白板时钟

在微服务中实现查询操作有两种不同的模式:API组合模式命令查询职责隔离(CQRS)模式

API组合模式

这个模式通过调用拥有数据的服务并组合结果来实现查询操作。有两种类型的参与者:

由谁来担任API组合器

优势和劣势

这种模式的优势是,实现简单。
劣势:
增加了额外的开销:要么组合数据,要么多次调用。例如前端的列表,需要多次调用或者自己组合
带来可用性降低的风险:解决方式可以使用缓存,缓存数据提供方的数据,或者在数据提供方不可用时,返回不完整的数据
缺乏事务数据一致性:两个数据提供方的数据,可能不一致。

命令查询职责隔离(CQRS)模式

命令查询职责隔离(Command Query Responsibility Segregation, CQRS)模式,将持久化数据模型和使用数据的模块分为两个部分:命令端和查询端。

命令端模块和数据模型实现创建、更新和删除操作。
查询端模块和数据模型实现查询。

CQRS不仅可以在服务中应用,还可以以此模式定义查询服务

查询服务通过订阅由一个或多个服务发布的时间,来确保它的数据是最新的。

优势和劣势

优势:
在微服务架构中高效的实现查询
支持多种不同的查询类型,可以定义特定的视图,帮助高效查询
隔离命令端和查询端

弊端:
结构复杂
数据复制有延迟。 可以提供版本信息,进行解决方案。

设计CQRS视图

设计CQRS视图,需要考虑一下几个问题

上一篇下一篇

猜你喜欢

热点阅读