docker安装kafka(KRaft 模式)
KRaft模式不再对Zookeeper依赖。
docker run -d --name kafka-kraft \
-p 9092:9092 -p 9093:9093 \
-e KAFKA_PROCESS_ROLES=broker,controller \
-e KAFKA_NODE_ID=1 \
-e KAFKA_CONTROLLER_QUORUM_VOTERS=1@127.0.0.1:9093 \
-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092,CONTROLLER://0.0.0.0:9093 \
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://47.103.16.200:9092 \
-e KAFKA_LISTENER_SECURITY_PROTOCOL_MAP=PLAINTEXT:PLAINTEXT,CONTROLLER:PLAINTEXT \
-e KAFKA_INTER_BROKER_LISTENER_NAME=PLAINTEXT \
-e KAFKA_CONTROLLER_LISTENER_NAMES=CONTROLLER \
-e KAFKA_LOG_DIRS=/var/lib/kafka/data \
-e KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR=1 \
-e KAFKA_CLUSTER_ID=$(uuidgen) \
apache/kafka:latest
KAFKA_MODE=KRaft 表示你要启动的是 KRaft 模式。
KAFKA_KRAFT_MODE=true 指定 Kafka 以 KRaft 模式启动。
命令行测试
docker exec -it kafka /bin/bash
cd /opt/kafka/bin
创建主题
./kafka-topics.sh --bootstrap-server localhost:9092 --create --topic test-topic --partitions 1 --replication-factor 1
生产消息
./kafka-console-producer.sh --bootstrap-server localhost:9092 --topic test-topic
消费消息
./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test-topic --from-beginning