Рубрики
Без рубрики

Как решить проблему объединения базы данных в функции AWS Lambda

Как решить проблему объединения базы данных в функции AWS Lambda

Автор оригинала: Ryan Wong.

Люди во всем мире Rave о том, насколько хорошим неверным является, но избегать ключевой проблемы, которая является тем, как обрабатывать много экземпляров лямбда.

Обычно управляемость многих запросов сразу не является проблемой, но ваша лямбда обычно интегрируется со многими сервисами (т. Е. База данных, SNS, электронная почта и т. Д.).

SNS, Email Service может обрабатывать много запросов без проблем.

С другой стороны, ваша база данных не может.

Обычно в нормальном применении у нас есть объединение соединения с базой данных. Это позволяет вашему приложению получает 100+ запросов и запросов процесса с менее чем 100 соединениями в базе данных.

В то время как в лямбде, когда вы получаете более 100+ запросов, запрос настолько быстры, они раскручивают много лямбда для обработки запросов.

В худшем случае он отправляет 100 запросов подключения к базе данных, и он отрицает, что все запросы проходят максимум.

Я провожу бесчисленные часы, проходящие через StackoverFlow и не существовало никакого решения.

То, что я закончил, это следующее:

  1. Перед обработчиком я создал контейнер IOC с подключением к серверу PGBince.

2) Я настроил PGBount, чтобы подключиться к моей базе данных.

3) Я увеличил максимальные соединения как на PGBounce, так и в базе данных.

Теперь, когда 100+ Lambda подключаются к PGBouncer, он обрабатывает объединение базы данных для меня, и все запросы обрабатываются.

Теперь у вас есть узкое место в PGBounce, но это легче решить, чем принуждать лямбда использовать тот же экземпляр.

Если вы хотите больше поговорить об этом, вы можете забронировать время со мной по адресу http://manaknightdigital.com/codentementor.html