c++ - 为什么我在我的 C++ 应用程序中放弃了 Bigtable?

标签 c++ grpc google-cloud-bigtable

我正在使用 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/

相关文章:

c++ - 不完整类型的无效使用/错误的前向声明。可能误用抽象类? (C++)

java - GRPC Java : Set up SSLContext on Server

azure - 用于查询某个范围内的值的表存储设计

grpc - gRPC服务器如何注意到客户端已取消服务器端流调用?

c# - grpc.core 的 Xamarin iOS native 链接失败

java - Google Cloud Bigtable 客户端连接池

google-cloud-bigtable - Google Cloud Bigtable 中的单调递增键被明确记录为有问题,但单调递减键如何比较?

c++ - 声明和定义之间 const 限定符的使用不一致

c++ - 我可以使用没有指针的 fread 读取动态长度变量吗?

c++ - 计算 sha256 以使用已弃用的 openssl 代码的替代方法