@kristine-bladvin

Как вынести запросы rest api на постоянное соединение?

Доброго дня разрабатываю rest api для будущего реактивного интерфейса сайта.
В качестве backend запросов только платформа php, из-за особенностей битрикса.
И уже сейчас на этапе создания возникли проблемы с max connection mysql, их просто слишком много и вечно сыпятся ошибки to many connection или conection refused. Оптимизировать сервер нет возможности, да и считаю упадет не хватить мощности на кучу соединений от http запросов.
К сожалению не перейти на express\nodejs в которой проблема max connection уже решена(там одно).

Как решить эту проблему? Хочется вынести одно постоянно соединение api(или части запросов) на одно постоянное соединение. Остальной сайт и странички будут работать с множественными соединениями.

Платформа bitrixEnv(cent os 7), выделенный хостинг яндекс(сервак вполне достаточный), apache + nginx
  • Вопрос задан
  • 161 просмотр
Пригласить эксперта
Ответы на вопрос 2
ipatiev
@ipatiev Куратор тега PHP
Потомок старинного рода Ипатьевых-Колотитьевых
Ответ тут очень простой - никак.
Мало того, что вешать все запросы на одно соединение просто глупо, когда БД может обрабатывать их тыщи. И та же нода, если делается по-уму, то использует пул соединений, а не одно.
Но, главное, РНР так не работает.

И проблема здесь не в количестве соединений, а в том, кто писал код.
Если в коде используется только одно соединение за все время работы скрипта (а не открывает новое соединение на каждый запрос, как у всех гениальных скриптописателей), и база данных устроена по уму (не тормозит), то хватит даже самого дохлого хостинга с лимитом в 5 одновременных подключений. Просто потому что любой запрос к рест апи должен работать не дольше 0.01 секунды. И любые проблемы будут появляться только при частоте обращений больше 100 в секунду.

Соответственно, вместо фантазий про "одно соединение" надо переделывать кривой код и базу данных.
Ответ написан
Комментировать
@Vitsliputsli
Хочется вынести одно постоянно соединение api(или части запросов) на одно постоянное соединение. Остальной сайт и странички будут работать с множественными соединениями.

Выделите для api отдельный пул php-fpm воркеров из 1 штуки.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
28 мар. 2024, в 18:16
1000 руб./за проект
28 мар. 2024, в 18:15
90000 руб./за проект
28 мар. 2024, в 18:05
5000 руб./за проект