2016-02-11 2 views
0

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

ответ

2

Таким образом, в основном Kafka является клиентом Pull, он будет запрашивать сервер, чтобы выяснить, есть ли новые сообщения, либо вы можете иметь более высокий интервал опроса, либо вы можете использовать концепцию fetch .max.wait.ms и fetch.min.bytes. В этой документации говорится о fetch.min.bytes. Минимальный объем данных, которые сервер должен вернуть для запроса на выборку. Если недостаточно данных, запрос будет ожидать, что столько данных накапливается до ответа на запрос.

+0

Использование этих свойств fetch.min.bytes и fetch.max.wait.ms означает, что потребитель должен знать, какое минимальное количество байтов будет потреблено, и время ожидания. Но я искал что-то, что блокирует потребителя до тех пор, пока данные не поступят, но брокер уведомит потребителя. Однако, как и система с натягиванием, эти свойства, по-видимому, подходят в этом случае –

Смежные вопросы