Временная очередь RabbitMQ периодически умирает - PullRequest
0 голосов
/ 30 апреля 2020

Я использую RabbitMQ для передачи данных об изменениях состояния процесса на веб-сервере. Сервер приложений будет публиковать sh события в очереди, а веб-сервер будет использовать эти события.

Очереди являются временными (x-expires: 300000, auto-delete: true) и инициируются, когда Интернет Приложение запускается в первый раз.

Проблема, с которой я сталкиваюсь, заключается в том, что очередь периодически исчезает. Я понял, что одна проблема связана с настройкой RequestedHeartbeat. Так как у нас на веб-сервере было какое-то длительное задание, очередь периодически умирала. После того, как я увеличил его значение, долго работающая задача в сети работает нормально.

Однако очередь по-прежнему периодически умирает. Rabbit MQ имеет постоянно увеличивающийся файл журнала со следующими ошибками. Некоторые из этих ошибок из другой среды dev / staging / uat, но такие же ошибки

2020-04-30 01:16:15.218 [error] <0.3578.286> Channel error on connection <0.30037.285> (10.10.122.111:25734 -> 10.10.234.111:5672, vhost: '/', user: 'someuser'), 
channel 5: operation basic.consume caused a channel exception not_found: no queue 'QueueNo132321011360' in vhost '/'

Кроме того, 1) Как определить, что временная очередь умерла?

2) Каков наилучший механизм обновления временной очереди с веб-сервера?

1 Ответ

0 голосов
/ 30 апреля 2020

Если бы вы порекомендовали оставить x-expires, но измените auto-delete на false, чтобы ваши очереди переживали временные отключения клиентов (если, конечно, вы не заботитесь о потере сообщений).

...