AWS lambda 的分布式速率限制器

dea*_*e05 8 java rate-limiting amazon-web-services aws-lambda

我正在为我正在构建的应用程序寻找分布式速率限制器的服务或解决方案。这些应用程序是并发 AWS lambda 函数。下游API的速率限制为1000笔交易/分钟。该速率由多个应用程序共享。对于我的应用程序,我将如何为此开发解决方案?

All*_*hua 1

我认为这是基线架构挑战,而不是 Lambda 问题。但是,我建议将处理 HTTP 事务的代码与通过使用 SQS 队列或事件桥将 HTTP 事务发送到下游源的代码分开。

然后,您可以实现一个后台服务(可以是 lambda,可以是容器),该服务将使用来自队列/事件桥的消息来控制流量,并确保每秒只有 1000 个请求被推送到下游源。不是一个很棒的工程度假村,但它应该在短期内对您有所帮助。

显然,在某些时候,您必须扩展下游服务或将其迁移到云端,以简化扩展并利用按需扩展功能。

您还可以研究的另一件事是“如果下游源可以从我这里提取数据而不是我向它们推送数据会更好吗”。这将使你们能够保存和防止有效负载发生错误,并让下游系统按照自己的节奏使用消息。