PubSubException:io.grpc.StatusRuntimeException:不可用

Posted

技术标签:

【中文标题】PubSubException:io.grpc.StatusRuntimeException:不可用【英文标题】:PubSubException: io.grpc.StatusRuntimeException: UNAVAILABLE 【发布时间】:2018-02-16 07:56:59 【问题描述】:

伙计们,我在使用 Pubsub 时收到以下错误消息:

线程“主”com.google.cloud.pubsub.PubSubException 中的异常:io.grpc.StatusRuntimeException:不可用:HTTP/2 错误代码:NO_ERROR 收到Goaway 最大年龄 .... 引起:com.google.api.gax.grpc.ApiException:io.grpc.StatusRuntimeException:不可用:HTTP/2 错误代码:NO_ERROR

每小时发生一次,我们使用的是 google-cloud-pubsub 0.8.0、google-cloud-storage 0.7.0 和 scala 2.11.7。任何人都可以在这里提供一些帮助吗?谢谢!

【问题讨论】:

【参考方案1】:

来自服务器的GOAWAY 帧表明服务器正在关闭连接。您可以尝试在https://github.com/GoogleCloudPlatform/google-cloud-java/ 上询问有关此特定服务为什么会发生这种情况的更多详细信息,但 max_age 可能暗示连接已达到某个时间限制。正确的响应是在收到此错误时重新连接(关闭 gRPC 通道并创建一个新通道)。

【讨论】:

感谢 Eric 的回复!我会联系 GCP github【参考方案2】:

我遇到了这个问题,问题是我在通过 grpc 通信的服务上使用了不同的库版本。 导致问题的库是这样的:

    <dependency>
        <groupId>com.google.api.grpc</groupId>
        <artifactId>proto-google-common-protos</artifactId>
        <version>1.0.0</version>
    </dependency>

希望对你有帮助!

【讨论】:

以上是关于PubSubException:io.grpc.StatusRuntimeException:不可用的主要内容,如果未能解决你的问题,请参考以下文章