Docker上的RabbitMQ:当给定端口时,Pika挂起连接,连接被拒绝,没有端口

我正尝试使用pika连接到队列,在我的本地盒子上运行,并在docker容器中运行rabbitmq。 我可以访问http://0.0.0.0:15677上的rabbitmq,同时使用curl命令并在浏览器中查看它,所以我知道rabbitmq看起来好像运行正常 – 但是,我无法使用python连接它。

当我不在我的pika.ConnectionParemeters中包含端口时,连接立即被彻底拒绝。 当我包含端口时,连接挂起,从不显示在rabbitmq的一侧。 不知道docker或pika是否会有一些奇怪的事情发生,但值得一提的是,我的代码连接到一个不是docker容器的rabbitmq服务器。

我正在运行最新版本的OSX,并使用python 2.7和pika 0.10.0。

RMQ_URL = '0.0.0.0' HOST_QUEUE = 'snarfer' VHOST = 'beta' RMQ_PORT = 15677 ROUTING_KEY = 'snarfer.discovery' self.connection = pika.BlockingConnection(pika.ConnectionParameters( host=s.RMQ_URL, virtual_host=s.VHOST, port=s.RMQ_PORT)) 

***编辑:添加凭据到ConnectionParameters什么也不做。

如果您为AMQP客户端使用pipe理Web UI的TCP端口,则无法工作:RabbitMQ预计该端口上的HTTP请求,而不是AMQP帧。 这就是为什么客户端似乎挂起。

如果您不指定TCP端口,则将使用默认的AMQP端口5672。 根据pipe理UI端口(15677),我想你的RabbitMQ监听端口5677上的AMQP连接,因为默认情况下,pipe理插件监听$ amqp_port + 10000。

因此请尝试使用RMQ_PORT = 5677

如果不起作用,请仔细检查您的RabbitMQconfiguration和/或查看pipe理UI以找出AMQP端口。