组合微服务的方式(一)
1.服务代理模式
2.服务聚合模式
3.服务串联模式
4.服务分支模式
5.服务异步消息模式
6.服务共享数据模式
1.服务代理模式
最简单的服务组合模式,根据业务的需求选择调用后端的某个服务。在返回给使用端之前,代理可以对后端服务的输出进行加工,也可以直接把后端服务的返回结果返回给使用端。
组合微服务的方式(一)系统迁移时使用
2.服务聚合模式
最常用的服务组合模式,它根据业务流程处理的需要,以一定的顺序调用依赖的多个微服务,对依赖的微服务返回的数据进行组合,加工和转换,最后以一定的形式返回给使用方。
组合微服务的方式(一)举例:
电商系统的前端就是后端各个微服务的一个最大的聚合服务,前端应用通过调用商品和商品目录显示商品列表,提供给用户选择商品的功能;用户选择商品后增加商品到购物车;用户从购物车结算时,调用交易系统完成交易和交付。
组合微服务的方式(一)聚合服务也可以是一个纯后台服务,通过聚合对使用方输出组合服务。
举例:
在电商系统中,在用户选择结算后,系统调用交易,交易系统会调用库存系统锁库存;然后创建交易订单,引导用户去支付,支付成功后减库存;最后通过发票服务开具电子发票。
组合微服务的方式(一)3.服务串联模式
服务串联模式类似一个工作流,最前面的串联服务负责接收请求和响应使用方,再与服务1交互,随后服务1与服务2交互;最后,从服务2产生的结果经过服务1和串联服务逐个处理后返回给使用方。
组合微服务的方式(一)服务串联模式之间的调用通常使用同步的RESTful风格的远程调用实现,这种模式采用的是同步调用方式。即,在串联服务没有完成并返回之前,所有服务都会阻塞和等待。一个请求会占用一个线程来处理,因此这种模式下,不能服务的层级太多。如果可以使用服务聚合模式代替,优先使用服务聚合模式。
服务串联模式有一个优点,在串联链路上再增加一个节点时,只要不在串联服务的正后面增加一个那么串联服务是无感知的。
组合微服务的方式(一)