美文网首页
微服务架构设计模式(七)微服务中的查询

微服务架构设计模式(七)微服务中的查询

作者: Billy_Wang | 来源:发表于2020-10-21 00:19 被阅读0次

在微服务中实现查询

1、微服务中实现查询的两种方式

1.1 API组合模式

(1)通过调用拥有数据的服务并组合结果来实现查询操作


image.png

(2)问题:

  • 由谁来担当查询的组合器

    其中的一个微服务
    单独的服务组件
    网关

  • 如何编写有效的聚合逻辑

    使用响应式编程模型,让多个服务调用并行,可提升查询的的速速

(3)弊端:

  • 增加了额外的开销。相比单个微服务实现查询来讲,这种方式需要调用多个服务
  • 可用性降低。如果有三个服务,组合查询的可用性变为 A * B * C
  • 事务一致性问题

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

(1)微服务架构中实现查询需要处理的问题

  • 使用API组合模式检索分散在多个服务中数据库会导致昂贵、低效的内存中连接
  • 拥有数据的服务将数据存储在不能有效支持查询的表单或数据库中
  • 拥有数据的服务不一定是会实现查询操作的服务

(2)CQRS 隔离命令和查询

  • 持久化数据模型的部分属于命令端(CUD:POST、PUT、DELETE)
  • 使用数据模块的部分属于查询端(R:GET)
  • 模型:


    image.png
  • CQRS视图:


    image.png

(3)优点:

  • 实现高效的查询
  • 进一步实现问题的隔离
  • 高效地实现多种不同的查询类型

(4)弊端

  • 更加复杂的架构
  • 处理数据复制导致延迟

相关文章

网友评论

      本文标题:微服务架构设计模式(七)微服务中的查询

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