Потоки Kafka: Случаи, когда «Координатор выбрал недопустимый протокол назначения: null»

#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