我们正在使用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个此类异常,并且找不到与系统中发生的事情(如部署,繁重的负载等)有任何关系。
我的问题是:
尽管确认未成功,但订阅者仍将处理消息吗?看起来它将尝试再次确认它们...但是想要确定。
我如何继续调查正在发生的事情?
答案 0 :(得分:1)
如果您尚未确认消息,Cloud Pub / Sub将继续尝试传递它们,直到您确认它们或它们根据您的设置过期为止。
在不了解您的代码的情况下,很难为您提供有关如何进行代码的建议。长期存在的grpc频道(例如用于订户的流媒体拉取频道)可能会因瞬态网络错误而中断。我建议您针对正在使用的corresponding client libraries提交一个错误,以查看他们是否可以解决此问题或将其推到(大概)正在使用的Cloud PubSub客户端库中。