Preparación ambiental
Nombre del nodo | dirección IP |
---|---|
nodo1 | 192.168.130.20 |
nodo2 | 192.168.130.19 |
nodo2 | 192.168.130.21 |
Instalar ventana acoplable
levemente
Instalar el clúster del guardián del zoológico
Referencia: https://blog.csdn.net/kk3909/article/details/111937681
Afka Kafka
Referencia de configuración de la variable de entorno: https://hub.docker.com/r/bitnami/kafka
Crear directorio de datos
mkdir -p /root/kafka/data && chmod 777 /root/kafka/data
mkdir -p /root/kafka/config
nodo1
docker rm -f kf-node1
docker run -d --network=host --privileged=true \
--name kf-node1 -p 9092:9092 \
-e KAFKA_BROKER_ID=1 \
-e KAFKA_ZOOKEEPER_CONNECT=192.168.130.20:2181,192.168.130.19:2181,192.168.130.21:2181 \
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.130.20:9092 \
-e ALLOW_PLAINTEXT_LISTENER=yes \
-v /root/kafka/data:/bitnami/kafka/data \
-v /root/kafka/config:/bitnami/kafka/config \
bitnami/kafka:2.6.0
nodo2
docker rm -f kf-node2
docker run -d --network=host --privileged=true \
--name kf-node2 -p 9092:9092 \
-e KAFKA_BROKER_ID=2 \
-e KAFKA_ZOOKEEPER_CONNECT=192.168.130.20:2181,192.168.130.19:2181,192.168.130.21:2181 \
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.130.19:9092 \
-e ALLOW_PLAINTEXT_LISTENER=yes \
-v /root/kafka/data:/bitnami/kafka/data \
-v /root/kafka/config:/bitnami/kafka/config \
bitnami/kafka:2.6.0
nodo3
docker rm -f kf-node3
docker run -d --network=host --privileged=true \
--name kf-node3 -p 9092:9092 \
-e KAFKA_BROKER_ID=3 \
-e KAFKA_ZOOKEEPER_CONNECT=192.168.130.20:2181,192.168.130.19:2181,192.168.130.21:2181 \
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.130.21:9092 \
-e ALLOW_PLAINTEXT_LISTENER=yes \
-v /root/kafka/data:/bitnami/kafka/data \
-v /root/kafka/config:/bitnami/kafka/config \
bitnami/kafka:2.6.0
Crear y ver temas
Ingrese el nodo1
docker exec -it kf-node1 sh
Crear un tema TestTopic
/opt/bitnami/kafka/bin/kafka-topics.sh --create --zookeeper 192.168.130.20:2181 --replication-factor 3 --partitions 5 --topic TestTopic
Información de salida
Created topic TestTopic.
Ver temas de TestTopic
/opt/bitnami/kafka/bin/kafka-topics.sh --describe --zookeeper 192.168.130.20:2181 --topic TestTopic
Información de salida
Topic: TestTopic PartitionCount: 5 ReplicationFactor: 3 Configs:
Topic: TestTopic Partition: 0 Leader: 3 Replicas: 3,2,1 Isr: 3,2,1
Topic: TestTopic Partition: 1 Leader: 1 Replicas: 1,3,2 Isr: 1,3,2
Topic: TestTopic Partition: 2 Leader: 2 Replicas: 2,1,3 Isr: 2,1,3
Topic: TestTopic Partition: 3 Leader: 3 Replicas: 3,1,2 Isr: 3,1,2
Topic: TestTopic Partition: 4 Leader: 1 Replicas: 1,2,3 Isr: 1,2,3
Verificar el estado del clúster
Vaya al nodo2 y verifique si el tema está sincronizado
docker exec -it kf-node2 sh
/opt/bitnami/kafka/bin/kafka-topics.sh --describe --zookeeper 192.168.130.19:2181 --topic TestTopic
Topic: TestTopic PartitionCount: 5 ReplicationFactor: 3 Configs:
Topic: TestTopic Partition: 0 Leader: 3 Replicas: 3,2,1 Isr: 3,2,1
Topic: TestTopic Partition: 1 Leader: 1 Replicas: 1,3,2 Isr: 1,3,2
Topic: TestTopic Partition: 2 Leader: 2 Replicas: 2,1,3 Isr: 2,1,3
Topic: TestTopic Partition: 3 Leader: 3 Replicas: 3,1,2 Isr: 3,1,2
Topic: TestTopic Partition: 4 Leader: 1 Replicas: 1,2,3 Isr: 1,2,3
Vaya al nodo3 y verifique si el tema está sincronizado
docker exec -it kf-node3 sh
/opt/bitnami/kafka/bin/kafka-topics.sh --describe --zookeeper 192.168.130.21:2181 --topic TestTopic
Topic: TestTopic PartitionCount: 5 ReplicationFactor: 3 Configs:
Topic: TestTopic Partition: 0 Leader: 3 Replicas: 3,2,1 Isr: 3,2,1
Topic: TestTopic Partition: 1 Leader: 1 Replicas: 1,3,2 Isr: 1,3,2
Topic: TestTopic Partition: 2 Leader: 2 Replicas: 2,1,3 Isr: 2,1,3
Topic: TestTopic Partition: 3 Leader: 3 Replicas: 3,1,2 Isr: 3,1,2
Topic: TestTopic Partition: 4 Leader: 1 Replicas: 1,2,3 Isr: 1,2,3
Prueba de envío de mensajes
noticias de producción de node1
docker exec -it kf-node1 sh
/opt/bitnami/kafka/bin/kafka-console-producer.sh --broker-list 192.168.130.20:9092 --topic TestTopic
Mensaje de entrada
>hello1
>hello2
mensaje de consumo de nodo2
docker exec -it kf-node2 sh
/opt/bitnami/kafka/bin/kafka-console-consumer.sh --bootstrap-server 192.168.130.19:9092 --topic TestTopic --from-beginning
Esperando recibir mensaje
noticias del consumidor de node3
docker exec -it kf-node3 sh
/opt/bitnami/kafka/bin/kafka-console-consumer.sh --bootstrap-server 192.168.130.21:9092 --topic TestTopic --from-beginning
Esperando recibir mensaje
Instalar kafka-manager
zk se usa para almacenar información de configuración como clústeres
docker rm -f kf-manager
docker run -d --name kf-manager -p 9000:9000 -e ZK_HOSTS="192.168.130.20:2181,192.168.130.19:2181,192.168.130.21:2181" -e APPLICATION_SECRET=kf123 sheepkiller/kafka-manager:1.3.1.8