#apache-kafka #apache-kafka-streams
#apache-kafka #apache-kafka-streams
Вопрос:
Я нахожу эту проблему в журналах приложения Kafka Streams (версия 2.1).
Coordinator selected invalid assignment protocol: null
Код в клиентской библиотеке Kafka кажется простым, где назначающий не найден:
PartitionAssignor assignor = lookupAssignor(assignmentStrategy);
if (assignor == null)
throw new IllegalStateException("Coordinator selected invalid
assignment protocol: " assignmentStrategy);
и lookupAssignor просто ищет по имени:
private PartitionAssignor lookupAssignor(String name) {
for (PartitionAssignor assignor : this.assignors) {
if (assignor.name().equals(name))
return assignor;
}
return null;
}
При каких обстоятельствах это может произойти в приложении Kafka Streams? Каковы последствия?
Комментарии:
1. Звучит как наложение разных приложений. Если у вас есть два независимых приложения, которые случайно используют одно и то же
group.id
, это может произойти. В частности, если у вас есть приложение KafkaStreams и «обычный потребитель», использующие один и тот же идентификатор группы.2. Хотя ни в одном из этих случаев. Однако некоторые задачи KS в то время автоматически перезапускались (через Docker). Но даже в этом случае, что может быть причиной этого в этом случае?
3. @MatthiasJ.Sax мы также сталкиваемся с этой проблемой. Есть несколько экземпляров одних и тех же приложений, но у них есть префикс в названиях групп / тем. Kafka-streams 2.2, кластер находится на 5.1.2. Кластер находится под большой нагрузкой. Есть идеи о том, на что мы можем обратить внимание?
4. Никакой другой идеи atm, кроме того, что я уже сказал о перекрытии
group.id
. Может быть, проверьте Jira, есть ли что-нибудь, и, возможно, откройте отчет об ошибке?5. На основе issues.apache.org/jira/browse/KAFKA-7263 и issues.apache.org/jira/browse/KAFKA-8104 , похоже, это проблема на стороне потребителя. Исправление находится в Kafka consumer 2.4