#kubernetes #apache-kafka #kafka-consumer-api
#kubernetes #апачи-кафка #kafka-consumer-api
Вопрос:
Я запускаю кластер Kafka в Kubernetes. Я внедряю обычай PartitionAssignor
для персонализации способа назначения тематических разделов существующим потребителям в группе потребителей. С этой целью я переопределяю метод Map<String, Assignment> assign( Cluster metadata Map<String, Subscription> subscriptions)
Если внутри assign
метода я динамически создал нового потребителя через клиентские API Kubernetes, как будет вести себя протокол перебалансировки в таком случае. Точно, когда вновь созданный потребитель отправляет запрос joinGroup координатору группы (пока процесс перебалансировки все еще выполняется), завершится ли текущая перебалансировка, а затем запускается новый процесс перебалансировки для адаптации к вновь созданному потребителю?
Ответ №1:
Для тех, кого может заинтересовать ответ, я разместил вопрос в списке рассылки Kafka, а ниже приведен ответ от Confluent People:
Ответ :
Если вы создаете нового потребителя внутри метода assign (и предполагаете, что вы действительно начинаете опрос с его помощью, чтобы он отправил запрос joinGroup), тогда да, для размещения этого потребителя потребуется новая перебалансировка. Координатор группы проинформирует всех существующих участников о необходимости воссоединения с группой, чтобы можно было продолжить перебалансировку с последним актуальным представлением текущей группы.