Да, вы правы, в то время как истинное состояние, которое ждет, чтобы принять сообщение до времени ожидания ожидания. Если полученное сообщение будет возвращено немедленно, в противном случае он будет ожидать истечения времени ожидания и вернет пустую запись.
Используйте параметр ниже, указанный Kafka Broker, для управления сообщением, которое нужно отправить Потребителю
- fetch.min.bytes: Брокер будет ожидать заполнения этого объема данных ДО того, как отправит ответ клиенту-клиенту.
- fetch.wait.max.ms :Брокер будет ждать этого времени ПЕРЕД отправкой ответа клиентскому клиенту, если только у него недостаточно данных для заполнения ответа (fetch.message.max.bytes)
Существует возможность занять много временивремя вызова следующего опроса () из-за обработки использованных сообщений. max.poll.interval.ms не позволяют обрабатывать, тратят так много времени и вызывают следующий опрос в пределах max.poll.interval.ms, в противном случае потребитель покидает группу и вызывает изменение баланса. Вы можете получить более подробную информацию об этом здесь
- max.poll.interval.ms: Увеличив интервал между ожидаемыми опросами, вы можетедать потребителю больше времени для обработки пакета записей, возвращенных из опроса (long). Недостаток заключается в том, что увеличение этого значения может задержать перебалансировку группы, поскольку потребитель присоединится к перебалансировке только при вызове к опросу. Вы можете использовать эту настройку, чтобы ограничить время, чтобы завершить восстановление баланса, но вы рискуете замедлить прогресс, если потребитель не сможет достаточно часто вызывать опрос.
- max.poll.records: Используйте эту настройкуограничить общее количество записей, возвращаемых из одного звонка на опрос. Это может упростить прогнозирование максимума, который должен обрабатываться в каждом интервале опроса. Настроив это значение, вы сможете уменьшить интервал опроса, что уменьшит влияние перебалансировки групп.