Слишком много сообщений в очереди rabbitmq, срок действия очередей не истекает - PullRequest
0 голосов
/ 28 сентября 2018

Я использую rabbitmq 3.7.0 с nodejs, используя эту библиотеку в typescript.Все потребители {noAck: false, exclusive: false}, все очереди {prefetch:1, expires: 14400000, durable:false} (4 часа).

У меня много очередей, у которых нет ожидающих подтверждения, но все еще хранятся сотни сообщений.Кроме того, очереди не истекают, когда это необходимо, что приведет к проблемам с производительностью через пару дней.Я не нашел никакого оправдания тому, почему сообщение все еще находится в очереди после процесса подтверждения.

Спасибо

Правка (1) - отсутствует информация, которую я воспринял из ответов

Насколько я могу судить, для такого количества очередей нет активного потребителя.Можно ли подтвердить эту информацию в инструменте управления?

Что усложняет сценарий, так это то, что я не могу просто удалить очередь после последнего потребителя, поскольку могу использовать ее для восстановления прерванного сеанса, и если яне удаляйте очередь из очереди после последнего потребителя, очередь продолжает обновляться.Но для этого достаточно параметра expires.

Некоторые снимки из инструмента управления:

enter image description here

1 Ответ

0 голосов
/ 28 сентября 2018

Я предлагаю вам прочитать документацию о том, как expires работает: https://www.rabbitmq.com/ttl.html#queue-ttl

Если ваша очередь еще не истекла, это означает, что вы, скорее всего, зарегистрированы в ней как потребитель.Есть пара других случаев, когда срок действия очередей не истечет.

Что касается сообщений, которые предположительно подтверждаются, но остаются в очереди, единственное объяснение, которое я имею, - это то, что, возможно, они вообще не были доставлены.

Наконец, без дополнительной информации или надежного репродуктора не так много дополнительной помощи, которую можно оказать с ограниченным количеством предоставленной информации.


ПРИМЕЧАНИЕ: команда RabbitMQ отслеживает список рассылки rabbitmq-users и только иногда отвечает на вопросы о StackOverflow.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...