Задать вопрос
@andrei_pro

PHP постоянное соединение?

Всем привет.

Возможно ли сделать постоянное соединение с сервисом очередей? На высокой нагрузке возникают проблемы с коннектом.

Стек: nginx, php-fpm, rabbitmq
  • Вопрос задан
  • 672 просмотра
Подписаться 2 Средний Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 2
politon
@politon
HTML5,CSS3,JS,PHP,SQL,API,canvas,animation...
Ответ написан
Комментировать
А вы вообще как работаете с очередями? Думаете с постоянным соединением не будет проблем с отваливанием?
1. Юзайте сишный клиент для RabbitMQ, а не PHP-библиотеку.
2. Юзайте подписку на очереди, а не долбите в цикле проверку обновлений, там просто делается подписка на обновления и в нее передается функция обработчик, которая молниеносно выполнится в момент получения сообщений. Пример можно глянуть вот тут
3. Можно проверять соединение примерно вот так (если у вас библиотека amqp)

if ($conn->isConnected()) {
    echo "Connected to the broker \o/";
}
else {
    echo "Cannot connect to the broker";
}


ну и реконектить...

4. Если несколько серверов, то наверно имеет смысл везде поставить локально RabbitMQ и настроить кластеризацию
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽