动态速率限制器可避免db节流

时间:2019-05-15 18:12:15

标签: java performance rate-limiting

我们提供的服务具有一个单一的API(与单个实体交易),平均延迟= 400ms和一个批处理api,可在一个调用中处理大约2000个实体[延迟= 200s]。 api均读取和写入db表。这两个API处理的音量大不相同。奇异的api具有定义明确的模式,该模式每天不断增加和减少每天的最大值和最小值。 ddb表能够很好地处理此流量。问题是当批量api每天开始接收大约2-3小时的数据量,并且每秒处理的实体数量是其他api的20倍时。这会影响无法以这种快速速率自动缩放的数据库表的写入/读取。

我们正在考虑诸如速率限制之类的选项,以实现调整流量以符合db自动缩放的要求。我们不想采用固定费率,因为这会影响客户的SLA(面向操作人员的工具)。有没有一种方法可以具有动态速率限制,该限制可以根据当前流量进行扩展,并允许db有足够的时间进行自动扩展?

1 个答案:

答案 0 :(得分:0)

请尝试看看Netflix Concurrency Limits

提供的解决方案

有关此内容的更多详细信息,请参见这篇精彩的文章Performance Underload