KAFKA_HOME
single_mode 单机模式(同时启动一个zookeeper和kafka)
cluster_mode 集群模式(需要额外部署zookeeper服务)
kraft_server_mode kraft server 模式
kraft_broker_mode kraft broker 模式
kraft_controller_mode kraft controller 模式
* /kafka/bin/"$KAFKA_RUN_MODE".sh $RUN_PARAMETER
KAFKA_RUN_MODE
RUN_PARAMETER
RUN_PARAMETER=--override advertised.listeners=PLAINTEXT://host.docker.internal:9092 就可以在启动时设置override参数用于覆盖默认配置文件的参数RANDOM_UUID
./bin/kafka-storage.sh random-uuid生成docker run --name kafka -p 9092:9092 -e "RUN_PARAMETER=--override advertised.listeners=PLAINTEXT://host.docker.internal:9092" leixuewen/kafka
docker run --name kraft_server -p 9092:9092 -p 9093:9093 -e "RANDOM_UUID=TU40YGvItXASz9nHKwrL70" -e "KAFKA_RUN_MODE=kraft_server_mode" -e "RUN_PARAMETER=--override advertised.listeners=PLAINTEXT://host.docker.internal:9092" leixuewen/kafka
通过配置server.properties文件并设置文件映射,文件所在目录:/kafka/config/server.properties
version: "3"
services:
zookeeper:
image: zookeeper:3.7.0
ports:
- "2181:2181"
kafka1:
image: leixuewen/kafka
ports:
- "19092:19092"
environment:
- "KAFKA_RUN_MODE=cluster_mode"
- "RUN_PARAMETER=--override broker.id=1 --override advertised.listeners=PLAINTEXT://host.docker.internal:19092 --override port=19092 --override zookeeper.connect=zookeeper:2181"
kafka2:
image: leixuewen/kafka
ports:
- "29092:29092"
environment:
- "KAFKA_RUN_MODE=cluster_mode"
- "RUN_PARAMETER=--override broker.id=2 --override advertised.listeners=PLAINTEXT://host.docker.internal:29092 --override port=29092 --override zookeeper.connect=zookeeper:2181"
kafka3:
image: leixuewen/kafka
ports:
- "39092:39092"
environment:
- "KAFKA_RUN_MODE=cluster_mode"
- "RUN_PARAMETER=--override broker.id=3 --override advertised.listeners=PLAINTEXT://host.docker.internal:39092 --override port=39092 --override zookeeper.connect=zookeeper:2181"
version: "3"
services:
kafka-kraft1:
image: leixuewen/kafka
environment:
- "KAFKA_RUN_MODE=kraft_server_mode"
- "RANDOM_UUID=TU40YGvItXASz9nHKwrL71"
volumes:
- "D:/project/docker-deploy/kafka-cluster/kraft-node-1.properties:/kafka/config/kraft/server.properties"
kafka-kraft2:
image: leixuewen/kafka
environment:
- "KAFKA_RUN_MODE=kraft_server_mode"
- "RANDOM_UUID=TU40YGvItXASz9nHKwrL72"
volumes:
- "D:/project/docker-deploy/kafka-cluster/kraft-node-2.properties:/kafka/config/kraft/server.properties"
kafka-kraft3:
image: leixuewen/kafka
environment:
- "KAFKA_RUN_MODE=kraft_server_mode"
- "RANDOM_UUID=TU40YGvItXASz9nHKwrL73"
volumes:
- "D:/project/docker-deploy/kafka-cluster/kraft-node-3.properties:/kafka/config/kraft/server.properties"
配置文件kraft-node-1.properties需要修改部分,其它根据需求更改
# 与此实例的角色关联的节点 ID
node.id=1
# 控制器仲裁的连接字符串
controller.quorum.voters=1@kafka-kraft1:9093,2@kafka-kraft2:9093,3@kafka-kraft3:9093
# 套接字服务器侦听的地址
listeners=PLAINTEXT://kafka-kraft1:9092,CONTROLLER://kafka-kraft1:9093
配置文件kraft-node-2.properties需要修改部分,其它根据需求更改
# 与此实例的角色关联的节点 ID
node.id=3
# 控制器仲裁的连接字符串
controller.quorum.voters=1@kafka-kraft1:9093,2@kafka-kraft2:9093,3@kafka-kraft3:9093
# 套接字服务器侦听的地址
listeners=PLAINTEXT://kafka-kraft2:9092,CONTROLLER://kafka-kraft2:9093
配置文件kraft-node-3.properties需要修改部分,其它根据需求更改
# 与此实例的角色关联的节点 ID
node.id=3
# 控制器仲裁的连接字符串
controller.quorum.voters=1@kafka-kraft1:9093,2@kafka-kraft2:9093,3@kafka-kraft3:9093
# 套接字服务器侦听的地址
listeners=PLAINTEXT://kafka-kraft3:9092,CONTROLLER://kafka-kraft3:9093
Content type
Image
Digest
sha256:ff9089bd3…
Size
181 MB
Last updated
about 2 years ago
docker pull leixuewen/kafka