我使用镜像队列设置RabbitMQ群集。客户端代码可以正常使用,当服务器关闭时,另一个处理请求。
我想对此进行一些性能测试。为此,我使用了rabbitmq-client-tools(PerfTest)。
sh ./runjava.sh com.rabbitmq.examples.PerfTest -h" AMQP_STRING" -u QUEUE_NAME
这会抛出以下内容并且不起作用:
com.rabbitmq.client.ShutdownSignalException:channel error;协议方法:#method(回复代码= 406,回复文本= PRECONDITION_FAILED - 不等效arg'持久'用于排队' QUEUE_NAME'在vhost' VHOST_NAME':收到' false'但是当前是' true',class-id = 50,method-id = 10)
现在,当我的服务器重新启动时,队列仍然存在 - 这是否意味着队列/交换是否持久?怎么解决这个问题?
答案 0 :(得分:0)
您似乎已经有一个名为QUEUE_NAME的队列,之前已经声明过了。所述队列是持久的,并且您尝试将其重新声明为非持久性,这是协议不允许的。
您必须删除队列并使用新属性重新创建它才能解决问题。确保在删除之前排空该队列上的消息。