繁体   English   中英

GCP Pubsub 未传递消息的数量不会改变

[英]GCP Pubsub num of undelivered messages wont change

我正在使用 pubsub 来触发云 function,我已将其定义为最多 10 个实例。

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

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

添加以下图表以显示我在说什么: 在此处输入图像描述

所以这里有几点需要注意:

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

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

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

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

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

我建议增加你的云 function memory如果它还没有达到最大 8GB。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM