@andrei_pro

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

Всем привет.

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

Стек: nginx, php-fpm, rabbitmq
  • Вопрос задан
  • 651 просмотр
Пригласить эксперта
Ответы на вопрос 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 и настроить кластеризацию
Ответ написан
Ваш ответ на вопрос

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

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