bas*_*xff 2 python remote-access rabbitmq
我正在尝试从一台机器连接到另一台安装了 RabbitMQ 的远程服务器。RabbitMQ 在本地运行良好,但是当我从另一台机器连接到它时,会发生错误:
root@xxx:~# python3 rabbitmq.py
Traceback (most recent call last):
File "rabbitmq.py", line 8, in <module>
connection = pika.BlockingConnection(pika.ConnectionParameters(parameters))
File "/usr/local/lib/python3.4/dist-packages/pika/connection.py", line 652, in __init__
self.host = host
File "/usr/local/lib/python3.4/dist-packages/pika/connection.py", line 392, in host
(value,))
TypeError: host must be a str or unicode str, but got <ConnectionParameters host=111.111.111.111 port=5672 virtual_host=product ssl=False>
root@xxx:~#
Run Code Online (Sandbox Code Playgroud)
TypeError: host must be a str or unicode str, but got ConnectionParameters host=111.111.111.111 port=5672 virtual_host=product ssl=False
其他远程机器上的 Python 代码:
import pika
credentials = pika.PlainCredentials(username='remoteuser', password='mypassword')
parameters = pika.ConnectionParameters(host='111.111.111.111', port=5672, virtual_host='/', credentials=credentials)
#connection = pika.BlockingConnection(pika.ConnectionParameters('111.111.111.111:15672')) # --- it doesn't work too
connection = pika.BlockingConnection(pika.ConnectionParameters(parameters))
channel = connection.channel()
channel.queue_declare(queue='hello')
channel.basic_publish(exchange='', routing_key='hello', body='Hello World!')
print(" [x] Sent 'Hello World!'")
connection.close()
Run Code Online (Sandbox Code Playgroud)
用户“remoteuser”具有管理员权限并访问虚拟主机“/”
http://111.111.111.111:15672/#/users
Name Tags Can access virtual hosts Has password
remoteuser administrator / ?
Run Code Online (Sandbox Code Playgroud)
问题是什么?
你有双重包裹parameters
,改变:
connection = pika.BlockingConnection(pika.ConnectionParameters(parameters))
Run Code Online (Sandbox Code Playgroud)
到:
connection = pika.BlockingConnection(parameters)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1648 次 |
最近记录: |