@MarkLb

Как решить проблему с множеством одномоментных подключений по API, которые исчерпывают лимит подключений?

Ситуация: Есть API, в нём метод для добавления данных, который обёрнут Mutex'ом для избежания "состояния гонки". Один из пользователей API в один момент 2-3 раза в день делает сотни обращений для добавления данных.

Проблема: Как результат, все запросы пользователя ставятся в очередь Mutex и обрабатываются.
Из-за этого забиваются подключения к базе данных и другие пользователи не могут получить доступ:
"PDOException: SQLSTATE[HY000] [1040] Too many connections in ...


Вопрос: Как решить проблему, чтобы для других пользователей оставались подключения?

Условия:
1. Из-за соображений безопасности не хочется выставлять большой max_connections(сейчас он 500). Тем более ситуация возникает 2-3 раза в день. Возможно стоит создать для API отдельного пользователя БД и выставить там ~1000-2000 подключений?
2. Со стороны клиента(пользователя API) ничего изменить нельзя. В том числе попросить слать меньше запросов в один момент.
  • Вопрос задан
  • 185 просмотров
Пригласить эксперта
Ответы на вопрос 1
@vitaly_il1
DevOps Consulting
Чтобы решить проблемы, где-то что-то придется поменять :-)
Я вижу только вариант увеличить max_connections.
Long term - менять на стороне клиентов, чтобы они скидывали запросы на добавление в файл или очередь, а не напрямую в БД.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы