RabbitMQ 返回 404 被代理关闭

RabbitMQ returning 404 closed by broker

我有一个 RabbitMQ docker 图像 i 运行 使用以下命令:

docker pull rabbitmq

sudo  docker run -d -p 5672:5672 -p 15672:15672  --name rabbitmq rabbitmq     

之后我尝试 运行 带有 pika 模块的 python 客户端来连接到 rabbitmq 服务器。

在启动服务器之前它给出了 ConnectionRefusedError 但是在我得到 运行 图像之后我得到以下错误:

pika.exceptions.ChannelClosedByBroker: (404, "NOT_FOUND - no queue 'logs' in vhost '/'")

这是我用来建立连接的 python 脚本:

from connection_manager import ConnectionManager
from mq_handler import MessageBroker

rabbit_mq_conn = ConnectionManager.init_connection()
mb = MessageBroker(rabbit_mq_conn)

if __name__ == "__main__":
    mb.run()

这是一段与 pika 和 Rabbit MQ docker 容器一起使用的代码。它至少解决了您似乎遇到的一个问题,即在使用之前未创建队列。

import pika 

url = <rabbitMQ URL>
params = pika.URLParameters(url)
params.socket_timeout = 5

connection = pika.BlockingConnection(params) # Connect to CloudAMQP
channel = connection.channel() # start a channel
channel.queue_declare(queue='my_channel') # Declare a queue
# send a message

channel.basic_publish(exchange='', routing_key='my_channel', body='My message')
connection.close()