Ошибка при фиксации раздела, назначенного потребителю Kafka. Исключение CommitFailedException:Фиксация не может быть завершена, так как группа уже восстановила баланс

#java #apache-kafka #kafka-consumer-api

Вопрос:

Получение ошибки ниже при фиксации с помощью KafkaConsumer.commitSync(). Раздел назначается с помощью функции KafkConsumer.assign() и опрашивается. После завершения опроса при попытке фиксации возникает следующая ошибка. Я тоже пробовал с автоматической фиксацией, но безуспешно.

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

Ошибка:

 org.apache.kafka.clients.consumer.CommitFailedException: 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 max.poll.interval.ms, which typically implies that the poll loop is spending too much time message processing. You can address this either by increasing max.poll.interval.ms or by reducing the maximum size of batches returned in poll() with max.poll.records.
    at org.apache.kafka.clients.consumer.internals.ConsumerCoordinator$OffsetCommitResponseHandler.handle(ConsumerCoordinator.java:1256) ~[ext-lib-1.0.0.jar:1.3]
    at org.apache.kafka.clients.consumer.internals.ConsumerCoordinator$OffsetCommitResponseHandler.handle(ConsumerCoordinator.java:1163) ~[ext-lib-1.0.0.jar:1.3]
    at org.apache.kafka.clients.consumer.internals.AbstractCoordinator$CoordinatorResponseHandler.onSuccess(AbstractCoordinator.java:1164) ~[ext-lib-1.0.0.jar:1.3]
    at org.apache.kafka.clients.consumer.internals.AbstractCoordinator$CoordinatorResponseHandler.onSuccess(AbstractCoordinator.java:1139) ~[ext-lib-1.0.0.jar:1.3]
    at org.apache.kafka.clients.consumer.internals.RequestFuture$1.onSuccess(RequestFuture.java:206) ~[ext-lib-1.0.0.jar:1.3]
    at org.apache.kafka.clients.consumer.internals.RequestFuture.fireSuccess(RequestFuture.java:169) ~[ext-lib-1.0.0.jar:1.3]
    at org.apache.kafka.clients.consumer.internals.RequestFuture.complete(RequestFuture.java:129) ~[ext-lib-1.0.0.jar:1.3]
    at org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient$RequestFutureCompletionHandler.fireCompletion(ConsumerNetworkClient.java:602) ~[ext-lib-1.0.0.jar:1.3]
    at org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.firePendingCompletedRequests(ConsumerNetworkClient.java:412) ~[ext-lib-1.0.0.jar:1.3]
    at org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.poll(ConsumerNetworkClient.java:297) ~[ext-lib-1.0.0.jar:1.3]
    at org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.poll(ConsumerNetworkClient.java:236) ~[ext-lib-1.0.0.jar:1.3]
    at org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.poll(ConsumerNetworkClient.java:215) ~[ext-lib-1.0.0.jar:1.3]
    at org.apache.kafka.clients.consumer.internals.ConsumerCoordinator.commitOffsetsSync(ConsumerCoordinator.java:1005) ~[ext-lib-1.0.0.jar:1.3]
    at org.apache.kafka.clients.consumer.KafkaConsumer.commitSync(KafkaConsumer.java:1389) ~[ext-lib-1.0.0.jar:1.3]
    at org.apache.kafka.clients.consumer.KafkaConsumer.commitSync(KafkaConsumer.java:1343) ~[ext-lib-1.0.0.jar:1.3]
 

Комментарии:

1. Это происходит, когда группа потребителей восстанавливает баланс. Не могли бы вы предоставить более подробную информацию о том, на какую тему подписана эта группа потребителей и на какой шаблон/темы подписались другие потребители той же группы ?