为什么我不能用Python建立与RabbitMQ的连接?

11

我正在学习如何使用RabbitMQ。我在我的MacBook上运行Rabbit-MQ服务器,试图连接Python客户端。我按照这里的安装说明进行操作。现在,我正在执行这里所示的教程。

该教程要求运行以下客户端:

#!/usr/bin/env python
import pika

connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()

然而,当我尝试建立连接时,出现了以下错误:

WARNING:pika.adapters.base_connection:Connection to ::1:5672 failed: [Errno 61] Connection refused

正如您所看到的,rabbitmq-server 在另一个窗口中似乎运行良好:

  % rabbitmq-server

              RabbitMQ 3.3.1. Copyright (C) 2007-2014 GoPivotal, Inc.
  ##  ##      Licensed under the MPL.  See http://www.rabbitmq.com/
  ##  ##
  ##########  Logs: /usr/local/var/log/rabbitmq/rabbit@localhost.log
  ######  ##        /usr/local/var/log/rabbitmq/rabbit@localhost-sasl.log
  ##########
              Starting broker... completed with 10 plugins.



  % ps -ef | grep -i rabbit
  973025343 37253     1   0  2:47AM ??         0:00.00 /usr/local/Cellar/rabbitmq/3.3.1/erts-5.10.3/bin/../../erts-5.10.3/bin/epmd -daemon
  973025343 37347   262   0  2:49AM ttys001    0:02.66 /usr/local/Cellar/rabbitmq/3.3.1/erts-5.10.3/bin/../../erts-5.10.3/bin/beam.smp -W w -K true -A30 -P 1048576 -- -root /usr/local/Cellar/rabbitmq/3.3.1/erts-5.10.3/bin/../.. -progname erl -- -home /Users/myUser -- -pa /usr/local/Cellar/rabbitmq/3.3.1/ebin -noshell -noinput -s rabbit boot -sname rabbit@localhost -boot /usr/local/Cellar/rabbitmq/3.3.1/releases/3.3.1/start_sasl -kernel inet_default_connect_options [{nodelay,true}] -rabbit tcp_listeners [{"127.0.0.1",5672}] -sasl errlog_type error -sasl sasl_error_logger false -rabbit error_logger {file,"/usr/local/var/log/rabbitmq/rabbit@localhost.log"} -rabbit sasl_error_logger {file,"/usr/local/var/log/rabbitmq/rabbit@localhost-sasl.log"} -rabbit enabled_plugins_file "/usr/local/etc/rabbitmq/enabled_plugins" -rabbit plugins_dir "/usr/local/Cellar/rabbitmq/3.3.1/plugins" -rabbit plugins_expand_dir "/usr/local/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand" -os_mon start_cpu_sup false -os_mon start_disksup false -os_mon start_memsup false -mnesia dir "/usr/local/var/lib/rabbitmq/mnesia/rabbit@localhost" -kernel inet_dist_listen_min 25672 -kernel inet_dist_listen_max 25672

我该如何建立这个连接?问题出在哪里?

1个回答

21

客户端正在尝试使用IPv6本地主机(::1:5672)进行连接,而服务器正在侦听IPv4本地主机({"127.0.0.1", 5672})。

尝试将客户端更改为连接到IPv4本地主机即可;

connection = pika.BlockingConnection(pika.ConnectionParameters('127.0.0.1'))

啊!成功了。谢谢!这个菜鸟教程给我带来了误导! - Saqib Ali

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接