你如何使用许多 Heroku dynos 来限制 REST API?

How do you throttle a REST API using many Heroku dynos?

我配置了我的 REST API 节流,每分钟最多接受 10 个请求。 它在本地环境中按预期工作。

但是,在 Heroku 上部署时,此限制是在动态基础上应用的。 由于到 select 测功机的路由是随机的,这意味着例如如果我有 2 个测功机, 在第 11 次和第 20 次请求之间可能会发生错误(实际上通常发生在 16 或 17 次请求左右)。

如何在 Heroku 上使用确定性速率进行干净的节流,当 dyno 配置更改时它不会改变?

您当前必须将节流数据存储到内存中。您需要将其存储在共享数据库中,例如 Redis。 如果您每次都读取和写入该数据库的值 to/from,它将在 dynos 之间共享,您将拥有更可靠的东西。