Сбой соединения 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

Следующие шаги исправили это для меня:

  1. В вашем терминале запуститеbrew info rabbitmq. Должно отображаться, установлены ли все зависимости (установите недостающие):
  1. Убедитесь, что файл .zshrc находится в вашем каталоге usr. Если у вас его нет, то запуститеtouch ~/.zshrcв терминале.

  2. Убедитесь, что в вашем файле .zshrc есть одна из этих двух строк:

    (Мак Интел)export PATH=$PATH:/usr/local/sbin

    (МАК Кремний)export PATH=$PATH:/opt/homebrew/sbin

  3. Наконец, в вашем терминале запуститеbrew services restart rabbitmqи протестируй еще раз

Другие вопросы по тегам