2017-02-09 5 views
1

с этой командойЯ не могу подключиться к серверу порт RabbitMQ 5672

php bin/console rabbitmq:consumer -w upload_picture 

У меня есть эта проблема.

[ErrorException] 
stream_socket_client(): unable to connect to tcp://localhost:5672 (Aucune 
connexion n'a pu etre établie car l'ordinateur cible lÆa expressÚment 
refusée. 

Так что я не могу подключиться к серверу RabbitMQ

config.yml

old_sound_rabbit_mq: 
connections: 
    default: 
     host:  'localhost' # hostname and port of the rabbitmq server 
     port:  5672 
     user:  'guest' 
     password: 'guest' 
     vhost: '/' 
     lazy:  true # a lazy connection avoids unnecessary connections to the broker on every request 
     connection_timeout: 3 
     read_write_timeout: 3 
     keepalive: false 
     heartbeat: 0 
producers: 
    upload_picture: 
     connection:  default # connects to the default connection configured above 
     exchange_options: {name: 'upload_picture', type: direct} 
consumers: 
    upload_picture: 
     connection:  default # connects to the default connection configured above 
     exchange_options: {name: 'upload_picture', type: direct} 
     queue_options: {name: 'upload_picture'} 
     callback:   upload_picture_service # the UploadPictureConsumer defined below 
+0

ваша команда подключается к локальному хосту, если ваш порт 5672 не опубликован контейнером на хосте, он не сработает. Покажите 'docker port your_rabbitmq_container', вот документ https://docs.docker.com/engine/reference/commandline/port/ – user2915097

+0

На машине rabbitmq введите' netstat -a' и убедитесь, что он прослушивает этот порт и не только в UNIX-сокете. – DanFromGermany

+0

порт 5672 не существует в списке (netstat -a) –

ответ

2

Основываясь на ваш комментарий

7c01193b2f74 projecttest_queue "docker-entrypoint..." 24 hours ago Up 5 hours 4369/tcp, 5671/tcp, 25672/tcp, 0.0.0.0:55672->5672/tcp, 0.0.0.0:32768->15672/tcp 

в порту, что проект прослушивает является 55672 - см. 0.0.0.0:55672->5672/tcp

Поэтому вам необходимо обновить ваш проект PHP для подключения к localhost:55672 вместо просто localhost:5672

+0

К сожалению, эта же проблема с 55672 –

+0

В этом случае проверьте, на каком IP-сервере работает сервер rabbitmq. Если вы предоставили 'config.yml' с сервера rabbitmq, то вам нужно изменить хост на' 0.0.0.0', так что rabbitmq ** НЕ ** прослушивает 'localhost', потому что он не будет доступен извне контейнер докеров –

0

Вы можете найти непосредственно порт вам необходимо связаться с

docker inspect --format '{{ (index (index .NetworkSettings.Ports "5672/tcp") 0).HostPort }}' rabbitmq_container

См How to get ENV variable when doing Docker Inspect для получения более подробной информации о том, как получите определенное значение от docker inspect

 Смежные вопросы

  • Нет связанных вопросов^_^