基于Docker的KRaft模式安装(非官方版)

598 阅读1分钟

主流的Kafka使用Zookeeper,但最近Kafka将会逐步舍弃Zookeeper而使用自带的KRaft。所以以下步骤是基于Docker安装无Zookeeper的Kafka。

一、创建Kafka容器

docker run \
    --cpus 1 -m 1g \
    -d \
    -p 9092:9092 \
    -v /tmp/kraft-combined-logs:/tmp/kraft-combined-logs \
    --name kafka-raft-3.0.0 kubebiz/kafka:2.13-3.0.0 \
    /bin/bash -c "kafka-storage.sh format --cluster-id AAAAAAAAAAAAAAAAAAAAAA \
    --config /opt/kafka/config/kraft/server.properties && \ 
    exec kafka-server-start.sh /opt/kafka/config/kraft/server.properties"

二、获取容器IP

$ docker inspect --format='{{.NetworkSettings.IPAddress}}' kafka-raft-3.0.0
172.17.0.3

三、测试

1. 进入容器(需要两个终端)

docker exec -it kafka-raft-3.0.0 bash

2. 生产者

cd opt/kafka_2.13-3.0.0/
bin/kafka-console-producer.sh --broker-list 172.17.0.3:9092 --topic test

3. 消费者

cd opt/kafka_2.13-3.0.0/
bin/kafka-console-consumer.sh --bootstrap-server 172.17.0.3:9092 --from-beginning --topic test --consumer.config config/consumer.properties

4. 消息发送

生产者发送消息后,消费者就会收到

通常来说,Kafka 发布的 Docker 镜像中,Kafka 安装在 /opt/kafka 目录下。而为了区分不同版本的 Kafka,可能会在目录名称中包含版本号和 Scala 版本。所以 /opt/kafka_2.13-3.0.0 目录就是为了安装 Kafka 2.13-3.0.0 版本而创建的。

参考文章

docker单机部署KRafa模式的kafka

Docker部署Kafka Raft模式(单机版) - OrcHome

官网 Quick Start

【Kafka】基于Docker的KRaft模式(无Zookeeper)集群安装及测试_docker kafka不用zookeeper-CSDN博客