是否可以独立于重新连接退避设置设置 gRPC 客户端连接超时?

Can a gRPC client connect timeout be set independent of reconnect backoff settings?

我们希望将 gRPC 客户端配置为在连接丢失后快速重新连接。 (我相信 default behavior is to attempt to reconnect after 20 seconds, backing off to 120 seconds between attempts.) After a review of available settings,我们尝试将 grpc.initial_reconnect_backoff_msgrpc.min_reconnect_backoff_ms 设置为 200。虽然这会在连接丢失时快速重新连接,但我们有时会看到调用(来自测试)失败并显示 GRPC::Internal: 13:Completed without a response。查看来自位于客户端和服务器之间的 tcp 反向代理的日志记录,我看到一个连接持续了 200 多毫秒,然后第二个连接持续了更长的时间。所以看起来重新连接时间有效地用作超时连接尝试。

是否可以配置 gRPC 客户端,使其在连接丢失后开始尝试重新连接非常快,但允许创建该连接花费的时间比重新连接时间?

如果重要的话,这是一个 Ruby 客户。

初始退避 应该1 second

您遇到 a bug 最小连接超时同时用作超时和退避(因此 1s 初始退避被忽略)。所以你最初的问题和失败的解决方法都是由同一个错误引起的。

(一个月前发现了这个错误,但由于与第二个错误混淆而没有提交问题。你在这里的问题让我注意到遗漏的问题。)