Задать вопрос
@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) ничего изменить нельзя. В том числе попросить слать меньше запросов в один момент.
  • Вопрос задан
  • 201 просмотр
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Java-разработчик
    8 месяцев
    Далее
  • Shultais Education
    Основы SQL
    3 месяца
    Далее
  • OTUS
    PHP Developer. Professional
    5 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
@vitaly_il1
DevOps Consulting
Чтобы решить проблемы, где-то что-то придется поменять :-)
Я вижу только вариант увеличить max_connections.
Long term - менять на стороне клиентов, чтобы они скидывали запросы на добавление в файл или очередь, а не напрямую в БД.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы