Сбой соединения RabbitMq с 127.0.0.1:5672
В настоящее время я следую учебнику rabbitmq и сталкиваюсь с проблемой. Независимо от того, насколько близко я следую руководству, я получаю эту ошибку, пытаясь запустить мои send.py и receive.py:
pika.exceptions.ConnectionClosed: Connection to 127.0.0.1:5672 failed: [Errno 61] Connection refused
Это send.py:
#!/usr/bin/env python
import pika
connection = pika.BlockingConnection(pika.ConnectionParameters(host='localhost'))
channel = connection.channel()
channel.queue_declare(queue='hello')
channel.basic_publish(exchange='',
routing_key='hello',
body='Hello World!')
print(" [x] Sent 'Hello World!'")
connection.close()
Это receive.py:
#!/usr/bin/env python
import pika
connection = pika.BlockingConnection(pika.ConnectionParameters(host='localhost'))
channel = connection.channel()
channel.queue_declare(queue='hello')
def callback(ch, method, properties, body):
print(" [x] Received %r" % body)
channel.basic_consume(callback,
queue='hello',
no_ack=True)
print(' [*] Waiting for messages. To exit press CTRL+C')
channel.start_consuming()
Я не могу на всю жизнь понять, что я делаю неправильно. Я посмотрел на другой пост здесь, который задает аналогичный вопрос, но до сих пор не играли в кости.
4 ответа
Я использовал тот же учебник, что и они пропустили зависимость для установки и запуска rabbitmq
После выполнения brew install rabbitmq
а потом brew services start rabbitmq
тогда работает подключение к localhost на Пике
Если вы используете docker для запуска rabbitmq и следовали инструкциям в руководстве и на странице docker ( https://github.com/docker-library/docs/tree/master/rabbitmq), вы можете столкнуться с этой проблемой. Когда вы запускаете контейнер без указания параметра сопоставления портов ("-p"), привязка порта будет действительна только внутри контейнера. Вы можете проверить это, выполнив "docker exec" в контейнере, а затем запустив netstat.
Итак, вам нужно перезапустить контейнер rabbitmq и указать сопоставление портов. Пример:
docker run -d --hostname my-rabbit --name some-rabbit -p 5672:5672 rabbitmq: последний
Вы используете Docker для запуска вашего rabbitmq? Если да, я предлагаю вам дважды проверить привязку портов. Например: -p 5672:5672
Следующие шаги исправили это для меня:
- В вашем терминале запустите
brew info rabbitmq
. Должно отображаться, установлены ли все зависимости (установите недостающие):
Убедитесь, что файл .zshrc находится в вашем каталоге usr. Если у вас его нет, то запустите
touch ~/.zshrc
в терминале.Убедитесь, что в вашем файле .zshrc есть одна из этих двух строк:
(Мак Интел)
export PATH=$PATH:/usr/local/sbin
(МАК Кремний)
export PATH=$PATH:/opt/homebrew/sbin
Наконец, в вашем терминале запустите
brew services restart rabbitmq
и протестируй еще раз