RabbitMq使用中常见错误--python版
用python的pika库错误集
一、pika.exceptions.ProbableAuthenticationError: ConnectionClosedByBroker: (403) ‘ACCESS_REFUSED - Login was refused using authentication mechanism PLAIN. For details see the broker logfile.’
登录信息不全,需要使用用户名和密码登录。或者用户名、密码不正确。
如,connection = pika.BlockingConnection(pika.ConnectionParameters(host='192.168.1.2')),未使用用户名和密码等登录参数。可以参考下面的代码片段:
#!/usr/bin/env python import pika credentials = pika.PlainCredentials('the_user', 'the_pass') parameters = pika.ConnectionParameters('133.45.23.14',5672,'/',credentials) connection = pika.BlockingConnection(parameters)
二、pika.exceptions.ProbableAccessDeniedError: StreamLostError: (“Stream connection lost: ConnectionResetError(10054, ‘远程主机强迫关闭了一个现有的连接。’, None, 10054, None)”,)
服务未对该用户开放相关的权限,如 Virtual Host权限。需要登录服务端开放开头权限,以 Virtual Host权限为例:
启动web管理服务:在安装目录执行:rabbitmq-plugins enable rabbitmq_management
在浏览器中输入 http://127.0.0.1:15672,使用默认的用户名和密码登录:‘guest’, ‘guest’
增加一个新用户
点击用户名,点击开通权限即可
三、pika.adapters.utils.connection_workflow.AMQPConnectorStackTimeout: Timeout during AMQP handshake’192.168.1.33’/(<AddressFamily.AF_INET: 2>, <SocketKind.SOCK_STREAM: 1>, 6, ‘’, (‘192.168.1.33’, 15672)); ssl=False
超时错误,可能是填写的端口号不正确
四、pika.exceptions.ChannelClosedByBroker: (406, “PRECONDITION_FAILED - inequivalent arg ‘durable’ for exchange ‘CLP_STG’ in vhost ‘/’: received ‘false’ but current is ‘true’”)
创建Exchange时,该Exchange已经存在,且本次创建时使用的参数与之前不符。具体到本异常,为 durable属性设置的值不同。
durable属性默认为false,无消息持久化特性
创建Exchange时使用 durable=True设置为true,使用消息持久化特性
心有猛虎,细嗅蔷薇