Skip to main content
 首页 » 编程设计

python之无法使用鼠兔连接到远程rabbitmq服务器

2025年05月04日29jyk

我正在尝试使用 pika 连接到我的远程 rabbitmq,但出现 Connectionclosed() 错误。我已经为 guest 用户在 rabbit.config 中进行了必要的更改,以允许所有连接,并且相同的连接也适用于我的 Java 代码。我什至尝试创建一个具有所有权限的新用户并连接它,但它仍然不起作用。不过,相同的代码在我的本地主机上运行良好。任何人都可以让我知道我在这里做错了什么吗?

def queue_message(message, queue): 
    credentials = pika.PlainCredentials('xxxx', 'xxxx') 
    parameters = pika.ConnectionParameters('remote-server', 
                                   5672, 
                                    '/', 
                                    credentials) 
   connection = pika.BlockingConnection(parameters) 
   channel = connection.channel() 
   channel.queue_declare(queue='python_update_queue') 
   channel.basic_publish(exchange='update.fanout', 
                  body=message) 
   logger.info("Sent message: {} to queue: {}".format(message, queue)) 
   print 'message sent' 
   connection.close() 

下面是我得到的错误:

app/project/rabbitmq.py" in queue_message 
connection = pika.BlockingConnection(parameters) 
env/lib/python2.7/site-packages/pika/adapters/blocking_connection.py" in __init__ 
     self._process_io_for_connection_setup() 
env/lib/python2.7/site-packages/pika/adapters/blocking_connection.py" in ss_io_for_connection_setup 
                        self._open_error_result.is_ready) 
env/lib/python2.7/site-packages/pika/adapters/blocking_connection.py" in _flush_output 
         raise exceptions.ConnectionClosed 

请您参考如下方法:

将连接超时添加到您的连接参数 - 您可能会遇到超时问题,即跨网络的连接速度不够快。

此外,您的代码显式调用了 connection.close() ... 所以这可能就是您的连接正在关闭的原因