我正在使用 gRPC Bigtable 客户端运行用 C++ 编写的数据导入作业。经过一段时间并插入超过 1M 条记录后,我得到了带有 max_age
消息的 goaway
。这是我的第一个总体上也是第一个长时间运行的 Bigtable 应用程序,所以我不确定 goaway
是否特定于正在进行的插入次数或连接持续时间,或者 goaway
确实是。看来我遇到了某种超时。查看 gRPC C++ 代码,特别是 grpc::Channel,我没有看到任何超时控制,所以我不确定如何处理这个问题,除了重新打开数据库连接。
我从 gRPC 客户端收到的确切错误消息如下所示:
D0127 23:05:35.439218531 19729 chttp2_transport.c:683] got goaway [0]: 6d 61 78 5f 61 67 65 'max_age'
gRPC 和 protobuf 是从源代码构建的,来自 2016 年 1 月 22 日左右的主线,因此客户端代码是最新的。
关于 Bigtable 为何发送 goaway
的任何建议?是否可以打开一个与 Bigtable 对话时不会超时的 grpc::Channel
?
最佳答案
我比较熟悉java方面,所以我希望这对你有所帮助。对于持续使用的连接,连接有 1 小时超时。 java channel 也会在短时间内没有任何事件(大约几分钟)后超时。
关于c++ - 为什么我在我的 C++ 应用程序中放弃了 Bigtable?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35070394/