Rabbitmq не может справиться через некоторое время - PullRequest
0 голосов
/ 11 июля 2019

У меня есть очередь rabbitmq, в которой каждый объем данных, публикуемых в этой очереди, составляет приблизительно 1 МБ. Каждую секунду 4 или 5 данных публикуются в этой очереди.

Потребитель потребляет все данные один за другим (Fetch = 1). Когда я прекращаю обслуживание потребителя, 30000 сообщений в очереди стало готовым к употреблению. Когда я начинаю потребителя, его скорость потребления 30 / с +. Пока просто отлично.

Hovewer в издателе дневного света никогда не прекращает публикацию, и потребитель может обрабатывать очередь. Но ночью издатель больше не отправляет данные (это не ошибка. Это так, как должно быть). В первый же день следующего дня издатель начинает публиковать 7 данных в секунду. На этот раз очередь кроликов продолжает расти.

Первой мыслью было, что потребитель не может обрабатывать данные. Но он может потреблять 30 / с + данные каждую секунду.

Я знаю, что скорость потребления зависит от потребителя.

НО.

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

This is what i mean

Это изображение показывает ограничение скорости потребителя.

enter image description here

1 Ответ

1 голос
/ 11 июля 2019

Благодаря Lutz Horn

Как реализуется потребитель? Это использует толчок или подход напряжения? Он потребляет только 3,8 сообщения в секунду. Изменить: скриншот показывает использование потребителя 0%. Это означает, что RabbitMQ всегда должен ждать, пока потребитель сможет обработать следующее сообщение. RabbitMQ никогда не может просто отправить опубликованное сообщение потребителю. Смотри https://www.rabbitmq.com/blog/2014/04/14/finding-bottlenecks-with-rabbitmq-3-3/– Лутц Рог

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