Страница 1 из 1

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

Добавлено: 2020.03.22, 00:55
MarkL
Ситуация: Есть 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) ничего изменить нельзя. В том числе попросить слать меньше запросов в один момент.

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

Добавлено: 2020.03.22, 11:13
yiiliveext
Если запросы однотипные и подряд, то сделайте в апи возможность вставлять/обновлять записи пачками.