Количество неподтвержденных сообщений в очереди RabbitMQ

#rabbitmq #amqp #spring-amqp #spring-rabbit

#rabbitmq #amqp #spring-amqp #spring-кролик

Вопрос:

Я хочу получить количество неподтвержденных сообщений в очереди RabbitMQ.

Как я могу этого добиться?

Я пытался использовать HTTP API, конкретно /api/queues/vhost/name , но он всегда возвращает 0 messages_unacknowledged и messages

Комментарии:

1. Как убедиться, что messages_unacknowledged значение не равно 0, включен ли плагин управления

2. Я запускаю образ rabbitmq management docker, в котором по умолчанию включен плагин управления, т. Е. Открыт HTTP API

3. Значит, вы нашли доступ к веб-странице управления messages_unacknowledged , а не 0?

Ответ №1:

HTTP (REST) API (плагин управления) не работает в режиме реального времени; он отстает от реальности.

Комментарии:

1. Вы случайно не знаете, что использовать вместо этого?

2. Я ничего не знаю; Я предлагаю вам попробовать группу rabbitmq-пользователи Google.

3. Я нашел org.springframework.amqp.rabbit.core.RabbitAdmin#getQueueProperties . Это тоже запаздывает?

4. Нет; это в режиме реального времени, поскольку оно выполняется через соединение AMQP; однако у него есть только потребитель и количество сообщений (это не нарушает состояние сообщения).

5. assert rabbitAdmin.getQueueProperties(queueName).get(QUEUE_MESSAGE_COUNT) == 0 в цикле выполняется трюк

Ответ №2:

rabbitAdmin.getQueueProperties(queueName).get(org.springframework.amqp.rabbit.core.RabbitAdmin.QUEUE_MESSAGE_COUNT) выполняет задание

RabbitAdmin это компонент, который автоматически настраивается Spring Boot.