Como garantir que um cluster kafka esteja totalmente ativo?

Temos um cluster de cinco nós em execução na produção com três tratadores de zebra - todos são VMs. Temos que reiniciar o cluster frequentemente para obter algumas correções de hardwar

screvemos um script ansible para desligar o cluster na seguinte orde

are a conexão Kafka (1, 2, 3 nós sequencialmente) matando o processoStop Kafka (1, 2, 3, 4, 5 nós sequencialmente) usando kafka-server-stop.shStop Zookeeper (1, 2, 3 nós sequencialmente) usando zookeeper-server-stop.sh

Após o patch, o script start fará o seguinte

Start Zookeeper (1, 2, 3 nós sequencialmente) usando zookeeper-server-start.shStart Kafka (1, 2, 3, 4, 5 nós seqüencialmente) usando kafka-server-start.shInicie o Kafka connect (1, 2, 3 nós sequencialmente) usando connect-distributed.sh

O problema é com a etapa # 3 do script de início, mantivemos um atraso codificado por cerca de 10 minutos antes de executar a # 3 (iniciando o kafka connect) para tornar o cluster kafka totalmente operacional. Mas, às vezes, alguns dos nós do cluster levam mais tempo para iniciar, portanto, a inicialização do kafka connect falha mesmo após o atraso - Nesse caso, precisamos aguardar 30 minutos e tentar reiniciar a conexão manualmente novamente.

Existe alguma maneira de garantir que todos os nós do cluster estejam em funcionamento antes de iniciar os outros processo

Desde já, obrigado

atraso codificado por hardware não funciona, não podemos continuar alterando o atraso com alguma suposiçã

questionAnswers(2)

yourAnswerToTheQuestion