【发布时间】:2021-09-30 00:55:45
【问题描述】:
我正在使用 Google 的 Pub/Sub 队列来处理服务之间的消息。一些订阅者连接到速率限制 API。
例如,我将街道地址推送到发布/订阅主题。我有一个订阅(通过推送)该主题的云功能,并调用外部限速地理编码服务。理想情况下,我的街道地址可以立即推送到主题上,并且主题会保留这些消息 - 以限速方式呼叫订阅者。
有没有配置这样的延迟,或消息分发速率限制?增加 Ack 窗口并没有真正的帮助:我已经构建了这个系统来防止长时间运行的功能。
【问题讨论】:
-
我遇到了 PubSub 和 Cloud Functions 的速率限制问题。解决方案是创建要在数据存储中完成的作业记录。在从 Datastore 中提取 n 个对象的调度程序上创建一个云函数,然后执行一个云函数。您正在有效地创建一个排队系统。在流程中的每一步更新 DS 对象是一件很痛苦的事情,但它也可以轻松地可视化管道。
-
一年,有更新吗?
-
@slideshowp2 google 似乎对支持这个用例不感兴趣,没有更新
-
您可以尝试定期从 Pub/Sub 拉取,使用 Cloud Scheduler 您可以设置一个 cron 来触发 Cloud Function 从 Pub/Sub 主题拉取有限数量的消息并调用您的速率限制API。
-
三年后,上述方法似乎是正确的方法(通过 cron 作业定期手动从队列中拉出)
标签: node.js google-cloud-functions google-cloud-pubsub