docker/init/6.kafka.sh

62 lines
1.6 KiB
Bash
Raw Normal View History

2025-05-14 17:45:46 +08:00
source ../environment.sh
if [ -z "$NETWORK" ]; then
echo "错误: 未找到 NETWORK 环境变量"
exit 1
fi
if [ -z "$HOST_IP" ]; then
echo "错误: 未找到 HOST_IP 环境变量"
exit 1
fi
if [ -z "$KAFKA_PORT" ]; then
echo "错误: 未找到 KAFKA_PORT 环境变量"
exit 1
fi
if [ -z "$KAFKA_NAME" ]; then
echo "错误: 未找到 KAFKA_NAME 环境变量"
exit 1
fi
if [ -z "$KAFKA_IMAGE" ]; then
echo "错误: 未找到 KAFKA_IMAGE 环境变量"
exit 1
fi
if [ -z "$KAFKA_MEMORY" ]; then
echo "错误: 未找到 KAFKA_MEMORY 环境变量"
exit 1
fi
if docker ps -a | grep -q ${KAFKA_NAME}; then
echo "停止并删除已存在的 KAFKA 容器..."
docker stop ${KAFKA_NAME} >/dev/null 2>&1
docker rm ${KAFKA_NAME} >/dev/null 2>&1
fi
docker run -d \
--name ${KAFKA_NAME} \
--network $NETWORK \
-p ${KAFKA_PORT}:9092 \
-e KAFKA_NODE_ID=1 \
-e KAFKA_PROCESS_ROLES=broker,controller \
-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092,CONTROLLER://0.0.0.0:29093 \
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://${HOST_IP}:${KAFKA_PORT} \
-e KAFKA_CONTROLLER_QUORUM_VOTERS=1@${KAFKA_NAME}:29093 \
-e KAFKA_CONTROLLER_LISTENER_NAMES=CONTROLLER \
-e CLUSTER_ID=b8f3a0c1-1234-5678-9abc-def012345678 \
-e KAFKA_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT \
-e KAFKA_INTER_BROKER_LISTENER_NAME=PLAINTEXT \
-e KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR=1 \
-e KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR=1 \
-e KAFKA_TRANSACTION_STATE_LOG_MIN_ISR=1 \
-e KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS=0 \
-e KAFKA_NUM_PARTITIONS=3 \
-e KAFKA_AUTO_CREATE_TOPICS_ENABLE=true \
--memory ${KAFKA_MEMORY} --restart unless-stopped ${KAFKA_IMAGE}