一、基础环境准备
sudo yum install java-1.8.0-openjdk-devel -y安装,安装后通过java -version验证是否成功。/opt/kafka),并通过echo 'export PATH=$PATH:/opt/kafka/bin' >> ~/.bashrc添加环境变量。config/zookeeper.properties,设置dataDir=/tmp/zookeeper(数据目录)、clientPort=2181(客户端端口),启动命令为bin/zookeeper-server-start.sh config/zookeeper.properties。二、Kafka Broker核心配置优化
config/server.properties,设置broker.id(集群唯一标识,如0、1)、listeners=PLAINTEXT://your_server_ip:9092(监听地址,需替换为实际IP)、advertised.listeners=PLAINTEXT://your_server_ip:9092(对外暴露地址,确保客户端可访问)、log.dirs=/data/kafka-logs1,/data/kafka-logs2(多日志目录,提升并行IO)、zookeeper.connect=localhost:2181(Zookeeper地址)。--partitions 3)和副本数(如--replication-factor 2),提升并行处理能力和数据可靠性。命令示例:bin/kafka-topics.sh --create --topic my_topic --partitions 3 --replication-factor 2 --bootstrap-server your_server_ip:9092。三、操作系统级优化
vm.swappiness=1),增加异步I/O最大数量(fs.aio-max-nr=1048576),提升磁盘IO效率。vm.dirty_background_ratio=10、vm.dirty_ratio=60),减少I/O阻塞;增加文件描述符限制(ulimit -n 65535),避免高并发下连接数不足。四、JVM参数优化
-Xms4G -Xmx4G),避免频繁GC。-XX:+UseG1GC),适合大内存场景,提升GC效率。五、Kafka性能参数调优
num.network.threads(处理网络请求的线程数)设置为CPU核数+1;num.io.threads(处理磁盘IO的线程数)设置为CPU核数×2;log.segment.bytes(日志段大小)设置为1GB,减少日志切换频率。batch.size(批量发送大小)设置为1MB,提升吞吐量;linger.ms(发送延迟)设置为100ms以上,平衡延迟与吞吐量;compression.type(压缩类型)设置为lz4,减少网络传输量。fetch.min.bytes(每次拉取最小数据量)设置为1MB,减少网络开销;max.poll.records(每次poll返回的最大记录数)根据业务需求设置(如500条),避免单次处理过多数据。六、高可用性与容灾
replication.factor≥2,确保数据冗余;监控ISR(In-Sync Replicas)列表,保证副本同步。七、监控与维护
kafka-topics.sh(查看Topic状态)、kafka-consumer-groups.sh(查看消费者组)命令,或集成Prometheus+Grafana(可视化监控指标如吞吐量、延迟、分区数)。log.retention.hours=168,保留7天;log.retention.bytes=1073741824,保留1GB),定期清理旧日志,避免磁盘空间不足。