Kafka Docker 项目教程
kafka-dockerDockerfile for Apache Kafka项目地址:https://gitcode.com/gh_mirrors/ka/kafka-docker
目录结构及介绍
Kafka Docker 项目的目录结构如下:
kafka-docker/
├── broker-list.sh
├── CHANGELOG.md
├── create-topics.sh
├── Dockerfile
├── docker-compose-single-broker.yml
├── docker-compose-swarm.yml
├── docker-compose.yml
├── docker_buildx
├── docker_push
├── download-kafka.sh
├── LICENSE
├── README.md
├── start-kafka-shell.sh
├── start-kafka.sh
└── versions.sh
文件介绍
broker-list.sh
: 用于列出 Kafka 代理的脚本。CHANGELOG.md
: 项目变更日志。create-topics.sh
: 用于创建 Kafka 主题的脚本。Dockerfile
: 用于构建 Kafka Docker 镜像的 Dockerfile。docker-compose-single-broker.yml
: 用于单个 Kafka 代理的 Docker Compose 配置文件。docker-compose-swarm.yml
: 用于 Docker Swarm 模式的 Docker Compose 配置文件。docker-compose.yml
: 通用的 Docker Compose 配置文件。docker_buildx
: 用于多架构构建的脚本。docker_push
: 用于推送 Docker 镜像的脚本。download-kafka.sh
: 用于下载 Kafka 二进制文件的脚本。LICENSE
: 项目许可证。README.md
: 项目自述文件。start-kafka-shell.sh
: 用于启动 Kafka shell 的脚本。start-kafka.sh
: 用于启动 Kafka 的脚本。versions.sh
: 用于管理 Kafka 版本的脚本。
项目的启动文件介绍
docker-compose.yml
docker-compose.yml
是启动 Kafka 和 Zookeeper 服务的主要配置文件。以下是该文件的部分内容:
version: '2'
services:
zookeeper:
image: wurstmeister/zookeeper
ports:
- "2181:2181"
kafka:
image: wurstmeister/kafka
ports:
- "9092:9092"
environment:
KAFKA_ADVERTISED_HOST_NAME: 192.168.99.100
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
volumes:
- /var/run/docker.sock:/var/run/docker.sock
start-kafka.sh
start-kafka.sh
是一个用于启动 Kafka 服务的脚本。以下是该脚本的部分内容:
#!/bin/bash
if [[ -z "$KAFKA_CREATE_TOPICS" ]]; then
exit 0
fi
if [[ -z "$START_TIMEOUT" ]]; then
START_TIMEOUT=600
fi
start_timeout_exceeded=false
count=0
step=10
while netstat -lnt | awk '$4 ~ /:'"$KAFKA_PORT"'$/ {exit 1}'; do
echo "waiting for kafka to be ready"
sleep $step;
count=$((count + step))
if [ $count -gt $START_TIMEOUT ]; then
start_timeout_exceeded=true
break
fi
done
if $start_timeout_exceeded; then
echo "Could not start Kafka broker (timeout!)"
exit 1
fi
IFS=','; for topicToCreate in $KAFKA_CREATE_TOPICS; do
echo "creating topics: $topicToCreate"
IFS=':' read -r -a topicConfig <<< "$topicToCreate"
JMX_PORT='' kafka-topics.sh --create --zookeeper $KAFKA_ZOOKEEPER_CONNECT --replication-factor ${topicConfig[2]} --partitions ${topicConfig[1]} --topic "${topicConfig[0]}"
done
项目的配置文件介绍
docker-compose.yml
docker-compose.yml
文件中包含了多个环境变量和配置选项,用于自定义 Kafka 和 Zookeeper 的行为。以下是一些重要的配置
kafka-dockerDockerfile for Apache Kafka项目地址:https://gitcode.com/gh_mirrors/ka/kafka-docker
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考