微服务的分解和组合模式

Posted zhao-teng-ass

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微服务的分解和组合模式相关的知识,希望对你有一定的参考价值。

微服务的分解和组合模式(1)

  使用微服务架构划分服务和团队是微服务架构实施的重要一步,良好的划分和拆分使系统达到松耦合和高内聚的效果,然后通过微服务的灵活组装可以满足上层的各种各样的业务处理需求。

  在微服务架构的需求分析和架构设计过程中,通常是用领域的动词和名词来划分微服务的,在一个进程管理器中,可以分解为进程,应用,性能,网络,运行新任务,刷新等等,每一个名词和动词都可以是一个微服务,将这几个微服务组合在一起,就实现了进程管理器的整个业务流。

  拆分后,系统具有敏捷性、灵活性、可伸缩性等,拆分后有多个高度自治的微服务,那如何组合它们。

  1. 服务代理模式

  服务代理模式是最简单的服务组合模式,它根据业务的需求选择调用后端的某个服务。在返回给使用端之前,代理可以对后端服务的输出进行加工,也可以直接把后端服务的返回结果返回给使用端。

  做平滑的系统迁移,通常经历如下4个阶段。

    ①在新老系统上双写。

    ②迁移双写之前的历史遗留数据。

    ③将读请求切换到新系统。

    ④下调双写逻辑,只写新系统。

  服务代理模式常常应用到第3步,一般会对读请求切换设计一个开关,开关打开时查询新系统,开关关闭时查询老系统。

  2. 服务聚合模式

  服务聚合模式是最常用的服务组合模式,它根据业务流程处理的需要,以一定的顺序调用依赖的多个微服务,对依赖的微服务返回的数据进行组合、加工和转换,最后以一定的形式返回给使用方。

  这里,每个被依赖的微服务都有自己的缓存和数据库,聚合服务本身可以有自己的数据存储,包括缓存和数据库等,也可以是简单的聚合,不需要持久化任何数据。

  DRY:Don’t Repeat Yourself,在设计或者构造应用时,最大限度地重用了现有的实现。假如一块业务逻辑由三个独立的逻辑块组成,每个独立的逻辑块可能有多个使用方,则DRY原则推荐将三个独立的逻辑块封装成三个独立运行的微服务,然后使用本节的服务聚合模式开发聚合服务,将三个独立的逻辑块聚合在一起提供给上层组合服务。这样的设计原则有如下好处。

  三个独立的子服务可以各自独立开发、敏捷变更和部署。

聚合服务封装下层的业务处理服务,由三个独立的子服务完成数据持久化等工作,项目结构清晰明了。

  三个独立的子服务对于其他使用方仍然可以重用。

   参考:原文

以上是关于微服务的分解和组合模式的主要内容,如果未能解决你的问题,请参考以下文章

微服务的设计模式,你用了几个

架构模式:API组合

类型与关系是分解与组合面对的主要元素

微服务架构设计模式

函数组合的 N 种模式

六种微服务架构的设计模式