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

标签 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'))

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

connection = pika.AsyncoreConnection(pika.ConnectionParameters(host='localhost'))

错误:

WARNING:pika.connection:Could not connect, 0 attempts left
Traceback (most recent call last):
  File "C:\workspace\send.py", line 8, in <module>
    connection = pika.AsyncoreConnection(pika.ConnectionParameters(host='localhost'))
  File "C:\Python27\lib\site-packages\pika\adapters\asyncore_connection.py", line 135, in __init__
    stop_ioloop_on_close)
  File "C:\Python27\lib\site-packages\pika\adapters\base_connection.py", line 62, in __init__
    on_close_callback)
  File "C:\Python27\lib\site-packages\pika\connection.py", line 590, in __init__
    self.connect()
  File "C:\Python27\lib\site-packages\pika\connection.py", line 707, in connect
    self.callbacks.process(0, self.ON_CONNECTION_ERROR, self, self)
  File "C:\Python27\lib\site-packages\pika\callback.py", line 61, in wrapper
    return function(*tuple(args), **kwargs)
  File "C:\Python27\lib\site-packages\pika\callback.py", line 92, in wrapper
    return function(*args, **kwargs)
  File "C:\Python27\lib\site-packages\pika\callback.py", line 232, in process
    callback(*args, **keywords)
  File "C:\Python27\lib\site-packages\pika\connection.py", line 1192, in _on_connection_error
    raise exceptions.AMQPConnectionError(self.params.connection_attempts)
pika.exceptions.AMQPConnectionError: 1

最佳答案

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

  1. sudo yum 安装 rabbitmq-server
  2. sudo 服务 rabbitmq 服务器重启

关于python - AMQPConnectionError 使用 Pika 和 RabbitMQ 与 Asyncore - 为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23537466/

相关文章:

python - 拆分字符串并生成键值对

java - 即使没有依赖关系,Spring Bootrabbitmq 连接也被拒绝

c - AMQP RabbitMQ 消费者互相阻塞?

python - 与 RabbitMQ 建立 TLS 连接时如何调试 "pika.exceptions.AuthenticationError: EXTERNAL"错误?

python - 正则表达式中未转义的左大括号已弃用,在正则表达式中通过;

python - 禁用 lxml 中 '--' 的注释检查

python - 为什么 `a += x` 和 `a = a + x` 对于嵌套列表的实现方式不同?

amazon-web-services - AWS Lambda 上的 RabbitMq 使用者

Python RabbitMQ sender.py 远程队列

python - RabbitMQ pika.exceptions.ConnectionClosed