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

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

作者: 白板时钟 | 来源:发表于2020-05-25 00:45 被阅读0次

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

API组合模式

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

  • API组合器
  • 数据提供方服务

由谁来担任API组合器

  • 客户端,例如前端
  • API Gateway
  • 将API组合器实现为独立的服务

优势和劣势

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

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

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

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

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

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

优势和劣势

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

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

设计CQRS视图

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

  • 底层数据库的选择
  • 数据访问模块,需要是幂等的,支持并发更新。可以使用乐观锁获者悲观锁,保证并发处理。
  • 实现新视图或更改时,需要考虑构建或重建视图。可以使用归档事件恢复视图,或者使用快照的方式,短期备份。
  • 应对复制延迟

相关文章

  • 微服务应用故障定位系统实现原理剖析

    当下最流行的设计架构便是微服务架构,越来越多的企业将老的服务拆分成微服务模式、在新的业务中采用微服务架构的设计理念...

  • 微服务架构和微服务的设计模式

    微服务架构和微服务的设计模式 微服务在企业中可以带来积极的影响。 因此,如何处理微服务体系架构(MSA)和一些微服...

  • 八种架构设计模式及优缺点概述(下)

    在上篇文章中,介绍了八种架构设计模式中的三种,既:查询分离模式、微服务模式、多级缓存模式,没有读过的同学请手动微信...

  • Go Micro(5)——架构与微服务的设计模式

    Go Micro(5)——架构与微服务的设计模式 有很多关于 micro 架构的疑问和微服务的设计模式的问题,今天...

  • spring cloud 脚手架

    简介 Spring Cloud是一个基于Spring Boot实现的微服务架构开发工具。它为微服务架构中设计的配置...

  • 微服务架构之「 API网关 」

    在微服务架构的系列文章中,前面已经通过文章 《架构设计之「服务注册 」》 「 API网关 」是任何微服务架构的重要...

  • 第10周

    关于微服务架构(中台架构、领域驱动设计、组件设计原则),你有什么样的思考和认识? 关于微服务架构 微服务其实早就存...

  • 微服务架构设计实践

    微服务架构设计实践 1 序言 最近,在软件架构设计领域,微服务非常火。 一提到软件开发、架构设计,如果不提微服务,...

  • 微服务架构的多种部署模式

    微服务架构的多种部署模式 声明:本文主要内容来自《微服务架构设计模式》 部署包含两个互相关联的概念:流程和架构。部...

  • 第六章 Sleuth--链路追踪

    本文介绍微服务架构中最重要的设计模式:微服务之间的数据通讯。更多请看全文。 第一章:微服务的架构介绍发展第二章:微...

网友评论

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

      本文链接:https://www.haomeiwen.com/subject/prxeahtx.html