要解决的场景是:
假设存在一条调用链,如A服务调用B服务,B服务调用C服务,并且通过A服务设置了Deadline时间。
当客户端A服务设置了Deadline后,通过头帧将超时时间传递给了服务B,
然后服务B,又将超时时间传递给了服务C。
那么服务B,C实际允许运行的时间并不是客户端A设置的超时时间。
也就是说,这条调用链上的服务共享超时时间,或者,允许这条调用链运行的时间,就是客户端A设置的超时时间。
服务B运行的时间长了,那么留给服务C运行的时间就少了,超时后,会报context deadline exceeded异常。
C服务执行完成后,将执行结果反馈给B服务,
B服务执行完成后,再将执行结果反馈给A服务,
如果B服务或者C服务运行的时间超过了A服务设置的Deadline时间后,A服务就会报context deadline exceeded异常
下一篇文章
健康检测相关介绍