Modo Kafka-Kraft
A imagem da esquerda mostra a arquitetura existente do kafka, os metadados estão no zookeeper, e o controlador é eleito dinamicamente em tempo de execução, e o cluster kafka é gerenciado pelo controlador. A imagem da direita mostra a arquitetura do modo kraft (experimental), que não mais depende do cluster zookeeper, mas usa três controladores O nó substitui o zookeeper, os metadados são armazenados no controlador e o controlador gerencia diretamente o cluster kafka Benefícios: 1.
Kafka
não depende mais da estrutura externa e pode ser executado de forma independente 2.
Quando o controlador gerencia o cluster, ele não precisa mais ler do zookeeper primeiro A coleta de dados aumenta o desempenho do cluster
3. Como não depende do zookeeper, a expansão do cluster não é mais limitada pela leitura e capacidades de gravação do zookeeper.
4. O controlador não é mais eleito por Dongyao, mas é especificado pelo arquivo de configuração, para que possamos fortalecer o desempenho do nó do controlador de maneira direcionada. Configuração, em vez de ser impotente com a alta dívida de nós do controlador aleatório como antes
implantar
Alterar configuração
Descompacte
e modifique em config/kraft/server.properties
注意路径
vim config/kraft/server.properties
Modifique estes 4 lugares
分发 修改其他节点的node.id=2和advertised.Listeners
Inicializar o cluster
bin/kafka-storage.sh random-uuid
Formate o diretório de armazenamento kafka com este ID (o ID deve ser o mesmo) e todas as três máquinas devem executar
bin/kafka-storage.sh format -t qtUYZ6KhQ5mlAxIg-T0M5w -c /usr/local/src/kafka/kraft/kafka_2.12-3.0.0/config/kraft/server.propertie
iniciar comando
bin/kafka-server-start.sh -daemon config/kraft/server.properties
ordem de parada
bin/kafka-server-stop.sh
roteiro
#! /bin/bash
case $1 in
"start"){
for i in hadoop100 hadoop101 hadoop102
do
echo " --------启动 $i Kafka2-------"
ssh $i "/usr/local/src/kafka/kraft/kafka_2.12-3.0.0/bin/kafka-server-start.sh -daemon /usr/local/src/kafka/kraft/kafka_2.12-3.0.0/config/kraft/server.properties"
done
};;
"stop"){
for i in hadoop102 hadoop103 hadoop104
do
echo " --------停止 $i Kafka2-------"
ssh $i "/usr/local/src/kafka/kraft/kafka_2.12-3.0.0/bin/kafka-server-stop.sh "
done
};;
esac