分布式服务框架--第八章:服务调用

2020-11-18  本文已影响0人  celusing

除了常用的同步服务调用之外,分布式服务框架还需要支持其他几种形式的服务调用

一.几个误区

1.NIO就是异步服务

分布式服务框架中,引入NIO带来的好处显而易见:


深度截图_选择区域_20201118144708.png

优点总结:

2.服务调用天生就是同步的

服务调用主要有两种模式

  1. OneWay模式:只有请求,没有应答。例如:通知消息;很容易设计成异步的。消费者发起服务调用之后,直接返回,不需要同步阻塞,等待应答。
  2. 请求-应答模式:一请求,一应答模式。最常用。
    从技术选型上:

二.服务调用方式

1.同步服务调用

工作原理:客户端发起远程服务调用请求,用户线程完成消息序列化之后,将消息投递到通信框架,然后同步阻塞,等待通信线程发送请求并接收到应答之后,唤醒同步等待的用户线程,用户线程获取到应答之后返回。


深度截图_选择区域_20201118150738.png

为了防止服务端长时间不反悔应答消息导致客户端用户线程被挂死,用户线程等待的时候需要设置超时时间。

2.异步服务调用

  1. Future-Listener机制:支持主动获取和被动异步回调通知两种模式。


    深度截图_选择区域_20201118151315.png
  2. 不添加Listener的异步服务调用方式


    深度截图_选择区域_20201118151511.png

3.并行服务调用

并行服务调用的原理:一次同时发起多个服务调用,先做流程Fork,在利用Future等主动等待获取结果,进行结果汇聚(Join)。

上一篇 下一篇

猜你喜欢

热点阅读