【问题标题】:GCP Pubsub num of undelivered messages wont changeGCP Pubsub 未传递消息的数量不会改变
【发布时间】:2021-08-24 23:59:27
【问题描述】:

我正在使用 pubsub 来触发我定义为最多具有 10 个实例的云功能。

当大约 300 条或更多消息到达主题并开始触发该功能时,突然未确认的消息数量停止增长,它只是没有改变,尽管我知道我触发的云功能是自动触发的确认这些消息...

我想知道我在这里错过了什么......

添加以下图表以显示我在说什么:

所以这里有几件事需要注意:

  • 图表以 1 分钟为间隔
  • 图表的刻度在右侧
  • 左边的工具箱很容易看出什么颜色对应什么线条
  • ack_message_count(蓝色)是我的云函数每分钟执行的确认数
  • send_message_operation_count(绿色)是发布到正在触发云功能的主题的消息数
    • 请注意下午 1:01 左右的峰值,这是发送到主题的批量,大约有 1k 条新消息
    • 除了大量消息之外,不断有新消息进入主题,但远远少于执行的确认数
  • push_request_count(橙色)是 pubsub 尝试触发云功能的次数(成功或导致 429 表示已达到最大运行实例数)
  • num_undelivered_messages(粉红色)是订阅队列中等待的未确认消息的数量

首先,我可能只是没有使用我的云功能执行足够的确认,但事实并非如此,因为在 1k 消息的峰值之后,确认比新消息多得多。

我以为我会看到订阅队列中未确认消息的数量稳步下降。

所以基本上我不明白的是为什么 num_undelivered_messages 没有随着 ack 数量的继续下降(1:01 - 1:10),然后突然下降(1:10 - 1 :15) 真的很快吗?

【问题讨论】:

    标签: google-cloud-platform google-cloud-functions google-cloud-pubsub


    【解决方案1】:

    根据图表,您对消息的确认跟不上正在发布的消息量。一个例子是在 1:05-1:10,仍然有消息在发布(绿线),但确认率(蓝线)没有增加,因此未确认的消息增加了(粉线)。

    如果您的cloud function memory 尚未达到最大 8GB,我建议增加它。

    【讨论】:

      猜你喜欢
      • 2016-04-04
      • 2019-07-03
      • 1970-01-01
      • 2021-04-14
      • 2017-07-17
      • 1970-01-01
      • 2023-03-29
      • 1970-01-01
      • 2020-12-06
      相关资源
      最近更新 更多