PubSub:StatusRuntimeException:StreamingSubscriberConnection中不可用

时间:2019-02-07 09:34:38

标签: google-cloud-pubsub

我们正在使用Kubernetes在GCP中运行Spring Boot应用程序。我们正在使用spring-cloud-gcp-starter-pubsub 1.1.0.RC1 -> google-cloud-pubsub:1.54.0。最近,我们开始遇到例外情况:

logger_name com.google.cloud.pubsub.v1.StreamingSubscriberConnection

method onFailure

severity WARN

stack_tracecom.google.api.gax.rpc.UnavailableException: io.grpc.StatusRuntimeException: UNAVAILABLE: 

带有异常消息,例如:

 - Network closed for unknown reason io exception 
 - HTTP/2 error code:
 - NO_ERROR Received Goaway max_age 
 - Authentication backend unavailable.
 - The service was unable to fulfill your request. Please try again.
   [code=8a75] 502:Bad Gateway

异常最常出现在群集中:

Feb 04 11:29:00.615
Feb 04 11:29:00.479
Feb 04 10:35:48.256
Feb 04 10:35:32.024
Feb 04 10:35:03.760
Feb 04 10:34:52.094
Feb 04 07:36:31.430
Feb 04 07:06:17.025
Feb 04 06:42:13.529
Feb 04 04:32:50.265
Feb 04 04:32:49.845
Feb 04 04:32:49.746
Feb 04 02:57:36.678
Feb 04 02:57:35.700 

我们每天都会收到大约10个此类异常,并且找不到与系统中发生的事情(如部署,繁重的负载等)有任何关系。

我的问题是:

  • 尽管确认未成功,但订阅者仍将处理消息吗?看起来它将尝试再次确认它们...但是想要确定。

  • 我如何继续调查正在发生的事情?

1 个答案:

答案 0 :(得分:1)

如果您尚未确认消息,Cloud Pub / Sub将继续尝试传递它们,直到您确认它们或它们根据您的设置过期为止。

在不了解您的代码的情况下,很难为您提供有关如何进行代码的建议。长期存在的grpc频道(例如用于订户的流媒体拉取频道)可能会因瞬态网络错误而中断。我建议您针对正在使用的corresponding client libraries提交一个错误,以查看他们是否可以解决此问题或将其推到(大概)正在使用的Cloud PubSub客户端库中。