AMQPConnectionError 使用 Pika 和 RabbitMQ 与 Asyncore - 为什么?

Mar*_*ver 1 python rabbitmq pika

为什么我在使用 Asyncore 而不是使用 BlockingConnection 时会收到 AMQPConnectionError?

如果只是“Asyncore 在 Windows 中不起作用”,那就这样吧,尽管我还没有找到任何禁止使用它的东西。(这个问题与平台无关。)为了便于迁移,我想使用在 Python 2.7 和 Python 3.4 上都可用的异步库,并且 Asyncore 应该在这里工作。

我将 RabbitMQ 3.2.4 与 Python 2.7.6 和 pika 0.9.13 一起使用。用户和管理员运行级别没有区别。除了上面更新的警告消息外,记录器在代码中的存在与否与错误无关。在 Linux (Ubuntu 14.04) 和 Windows 7 中也会出现相同的错误,因此这不是平台问题。

因为使用 BlockingConnection 的 pika 性能相当差,所以我想尝试使用 Asyncore 适配器。对于测试床设置来说似乎非常简单(我尝试给它提供凭据,尽管这无关紧要,如果不提供,回调将被剔除......无论哪种方式它都会失败。):

根据教程使用 BlockingConnection - 它可以工作,但吞吐量低:

connection = pika.BlockingConnection(pika.ConnectionParameters(host='localhost'))
Run Code Online (Sandbox Code Playgroud)

使用 AsyncoreConnection - 我尝试过的所有变体都立即失败:

connection = pika.AsyncoreConnection(pika.ConnectionParameters(host='localhost'))
Run Code Online (Sandbox Code Playgroud)

错误:

connection = pika.BlockingConnection(pika.ConnectionParameters(host='localhost'))
Run Code Online (Sandbox Code Playgroud)

Ank*_*pta 8

尝试下面提到的步骤。我在我的 centos 机器上遇到了同样的问题。

  1. 须藤 yum 安装 rabbitmq-server
  2. 须藤服务 rabbitmq-server 重启