Настройка TTL сообщений и ограничений длины очереди
Используйте TTL сообщений и ограничения длины очереди, чтобы удерживать рост очереди в контролируемых пределах. Эти настройки полезны для обработки всплесков нагрузки, контроля резервного накопления и очередей, которые не должны хранить устаревшие сообщения бесконечно.
Предпочитайте политики жестко заданным аргументам очереди, если одни и те же ограничения должны применяться к нескольким очередям или если вы хотите изменять ограничения без повторного объявления очередей.
Содержание
Выбор правильного механизма управленияПрименение политики очередиПроверка активной политикиРекомендации по проектированиюСвязанная информацияВыбор правильного механизма управления
Истечение очереди удаляет неиспользуемую очередь. TTL сообщений приводит к истечению сообщений. Для долговечных application-очередей и очередей warm-standby используйте message-ttl для контроля накопления и избегайте expires, если очередь не является намеренно временной.
Применение политики очереди
Следующий пример применяет 24-часовое окно хранения сообщений и ограничения длины очереди к очередям, начинающимся с orders., в виртуальном хосте по умолчанию:
В этом примере:
- Сообщения старше 24 часов становятся кандидатами на истечение.
- Очередь хранит не более 100000 сообщений.
- Очередь хранит не более 1 GiB данных сообщений.
- Новые публикации отклоняются после достижения лимита и могут быть отправлены в dead-letter, если очередь настроена с DLX.
Если другая политика уже совпадает с теми же очередями, проверьте приоритеты политик перед созданием конкурирующего правила.
Проверка активной политики
Выведите список политик в виртуальном хосте:
Проверьте аргументы очереди и активную политику:
Рекомендации по проектированию
- Используйте
message-ttl, чтобы ограничить резервные очереди или очереди replay, которые не должны расти бесконечно. - Используйте
max-lengthилиmax-length-bytesдля высоконагруженных очередей, чтобы неожиданные отказы consumers не исчерпали диск. - Выбирайте
overflow="reject-publish"илиoverflow="reject-publish-dlx", когда publishers должны получать backpressure вместо тихой потери самых старых сообщений. - Используйте
overflow="drop-head"только тогда, когда приложение явно предпочитает новые сообщения старому накопленному backlog. - Сверяйте значения ограничений с пиками трафика, ожидаемыми окнами отказов и доступным хранилищем.