kafka-server-start脚本通过kafka-run-class脚本调用Kafka类来启动Broker,在调用kafka-run-class脚本之前会进行检测命令行参数、设置log4j配置文件、设置JVM内存参数等操作。
- #!/bin/bash
- if [$# -lt 1]; #检查参数个数
- then #打印命令用法
- echo "USAGE: $0 [-daemon] server.properties [--override property-value]*"
- exit 1
- fi
- base_ dir=$(dirname $0) #获取当前脚本所在的路径
- #设置Log4j相关的环境变量
- if [ "x$KAFKA_LOG4J_OPTS" = "x" ]; then
- export KAFKA_LOG4J_OPTS =
- "-Dlog4j.configuration=file:$base_dir/../config/log4f.properties"
- fi
- #设置JVM的内存
- if[ "x$KAFKA_HEAP_OPTS" = "x"]; then
- export KAEKA_HEAP_OPTS="-Xmx1G -Xms1G"
- fi
- EXTRA ARGS-"-name kafkaServer -1oggc"
- #检测第一个参数是否为"-daemon"
- COMMAND=$1
- case SCOMMAND in
- -daemon)
- EXTRA_ARGS="-daemon "SEXTRA ARGS
- shift # 左移参数列表,即删除"-daemon"参数
- # 调用kafka-run-class 脚本
- exec $base_dir/kafka-run-class.sh $EXTRA_ARGS kafka.Kafka "$@"
- 很多脚本和工具类都依赖于kafka-run-class脚本,其中的主要功能是设置CLASSPATH,进行JMX的相关配置,配置Log4j,指定存放日志文件和索引文件位置,检测JAVA HOME环境变量,进行JVM的相关配置,决定是否后台启动。