有没有办法限制 Kinesis Consumer 的速率?
Posted
技术标签:
【中文标题】有没有办法限制 Kinesis Consumer 的速率?【英文标题】:Is there any way to rate limit Kinesis Consumer? 【发布时间】:2021-07-16 09:44:55 【问题描述】:我有一个用例,我想调用一个使用速率限制的外部 API。现在假设我们可以每 5 秒调用 10 个 API。
我想使用 Kinesis Data Stream 来完成我的用例。我将使用流上的 Kinesis Producer 生成事件,并且我想设置多个从同一流中消费的消费者。然后,这些消费者应根据速率限制调用外部 API。
问题是因为我有 2 个消费者实例作为 2 个不同的 EC2 实例运行,我想不出任何方法可以让这 2 个消费者一起工作并决定他们只需要对外部进行 10 次调用API 每 5 秒一次。
【问题讨论】:
【参考方案1】:一个适合的解决方案是使用分布式速率限制器库,下面的库是一个支持redis滑动窗口速率限制器的库:https://github.com/mokies/ratelimitj redis/elastic-cache 需要额外的基础设施和成本
【讨论】:
以上是关于有没有办法限制 Kinesis Consumer 的速率?的主要内容,如果未能解决你的问题,请参考以下文章
有没有办法为 kinesis firehose 保存到 s3 的文件指定文件扩展名
将 AWS Lambda 数据推送到 Kinesis Stream
按事件时间对 Kinesis firehose S3 记录进行分区