gRPC等待就绪语义
如果发出RPC但通道处于TRANSIENT_FAILURE
或SHUTDOWN
状态,RPC将无法及时传输。默认情况下,gRPC实现应该立即失败这样的RPC。这被称为“快速失败[fail fast]”,但是这个术语的使用是历史性的。当通道处于其他状态(CONNECTING
,READY
或IDLE
),RPC不应该失败。
当通道处于TRANSIENT_FAILURE
状态,gRPC实现可能会提供一个per-RPC选项来避免RPC失败。实现一种队列式RPC直到通道变为READY
状态再次重试,这被称为“等待准备好[wait for ready]”。如果存在不相关的原因,RPC应该在READY
之前仍然失败,如通道变为SHUTDOWN
状态或RPC的截止日期已到。
waitForReady
你可以参考gRPC服务配置中的waitForReady参数的注释加深理解。