Повторная балансировка группы Kafka после неудачной попытки потребителя.org.apache.kafka.clients.consumer.internals.ConsumerCoordinator - PullRequest
0 голосов
/ 21 декабря 2018

Я использую кластер Kafka с 4 узлами, 1 производителем и 1 потребителем.Он работал нормально, пока потребитель не потерпел неудачу.Теперь, после перезапуска потребителя, он начинает потреблять новые сообщения, но через несколько минут он выдает эту ошибку:

[WARN ]: org.apache.kafka.clients.consumer.internals.ConsumerCoordinator - Auto offset commit failed for group eventGroup: Commit cannot be completed since the group has already rebalanced and assigned the partitions to another member. This means that the time between subsequent calls to poll() was longer than the configured session.timeout.ms, which typically implies that the poll loop is spending too much time message processing. You can address this either by increasing the session timeout or by reducing the maximum size of batches returned in poll() with max.poll.records.

И он снова начинает потреблять те же сообщения и зацикливается навсегда.тайм-аут сеанса, попытался изменить идентификатор группы, и он все еще делает то же самое.

Также важна ли клиентская версия Kafka для потребителя?

1 Ответ

0 голосов
/ 22 декабря 2018

Я бы предложил вам сначала отделить потребителя от логики обработки.Например, разрешить потребителю Kafka только опрашивать сообщения и, возможно, после очистки сообщений (при необходимости) делегировать фактическую обработку каждой записи в отдельный поток, а затем посмотреть, по-прежнему ли происходит та же ошибка.Ошибка говорит, что вы проводите слишком много времени между последующими опросами, так что это может решить вашу проблему.Также, пожалуйста, укажите версию Кафки, которую вы используете.До версии 0.10 у Kafka была другая политика управления сердцебиением, которая могла облегчить воспроизведение этой проблемы.

...