Динамический ограничитель скорости, чтобы избежать дБ - PullRequest
0 голосов
/ 15 мая 2019

У нас есть сервис, который имеет один единственный API (имеет дело с одной сущностью), avg latency = 400 мс и один пакетный API, который обрабатывает около 2000 сущностей за один вызов [latency = 200s].Оба API читают и записывают в таблицы БД.Объем, обрабатываемый обоими интерфейсами, очень отличается.У единственного api есть хорошо определенный образец, у которого есть ежедневные максимумы и минимумы в увеличениях и уменьшаются с постоянной скоростью.Таблицы ddb способны очень хорошо обрабатывать этот трафик.Проблема возникает, когда объем API начинает получать объем около 2-3 часов в день и обрабатывает в 20 раз больше объектов в секунду по сравнению с другими API.Это влияет на запись / чтение таблиц БД, которые не могут автоматически масштабироваться с такой быстрой скоростью..

Мы думаем о таких опциях, как ограничение скорости, чтобы настроить наш трафик на автоматическое масштабирование БД.Мы не хотим иметь фиксированную ставку, потому что это повлияет на SLA нашего клиента (инструмент для работы с оператором).Есть ли способ иметь динамические ограничения скорости, которые могут масштабироваться в соответствии с текущим трафиком и позволят дБ достаточно времени для автоматического масштабирования?

1 Ответ

0 голосов
/ 15 мая 2019

Пожалуйста, попробуйте посмотреть решение, предоставляемое Netflix Limit Concurrency Limits

А более подробную информацию об этом можно найти в этой замечательной статье Недостаточная производительность

...