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.shApó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.shO 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çã