0

我有带有镜像队列的 RabbitMQ 集群设置。客户端代码可以正常工作,当服务器关闭时,另一个处理请求。

我想对此做一些性能测试。为此,我使用了 rabbitmq-client-tools (PerfTest)。

sh ./runjava.sh com.rabbitmq.examples.PerfTest -h "AMQP_STRING" -u QUEUE_NAME

这会引发以下内容并且不起作用:

com.rabbitmq.client.ShutdownSignalException:通道错误;协议方法:#method(reply-code=406,reply-text=PRECONDITION_FAILED - vhost 'VHOST_NAME' 中队列 'QUEUE_NAME' 的不等效参数 'durable':收到 'false' 但当前为 'true',class-id=50 , 方法 ID=10)

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

4

1 回答 1

0

看来您已经有一个名为 QUEUE_NAME 的队列,该队列之前已声明过。所述队列是持久的,您试图将其重新声明为非持久的,这是协议不允许的。

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

于 2015-08-12T13:48:31.930 回答