【问题标题】:RabbitMQ on Docker: Pika hangs on connection when given port, connection refused without portDocker上的RabbitMQ:Pika在给定端口时挂起连接,没有端口的连接被拒绝
【发布时间】:2016-07-19 22:24:40
【问题描述】:

我正在尝试使用 pika 连接到队列,在我的本地机器上运行,并且 rabbitmq 在 docker 容器中运行。我可以使用 curl 命令和在 Web 浏览器中查看 http://0.0.0.0:15677 上的 rabbitmq,所以我知道 rabbitmq 看起来运行良好 - 但是,我无法使用 python 连接到它。

当我没有在我的 pika.ConnectionParemers 中包含端口时,连接会立即被彻底拒绝。当我确实包含端口时,连接挂起并且永远不会显示在rabbitmq的一侧。不确定 docker 或 pika 是否有什么奇怪的地方,但值得一提的是,我的代码连接到一个其他方面相同的 rabbitmq 服务器,它不是 docker 容器。

我正在运行最新版本的 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 添加凭据不会执行任何操作。

【问题讨论】:

  • 您的 ConnectionParameters 是什么样的?主机的价值是什么?
  • ldg 所说的 - 也是代码

标签: python docker rabbitmq pika connection-refused


【解决方案1】:

如果您为您的 AMQP 客户端使用管理 Web UI 的 TCP 端口,它将无法工作:RabbitMQ 期望该端口上的 HTTP 请求,而不是 AMQP 帧。这就是客户端似乎挂起的原因。

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

因此尝试使用RMQ_PORT = 5677

如果它不起作用,请仔细检查您的 RabbitMQ 配置和/或查看管理 UI 以找出 AMQP 端口。

【讨论】:

    猜你喜欢
    • 2019-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多