具有镜像队列和PerfTest的RabbitMQ持久性

时间:2015-08-11 07:42:52

标签: rabbitmq rabbitmqctl

我使用镜像队列设置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)

现在,当我的服务器重新启动时,队列仍然存在 - 这是否意味着队列/交换是否持久?怎么解决这个问题?

1 个答案:

答案 0 :(得分:0)

您似乎已经有一个名为QUEUE_NAME的队列,之前已经声明过了。所述队列是持久的,并且您尝试将其重新声明为非持久性,这是协议不允许的。

您必须删除队列并使用新属性重新创建它才能解决问题。确保在删除之前排空该队列上的消息。