Utilice Docker para crear rápidamente un clúster de Kafka

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

Supongo que te gusta

Origin blog.csdn.net/kk3909/article/details/111937717
Recomendado
Clasificación