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

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

作者: 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