RabbitMQ потребляет самое последнее сообщение - PullRequest
0 голосов
/ 29 июня 2018

У меня есть очередь RabbitMQ в реальном времени, которую я запускаю. Я хотел бы использовать самую последнюю запись, игнорируя все остальные.

Еще лучше, возможно ли организовать обмен разветвлениями с размером очереди в одиночку?

1 Ответ

0 голосов
/ 30 июня 2018

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

Как указано в документации ,

Максимальная длина очереди может быть ограничена заданным количеством сообщений или заданным количеством байтов (сумма всех длин тела сообщения, игнорируя свойства сообщения и любые издержки), или обоими.

Поведение по умолчанию для RabbitMQ, когда задана максимальная длина или размер очереди и достигнут максимум, - отбрасывать или вводить недоставленные сообщения с начала очереди (т. Е. Самые старые сообщения в очереди). Чтобы изменить это поведение, используйте настройку переполнения, описанную ниже.

Если вы используете Java, вы должны сделать следующее:

Map<String, Object> args = new HashMap<String, Object>();
args.put("x-max-length", 1);
channel.queueDeclare("myqueue", false, false, false, args);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...