Golang 中的 gRPC 故障检测

gRPC failure detection in Golang

我正在尝试使用 https://pkg.go.dev/google.golang.org/grpc#ClientConn.WaitForStateChange 函数来实现故障检测机制。我注意到当我停止服务器时,gRPC 连接的状态从 READY 变为 IDLE。但是,我希望它进入 TransientFailure 状态。我还尝试设置 keep alive 参数,但该行为似乎没有变化。有什么想法会导致这种行为吗?

考虑一下,如果我在服务器关闭后进行调用,我会看到 TransientFailure 状态发生变化,否则我看到的只是 IDLE 状态。

IDLE 是正确的下一个状态,在这里。如果发送任何新的 RPC,客户端将尝试连接,此时它将转到 CONNECTING,然后 TRANSIENT_FAILURE.