GCP pubsub.v1.Subscriber.StreamingPull 中的错误代码 503

问题描述 投票:0回答:3

我正在尝试使用发布/订阅服务,我在仪表板中注意到以下错误代码。

这里链接是什么 代码503

有什么可以让我阻止这种情况吗?

-阿斯卡

google-cloud-platform google-cloud-pubsub
3个回答
3
投票

正如您共享的有关错误代码的文档链接中所解释的,当 Pub/Sub 服务无法处理请求时,将返回 HTTP 代码 503(“UNAVAILABLE”)。一般来说,人们可以说这些类型的错误往往是暂时的,并且没有办法避免它们,您可以按照重试策略(例如我将很快评论的策略)来解决它们。

Google Cloud Pub/Sub SLA 显示了此服务的保证正常运行时间。正如您所看到的,它不是 100%,因为可能会发生暂时性错误,考虑到您遵循建议的实施指数退避重试策略的做法,这不会极大地干扰您的服务。

此文档页面显示了指数退避重试策略的示例实现。此示例适用于 Google Cloud Storage,但它可以(并且应该)应用于任何其他类似的服务。它包括通过增加退避来重试失败的 Pub/Sub 请求,以增加请求成功的概率。这是推荐的最佳实践和克服暂时性问题的推荐方法。


1
投票

StreamingPull 的错误率是 100%。

StreamingPull 流始终以非正常状态 (HTTP 503) 终止。请注意,与常规 RPC 不同,此处的状态仅指示流已损坏,而不是请求失败。

https://cloud.google.com/pubsub/docs/streamingpull-troubleshooting#streamingpull_has_a_100_error_rate


0
投票

我在订阅时遇到了同样的错误。我设置超时后就停止了。

timeout = 600 # it was previously None
# Wrap subscriber in a 'with' block to automatically call close() when done.
    with subscriber:
        try:
            # When `timeout` is not set, result() will block indefinitely,
            # unless an exception is encountered first.
            listener_streaming_pull_future.result(timeout=timeout)
        except TimeoutError:
            listener_streaming_pull_future.cancel()  # Trigger the shutdown.
            listener_streaming_pull_future.result()  # Block until the shutdown is complete.
© www.soinside.com 2019 - 2024. All rights reserved.