Debian Kafka集群维护最佳实践
sudo apt install openjdk-11-jdk),配置JAVA_HOME等环境变量;下载Kafka二进制包并解压至/opt/kafka,设置KAFKA_HOME和PATH。server.properties,关键参数包括:broker.id(集群唯一标识)、listeners(监听接口,如PLAINTEXT://:9092)、advertised.listeners(对外地址,如PLAINTEXT://<节点IP>:9092)、log.dirs(日志目录,多目录提升IO)、default.replication.factor(默认副本数,≥2)、min.insync.replicas(最小ISR数,≥2,确保数据可靠性)。server.properties中配置zookeeper.connect(如localhost:2181)。kafka-topics.sh --list --bootstrap-server <brokerIP>:9092(查看Topic列表)、kafka-consumer-groups.sh --bootstrap-server <brokerIP>:9092 --describe(查看消费者组偏移量)。log.retention.hours设为72小时、log.retention.bytes设为100GB),定期清理log.dirs目录;使用df -h、du -sh监控磁盘空间,避免因磁盘满导致Broker宕机。kafka-topics.sh --create --topic my_topic --partitions 6 --replication-factor 3),分区数需匹配消费者并发需求;副本数≥2确保高可用,避免单点故障。batch.size(如32KB~64KB,增大批量大小减少网络请求)、linger.ms(如10~100ms,等待更多消息凑批)、compression.type(如snappy,减少网络传输和存储开销)。fetch.min.bytes(如1KB,减少拉取次数)、fetch.max.wait.ms(如500ms,平衡延迟与吞吐)、max.poll.records(如500,每次poll返回的记录数),避免消费者成为瓶颈。num.network.threads(CPU核数+1,处理网络请求)、num.io.threads(CPU核数×2,处理磁盘IO)、log.segment.bytes(1GB,控制日志段大小,便于清理);使用SSD存储提升IO性能,调整操作系统vm.swappiness=1(减少内存交换)、vm.dirty_ratio=10(控制脏页刷新频率)。kafka)运行Kafka,设置chown -R kafka:kafka /opt/kafka;用防火墙限制Kafka端口(9092、2181)访问,仅允许可信IP(如firewall-cmd --add-port=9092/tcp --permanent)。SCRAM-SHA-256)认证,在server.properties中配置sasl.enabled.mechanisms=SCRAM-SHA-256、sasl.mechanism.inter.broker.protocol=SCRAM-SHA-256;启用SSL/TLS加密通信,配置listeners=SSL://:9093、security.inter.broker.protocol=SSL,并设置keystore/truststore路径。kafka-acls.sh脚本设置细粒度权限,如kafka-acls.sh --authorizer-properties zookeeper.connect=localhost:2181 --add --allow-principal User:producer --operation Produce --topic my_topic(允许producer用户生产消息),遵循最小权限原则。log.dirs目录)和配置文件(server.properties);检查新版本兼容性(如Producer/Consumer API、依赖库版本);阅读发行版说明,了解修复的bug和新特性。systemctl restart kafka),避免集群停机;更新后检查服务状态(systemctl status kafka)、日志(journalctl -u kafka),验证消息发送/消费是否正常。sudo apt upgrade kafka),应用操作系统安全补丁(sudo apt update && sudo apt upgrade);定期测试数据恢复流程(如从备份目录恢复log.dirs),确保备份有效性。