Снижение пропускной способности AWS lambda с помощью триггера SQS

Наша система различает то, что мы называем «одиночными событиями» и «массовыми событиями». Единичные события являются результатом взаимодействия с пользователем и происходят по нескольку одновременно, время от времени. Массовые события являются результатом действий администратора и могут содержать сотни событий, которые происходят практически в одно и то же время.

Все события поступают в лямбду, которая обнаруживает массовые события и отправляет их в тему FIFO SNS. Далее идет очередь SQS FIFO, подписанная на SNS, за которой следует вторая лямбда, запускаемая SQS. Вторая лямбда отправляет в систему массовые события. Нам нужно, чтобы массовые события входили в систему медленно, чтобы мы не превысили ограничение скорости API сторонней нисходящей системы.

Мы экспериментируем с размером пакета для лямбда-триггера SQS и устанавливаем зарезервированный параллелизм на втором лямбде на низкое значение, но, похоже, нам нужно еще немного замедлить работу. Мы рассматриваем возможность добавления таймера ожидания к первой лямбда-выражению, чтобы он вставлял 5-10-секундную задержку перед отправкой каждого отдельного события в SNS. Это должно более драматично распределить события во времени, и кажется, что это может сработать, но подход не очень удовлетворительный.

Есть ли другие варианты снижения пропускной способности? Любые идеи поощряются. Спасибо.

0 ответов

Другие вопросы по тегам