【发布时间】:2019-07-25 00:14:42
【问题描述】:
我有带有持久性 Bigtable 客户端的 golang 服务。 这些服务每秒对 Bigtable 进行数百次读/写操作。
从服务启动开始的每一个小时,我都会遇到数百个类似这样的错误:
Retryable error: rpc error: code = Unavailable desc =
the connection is draining, retrying in 74.49241ms
错误之后是处理时间增加,当这些错误发生时我不能允许。
我发现 Bigtable 客户端正在使用 gRPC 连接池。
Bigtable gRPC 服务器的连接 maxAge 似乎为 1 小时,这可以解释上述错误以及重新连接期间处理时间增加的原因。
maxAgeGrace 配置应该提供额外的时间来完成当前操作并避免所有池连接同时终止。
我将连接池大小从默认的 4 增加到 12,但没有真正的好处
鉴于我的流量将持续增长,我如何防止在重新连接期间增加处理时间以及发生这些错误?
【问题讨论】:
标签: go grpc google-cloud-bigtable