1

我无法连接到 RabbitMQ 实例(这是我第一次这样做)。我已经在 AWS 上启动了一个,并且可以访问我能够访问的管理面板。

我正在尝试使用以下代码连接到 python/pika 中的 RabbitMQ 服务器:

import pika
import logging

logging.basicConfig(level=logging.DEBUG)

credentials = pika.PlainCredentials('*******', '**********')
parameters = pika.ConnectionParameters(host='a-25c34e4d-a3eb-32de-abfg-l95d931afc72f.mq.us-west-1.amazonaws.com',
                                       port=5671,
                                       virtual_host='/',
                                       credentials=credentials,
                                       )

connection = pika.BlockingConnection(parameters)

pika.exceptions.IncompatibleProtocolError: StreamLostError: ("Stream connection lost: ConnectionResetError(54, 'Connection reset by peer')",)当我运行上述内容时,我得到了。

4

1 回答 1

5

您正在尝试通过 AMQP 协议进行连接并且 AWS 正在使用 AMQPS,您应该像这样将 ssl_options 添加到您的连接参数中

import ssl

logging.basicConfig(level=logging.DEBUG)

credentials = pika.PlainCredentials('*******', '**********')
context = ssl.SSLContext(ssl.PROTOCOL_TLSv1_2)
parameters = pika.ConnectionParameters(host='a-25c34e4d-a3eb-32de-abfg-l95d931afc72f.mq.us-west-1.amazonaws.com',
                                       port=5671,
                                       virtual_host='/',
                                       credentials=credentials,
                                       ssl_options=pika.SSLOptions(context)
                                       )

connection = pika.BlockingConnection(parameters)
于 2021-04-22T14:58:59.867 回答