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

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

微服务6种常用设计模式

1、代理设计模式:

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

如图:

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

2、聚合设计模式

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

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

案例:电商前台,如图:

3、链条设计模式

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

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

案例:如图

4、聚合链条设计模式

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

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

5、共享设计模式

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

6、异步消息设计模式

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

实例:如图

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

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

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值