【问题标题】:pubsub Dynamic rate limitingpubsub 动态速率限制
【发布时间】:2016-07-05 15:42:39
【问题描述】:

谁能详细说明 Pub/Sub 系统实施的动态速率限制?我在 gcloud 文档或常见问题页面上找不到任何详细信息。

这是我的 pubsub 用法: 我打算在我们的生产中使用 pubsub。现在,我有 1 个主题、1 个订阅和 1 个订阅者(Webhook HTTPS 回调)。有时我的订阅者会抛出异常(非常少见),在这种情况下,我的订阅者会向 pubsub 返回 400 响应,以便 pubsub 可以保留消息并重试。

如果发布订阅收到订阅者的 400 响应,是否会严重影响其他消息的流量?鉴于关于如何实现流控制的文档很少,我主要关心的是一条坏消息对所有其他好消息的延迟的影响。

如果有助于减少不良消息的影响,我可以将一个主题拆分为多个主题和多个订阅。

【问题讨论】:

    标签: google-cloud-pubsub


    【解决方案1】:

    如果您只是偶尔返回 400,则不会对传递给订阅者的消息率造成严重影响。当出现 400 响应时,如 Subscriber Guide 中所述,允许的未完成消息的数量将减少一半。如果您随后为另一条未完成的消息返回成功,则窗口将立即再次翻倍,实际上不会减少允许的未完成消息的数量。

    后续消息的消息传递延迟量会随着后续故障呈指数增长,从 O(10 毫秒)的延迟开始。每当返回成功响应时,后续消息将不再延迟。因此,来自订阅者的单个 400 响应(否则返回成功)应该不会产生任何明显的影响。

    【讨论】:

      【解决方案2】:

      Pub/Sub 中的消息会一直保留到消费者确认消息为止。只要消费者不承认它处理了消息,消息就会被保留并重新传递。

      【讨论】:

      • 如何等待特定时间再确认消息?
      猜你喜欢
      • 1970-01-01
      • 2020-07-09
      • 1970-01-01
      • 2015-04-30
      • 1970-01-01
      • 2019-10-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多