Pika/RabbitMQ连接问题 - 运行VMWare CentOS 6.3

2 投票
1 回答
2446 浏览
提问于 2025-04-17 18:06

我刚在VMWare上安装了一个新的CentOS 6.3系统。网络正常,其他功能也都没问题。

我想尝试一下RabbitMQ,但在他们的教程第一步就卡住了:

http://www.rabbitmq.com/tutorials/tutorial-one-python.html

简单来说,我做了以下几步:

  1. 设置了Linux系统
  2. 安装了RabbitMQ所需的所有依赖,比如erlang/esel
  3. 尝试他们的Hello World教程

实际上,我在这一行出错了:

import pika
pika.BlockingConnection()

我收到这个错误:

> Traceback (most recent call last):   File "<stdin>", line 1, in
> <module>   File
> "/usr/lib/python2.6/site-packages/pika/adapters/blocking_connection.py",
> line 33, in __init__
>     BaseConnection.__init__(self, parameters, None, reconnection_strategy)   File
> "/usr/lib/python2.6/site-packages/pika/adapters/base_connection.py",
> line 50, in __init__
>     reconnection_strategy)   File "/usr/lib/python2.6/site-packages/pika/connection.py", line 170, in
> __init__
>     self._connect()   File "/usr/lib/python2.6/site-packages/pika/connection.py", line 228, in
> _connect
>     self.parameters.port or  spec.PORT)   File "/usr/lib/python2.6/site-packages/pika/adapters/blocking_connection.py",
> line 37, in _adapter_connect
>     BaseConnection._adapter_connect(self, host, port)   File "/usr/lib/python2.6/site-packages/pika/adapters/base_connection.py",
> line 58, in _adapter_connect
>     self.socket.connect((host, port))   File "<string>", line 1, in connect socket.error: 
[Errno 111] Connection refused

我尝试了很多解决办法,但似乎没有找到其他人遇到同样问题并发帖讨论的情况。唉,看来我可能是第一个遇到这个问题的人!

不过,目前为止,我觉得我还没有动过RabbitMQ的库,所以这可能只是Pika的问题。

这是我在Wireshark中看到的,关注的是127.0.0.1:

1   0.000000    127.0.0.1   127.0.0.1   TCP 58748 > amqp [SYN] Seq=0 Win=32792 Len=0 MSS=16396 TSV=41371814 TSER=0 WS=6
2   0.000079    127.0.0.1   127.0.0.1   TCP amqp > 58748 [RST, ACK] Seq=1 Ack=1 Win=0 Len=0

如果需要,我可以提供更多Wireshark的信息,随时告诉我。

1 个回答

3

[RST, ACK]这个序列看起来像是连接被拒绝了,但可能会让人误解。我假设在安装后,RabbitMQ服务正常启动了,并且你可以运行rabbitmqctl status并得到一个合理的结果?如果它没有运行,你可能需要先执行/sbin/service rabbitmq-server start来启动它。

假设你的消息中间件(broker)正在运行,接下来我建议你查看RabbitMQ的日志。如果你不确定日志的位置,可以参考相关文档,看看连接是否被允许。如果日志中没有记录到连接(而你又没有修改日志级别),那么你看到的情况可能是其他软件(比如防火墙、iptables等)阻止了连接。

撰写回答