如何使用JavaScript对Google Cloud PubSub进行评级,使其与不同服务的配额限制保持一致?

如何使用JavaScript对Google Cloud PubSub进行评级,使其与不同服务的配额限制保持一致?,javascript,google-cloud-pubsub,rate-limiting,Javascript,Google Cloud Pubsub,Rate Limiting,首先,感谢您抽出时间阅读我的问题。我相信你正忙于其他事情,我非常感谢你。现在,我想解决的问题(这是为了工作,我没有设计师/架构师可以咨询): 我们正在向一个QPM(每分钟配额)代替25000个每分钟请求的服务发出HTTP请求。如果我们超过这个配额限制,我们会从他们的服务中得到一个错误 我们正在使用Node.js事件监听器(listener.on(“event”,(data){process…})从队列(Google Cloud PubSub)中提取要处理的消息。这将以底层硬件/进程允许的速度提取

首先,感谢您抽出时间阅读我的问题。我相信你正忙于其他事情,我非常感谢你。现在,我想解决的问题(这是为了工作,我没有设计师/架构师可以咨询):

我们正在向一个QPM(每分钟配额)代替25000个每分钟请求的服务发出HTTP请求。如果我们超过这个配额限制,我们会从他们的服务中得到一个错误

我们正在使用Node.js事件监听器(listener.on(“event”,(data){process…})从队列(Google Cloud PubSub)中提取要处理的消息。这将以底层硬件/进程允许的速度提取消息。为了实用起见,假设消息可以以不确定的速率传入

目前,我们设置了每分钟最多可提取25K条消息的上限。在此之后的所有消息将被忽略,直到下一分钟的间隔。此数字与QPM匹配。我在这里看到的问题是,对于每条消息的每个请求,延迟都不被考虑

我们使用系数1.4进行指数退避。这意味着任何失败的消息都将以1000(x^1.4)的速率重试毫秒,其中x是尝试次数。虽然此回退可以实现可靠性,但重试之间的差距越来越大,这意味着如果服务已准备好接受另一个请求,但我们仍在等待重试,则在等待时会有一些浪费

我的问题是:我们如何在限制条件下实现最高的吞吐量?我只是一个中级开发人员,但负责这个问题,没有经验或指导来帮助我解决它。我希望得到任何反馈,澄清问题,等等。我非常感谢任何建议

提前谢谢你