GCP Pubsub 未传递消息的数量不会改变
Posted
技术标签:
【中文标题】GCP Pubsub 未传递消息的数量不会改变【英文标题】:GCP Pubsub num of undelivered messages wont change 【发布时间】: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) 真的很快吗?
【问题讨论】:
【参考方案1】:根据图表,您对消息的确认跟不上正在发布的消息量。一个例子是在 1:05-1:10,仍然有消息在发布(绿线),但确认率(蓝线)没有增加,因此未确认的消息增加了(粉线)。
如果您的cloud function memory 尚未达到最大 8GB,我建议增加它。
【讨论】:
以上是关于GCP Pubsub 未传递消息的数量不会改变的主要内容,如果未能解决你的问题,请参考以下文章