Долговечность RabbitMQ с зеркальными очередями и PerfTest
У меня есть кластер 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 - неэквивалентный arg "длительный" для очереди "QUEUE_NAME" в vhost "VHOST_NAME": получен "false", но текущим является "true", class-id=50, method-id=10)
Теперь, когда мой сервер перезагружен, очередь сохраняется. Не означает ли это, что очередь / обмен надежна? Как это решить?
1 ответ
Кажется, у вас уже есть очередь с именем QUEUE_NAME, которая была объявлена ранее. Указанная очередь является надежной, и вы пытаетесь повторно объявить ее недолговечной, что не разрешено протоколом.
Вы должны удалить очередь и воссоздать ее с новыми свойствами, чтобы решить проблему. Убедитесь, что вы удалили сообщения из этой очереди, прежде чем удалять их.