首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >速率限制来自pub/子主题的GCP云函数触发器

速率限制来自pub/子主题的GCP云函数触发器
EN

Stack Overflow用户
提问于 2021-08-19 11:07:07
回答 2查看 769关注 0票数 7

我有一个云函数,它是从Pub/Sub主题触发的。

我希望限制我的云函数,所以我将最大的实例设置为5。在我的例子中,产生的消息将比云函数多得多(而且我希望限制运行的云函数的数量)。

我预期这个过程会像Kafka/queue一样--主题消息将被累积,而Cloud函数将缓慢地消耗消息,直到主题为空。

但似乎所有没有触发云功能(ack)的消息都只是发送了UNACK,而留下了一个。我的订阅详情:

ack的截止期限最大值对我来说太低了(因为速率限制,云功能可能需要几个小时才能到达消息)。

我可以在酒吧/分店换什么东西来满足我的需要?还是我需要加入一个队列?(Pub/Sub发送到任务队列,而Cloud函数使用任务队列?)。

顺便说一下,pub/sub数据实际上是GCS事件。如果这是AWS,我只需将S3文件创建的事件发送到SQS,并在队列的另一端使用Lambdas。

任何帮助都将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-10-06 09:27:11

理想的解决方案是简单地改变重试策略。当使用“指数后退延迟后重试”时,Pub/Sub 即使在最大指数延迟 (600秒)之后也会继续重试。这样,您就可以在Pub/Sub中获得很多消息,并通过一些云函数来缓慢地处理它们--这符合我们对速率限制的需要。

基本上,一切都是一样的,但是这个配置发生了变化,结果是:

这正是我想要的:)

票数 3
EN

Stack Overflow用户

发布于 2021-08-19 11:41:46

您不能与kafka相比,因为您的kafka用户正在利用它的方便来提取消息,而Cloud ( CF )则创建了一个推送订阅,将消息推送到CF。因此,一些替代方案:

  1. 创建一个由云调度程序触发的HTTP,它将从您的请求订阅中提取消息。解压缩消息的最大保留时间为7天(希望这足够了),
  2. 使用云可以增加最大并发性(最大并发请求),并适当调整CPU和RAM的大小。当然,您可以控制云运行实例的最大数量(与max并发不同)。并使用推送订阅推到云运行。但在这里,你也将被限制在10分钟的最后期限内。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68846676

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档