Каковы негативные последствия установки max.poll.interval.ms больше, чем request.timeout.ms в пользовательских конфигах Kafka - PullRequest
0 голосов
/ 22 февраля 2019

Согласно документации Kafka;

Новый потребитель Java теперь поддерживает сердцебиение из фонового потока.Существует новая конфигурация max.poll.interval.ms, которая контролирует максимальное время между вызовами опроса до того, как потребитель проактивно покинет группу (5 минут по умолчанию).Значение конфигурации request.timeout.ms всегда должно быть больше, чем max.poll.interval.ms, потому что это максимальное время, которое запрос JoinGroup может блокировать на сервере, пока потребитель восстанавливает баланс, поэтому мы изменили его значение по умолчаниюдо чуть более 5 минут.

Но я не мог понять возможные результаты создания max.poll.interval.ms больше, чем request.timeout.ms.

Может кто-нибудь объяснитьэта часть документа:

, потому что это максимальное время, которое запрос JoinGroup может блокировать на сервере, пока потребитель перебалансирует

Теперь я использую этих потребителейпараметры в моем проекте:

kafka.consumer.session.timeout.ms=30000
kafka.consumer.heartbeat.interval.ms=10000
kafka.consumer.request.timeout.ms=31000
kafka.consumer.max.poll.interval.ms=259200000
kafka.consumer.max.partition.fetch.bytes=10242880

Каковы будут отрицательные последствия этого использования?

Примечание: моя версия kafka-клиентов - 1.1.0

1 Ответ

0 голосов
/ 22 февраля 2019

request.timeout.ms указывает, как долго потребитель будет ждать ответа от брокера.

max.poll.interval.ms используется в паре вариантов использования.Сначала указывается, как часто потребитель должен был взаимодействовать с брокерами (чтобы подтвердить, что он жив), но он также используется, когда потребитель присоединяется к группе.В этом случае это указывает, сколько времени может занять брокер, чтобы ответить на запрос группы присоединения.

Таким образом, если max.poll.interval.ms больше, чем request.timeout.ms, вы увидите, что брокеру может потребоваться больше времени, чтобы ответить, чемПотребитель будет ждать.Таким образом, потребитель может тайм-аут запросов.

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

...