openjdk-8-jdk),通过java -version验证安装。zookeeper.connect参数指向Zookeeper地址(如localhost:2181)。broker.id:每个Broker的唯一整数标识(集群中不可重复),用于区分不同节点。listeners:指定Broker监听的IP地址和端口(如PLAINTEXT://0.0.0.0:9092),需确保Linux防火墙开放对应端口(如sudo ufw allow 9092/tcp)。advertised.listeners:客户端连接的外部可访问地址(如PLAINTEXT://your_server_ip:9092),避免客户端无法连接。log.dirs:消息日志存储目录(建议指定多个目录,如/data/kafka/logs1,/data/kafka/logs2),分布在不同磁盘可提升IO性能。log.retention.hours:日志保留时间(默认168小时/7天),可根据业务需求调整(如log.retention.hours=168保留7天)。log.segment.bytes:单个日志段大小(默认1GB),过小会增加文件数量,过大不利于清理,建议设置为1-10GB。num.partitions:Topic默认分区数(如num.partitions=8),需根据预期吞吐量调整(分区越多,并行处理能力越强)。default.replication.factor:Topic默认副本数(如default.replication.factor=3),建议≥2以保证高可用(需结合min.insync.replicas确保数据可靠性)。min.insync.replicas:ISR(同步副本)最小数量(如min.insync.replicas=2),确保数据写入时至少有2个副本确认,避免因副本同步问题导致数据丢失。num.io.threads:磁盘IO线程数(建议设置为CPU核心数的2倍,如8核CPU设置为16),优化磁盘写入性能。num.network.threads:网络处理线程数(建议设置为CPU核心数的1-2倍,如8核CPU设置为8-16),处理客户端请求。KAFKA_HEAP_OPTS环境变量调整JVM堆内存(避免超过物理内存的70%,防止触发系统swap),如:export KAFKA_HEAP_OPTS="-Xms4G -Xmx4G" # 初始堆内存与最大堆内存一致,减少GC次数
export KAFKA_HEAP_OPTS="$KAFKA_HEAP_OPTS -XX:+UseG1GC"
export KAFKA_HEAP_OPTS="$KAFKA_HEAP_OPTS -XX:MaxMetaspaceSize=512m"
export KAFKA_HEAP_OPTS="$KAFKA_HEAP_OPTS -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/var/log/kafka/gc.log"
log.dirs指定多个目录),避免单磁盘成为瓶颈。vm.max_map_count(Kafka使用mmap机制,需设置为≥num.partitions * 2,如echo "vm.max_map_count=262144" >> /etc/sysctl.conf)。vm.swappiness=1(降低系统使用swap的概率,提升磁盘IO性能)。net.core.rmem_max(接收缓冲区)、net.core.wmem_max(发送缓冲区)等参数,提升网络传输效率。default.replication.factor≥2(数据副本数),并通过min.insync.replicas≥2确保数据写入时至少有2个副本确认,避免数据丢失。server.properties中设置security.protocol=SASL_PLAINTEXT、sasl.mechanism=SCRAM-SHA-256,并通过kafka-configs.sh创建用户。ssl.truststore.location(信任库路径)、ssl.keystore.location(密钥库路径)等参数,加密客户端与Broker之间的通信。kafka-acls.sh命令),避免未授权访问。kafka-topics.sh查看Topic信息、kafka-consumer-groups.sh查看消费者组偏移量)。server.log、controller.log)和GC日志,及时发现并解决异常(如Broker宕机、内存溢出)。kafka-configs.sh脚本动态修改配置(如调整分区数、副本数),无需重启Broker,适应业务变化。