首页 > 解决方案 > 订阅 PubSub 主题的速率限制/节流谷歌云功能

问题描述

所以我有一个订阅 Pub/Sub 主题的云函数,该函数与具有硬速率限制的 3rd 方服务 API 交互。这就产生了一个问题,当 PubSub 主题突然获得大量传入流量时,云函数将被频繁调用以超过 3rd 方 API 速率限制。

解决这个问题的最佳方法是什么?我是否能够限制 PubSub 主题,或者我必须在云功能中实现一些退避逻辑?谢谢!

标签: google-cloud-platformgoogle-cloud-functionspublish-subscribegoogle-cloud-pubsub

解决方案


您可以在一定程度上控制 Cloud Functions 的缩放行为。从链接的文档中:

您可以在部署期间为单个函数设置最大实例。每个函数都可以有自己的最大实例数限制。函数彼此独立缩放。

要使用 gcloud 命令行工具设置最大实例限制,请在部署时使用 --max-instances 标志:

gcloud beta functions deploy FUNCTION_NAME --max-instances 10 FLAGS...

您必须弄清楚有多少并发实例在这个其他 API 的限制范围内。如果一个实例仍然能够生成太多请求,您将不得不实现自己的退避,因为您无法设置执行速率,只能设置已分配实例的最大数量。


推荐阅读