我已经使用引用在Ubuntu 16.04服务器上安装和配置了RabbitMQ .由于默认用户默认guest只允许在本地连接,因此我添加了一个具有管理员标记的新用户并设置了其权限,以便它可以访问/虚拟主机.我启用了RabbitMQ管理控制台.我已成功登录我创建的用户.当我通过localhost使用我创建的用户连接到RabbitMQ时,我也能够连接它.但是当我尝试使用以下代码通过其他服务器连接RabbitMQ服务器时:
import pika
credentials = pika.PlainCredentials('new_user', 'new_pass')
parameters = pika.ConnectionParameters('<server's Public IP>', 5672,'/',credentials)
connection = pika.BlockingConnection(parameters)
Run Code Online (Sandbox Code Playgroud)
它抛出一个错误:
回溯(最近一次调用最后一次):文件"",第1行,在文件"/Library/Python/2.7/site-packages/pika/adapters/blocking_connection.py",第339行,在init self._process_io_for_connection_setup()文件中/Library/Python/2.7/site-packages/pika/adapters/blocking_connection.py",第374行,在_process_io_for_connection_setup self._open_error_result.is_ready中)文件"/Library/Python/2.7/site-packages/pika/adapters/blocking_connection. py",第395行,在_flush_output中引发exceptions.ConnectionClosed()pika.exceptions.ConnectionClosed
相同的代码工作正常,当我在服务器上运行的代码,其上的RabbitMQ安装和替换<server's Public IP>用0.0.0.0.
输出 sudo netstat -nltp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:25672 0.0.0.0:* LISTEN 18021/beam
tcp 0 0 0.0.0.0:4369 0.0.0.0:* LISTEN 18110/epmd
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1230/sshd
tcp 0 0 0.0.0.0:15672 0.0.0.0:* LISTEN 18021/beam
tcp6 0 0 :::5672 :::* LISTEN 18021/beam
tcp6 0 0 :::4369 :::* LISTEN 18110/epmd
tcp6 0 0 :::22 :::* LISTEN 1230/sshd
Run Code Online (Sandbox Code Playgroud)
可能导致此错误的原因是什么?
这通常发生在连接超时非常低的情况下。调整连接字符串以包含更大的连接超时,例如 30 或 60 秒,然后就可以开始了。
| 归档时间: |
|
| 查看次数: |
261 次 |
| 最近记录: |