【问题标题】:Why python code cannot connect to RabbitMQ remotely?为什么 python 代码无法远程连接到 RabbitMQ?
【发布时间】:2017-10-17 15:38:13
【问题描述】:

我正在尝试从一台机器连接到另一台安装了 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:~#

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()

用户“remoteuser”拥有管理员权限并可以访问虚拟主机“/”

http://111.111.111.111:15672/#/users

Name        Tags            Can access virtual hosts    Has password
remoteuser  administrator   /                               ●

有什么问题?

【问题讨论】:

    标签: python rabbitmq remote-access


    【解决方案1】:

    你有双重包装parameters,更改:

    connection = pika.BlockingConnection(pika.ConnectionParameters(parameters))
    

    到:

    connection = pika.BlockingConnection(parameters)
    

    【讨论】:

    • 很高兴为您提供帮助。
    • 之后,如果出现错误:pika.exceptions.AMQPConnectionError 那么,请确保您的计算机上已经安装了 RabbitMQ。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多