【问题标题】:Rate limit / throttle google cloud function that subscribes to a PubSub topic订阅 PubSub 主题的速率限制/节流谷歌云功能
【发布时间】:2019-07-18 18:15:13
【问题描述】:
所以我有一个订阅 Pub/Sub 主题的云函数,该函数与具有硬速率限制的 3rd 方服务 API 交互。这就产生了一个问题,当 PubSub 主题突然获得大量传入流量时,云函数将被频繁调用以超过 3rd 方 API 速率限制。
解决此问题的最佳方法是什么?我是否能够限制 PubSub 主题,或者我必须在云功能中实现一些退避逻辑?谢谢!
【问题讨论】:
标签:
google-cloud-platform
google-cloud-functions
publish-subscribe
google-cloud-pubsub
【解决方案1】:
您可以在某种程度上control the scaling behavior of Cloud Functions。来自链接的文档:
您可以在运行期间为单个函数设置最大实例数
部署。每个函数都可以有自己的最大实例限制。
函数相互独立扩展。
要使用 gcloud 命令行工具设置最大实例限制,请使用
部署时的 --max-instances 标志:
gcloud beta functions deploy FUNCTION_NAME --max-instances 10 FLAGS...
您必须弄清楚有多少并发实例在这个其他 API 的限制范围内。如果一个实例仍然能够生成太多请求,您将不得不实施自己的退避,因为您无法设置执行速率,只能设置已分配实例的最大数量。