pika 无法创建仲裁队列

des*_*ond 4 python pika

我使用 RabbitMQ 设置 amazonMQ 并尝试使用 Pika 连接和发布消息:

        credentials = pika.PlainCredentials(MQUSER, MQPW)
        amqs_str='amqps://'+MQUSER+':'+MQPW + '@'+MQURL+':'+str(MQPORT)+'/%2F'
        parameters= pika.URLParameters(amqs_str)
        connection = pika.BlockingConnection(parameters)
        channel= connection.channel()
        channel.queue_declare(queue=MQ_QUEUE_NAME,durable=True)
Run Code Online (Sandbox Code Playgroud)

这会起作用,但是创建的队列是经典的,而且我知道仲裁在多节点rabbitmq服务器中要好得多。我搜索 pika 文档https://pika.readthedocs.io/en/0.10.0/modules/channel.html但找不到任何设置来设置仲裁类型队列。有人可以建议吗?

Bie*_*bar 10

刚刚尝试过 - 通过在调用时传递队列类型仲裁来工作queue_declare

最小的工作示例。我用rabbitMQ docker镜像进行了测试: docker run -d --name rabbitMQ -p 5672:5672 -p 8080:15672 rabbitmq:3-management

import pika
con = pika.BlockingConnection(pika.ConnectionParameters("localhost"))
channel = con.channel()
channel.queue_declare(queue="test",durable=True,arguments={"x-queue-type": "quorum"})
Run Code Online (Sandbox Code Playgroud)