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()
我有一个 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()