springCloud(七)微服务常用设计模式(聚合方式)

微服务架构的设计理念便是:各个服务之间隔离、自治、独立部署、异步通信等等,而在开发过程中我们会遇到一些业务需要对这些独立的服务进行组合,下面介绍的是几种常用的聚合方式、使用路由网关zuul聚合服务的实现。

微服务6种常用设计模式

1、代理设计模式:

根据业务的需要选择调用后端的某些服务,在返回客服端之前,代理可以对输出进行加工,这是最简单的一种服务组合模式。

如图:

springCloud(七)微服务常用设计模式(聚合方式)_第1张图片

这种模式的典型案列是:平滑的系统迁移。

2、聚合设计模式

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

springCloud(七)微服务常用设计模式(聚合方式)_第2张图片

聚合服务本身可以有自己的数据存储,

案例:电商前台,如图:

springCloud(七)微服务常用设计模式(聚合方式)_第3张图片

3、链条设计模式

类似一个工作流,最前面的服务1负责接受请求和响应使用方,串联服务后再与服务1交互,随后服务1与服务2交互,最后,从服务2产生的结果经过服务1和串联服务逐个处理后返回给使用方。

springCloud(七)微服务常用设计模式(聚合方式)_第4张图片

串联模式之间的调用通常使用同步的restful风格的远程嗲用实现,注意,这种模式采用的是同步调用方式,在串联服务没有完成并返回之前,所有服务都会阻塞和等待。

案例:如图

springCloud(七)微服务常用设计模式(聚合方式)_第5张图片

4、聚合链条设计模式

是服务代理模式、聚合模式和串联模式相结合的产物。

分支服务可以拥有自己的数据库存储,调用多个后端服务或者服务串联链,然后将结果进行组合处理再返回给客户端。也可以使用代理模式,简单第调用后端的服务或者服务链,然后将数据直接返回给使用方。

springCloud(七)微服务常用设计模式(聚合方式)_第6张图片

5、共享设计模式

自治是微服务的设计原则之一,而这个设计模式是共享同一个数据库。

springCloud(七)微服务常用设计模式(聚合方式)_第7张图片

6、异步消息设计模式

同步调用模式在调用的过程中会阻塞线程,如果服务提供方迟迟没有返回,则服务消费方会一直阻塞,严重的会撑满服务的线程池,出现雪崩效应。因此,在构建服务架构系统时,通常会梳理核心系统的最小化服务集合,这些核心的系统服务使用同步调用。而其他核心链路以外的服务可以使用异步消息队列进行异步化。如图:

springCloud(七)微服务常用设计模式(聚合方式)_第8张图片

实例:如图

springCloud(七)微服务常用设计模式(聚合方式)_第9张图片

参考文章:https://www.cnblogs.com/duanxz/p/3514895.html

https://blog.csdn.net/en_joker/article/details/86765157

你可能感兴趣的:(springcloud)