Debian 上让 Kafka 稳定运行的关键实践
一 基础环境与安全
java -version。tickTime=2000、initLimit=10、syncLimit=5、dataDir=/var/lib/zookeeper、clientPort=2181,集群节点使用 server.X=host:2888:3888。sudo ufw allow 9092/tcp;如需远程访问,务必正确设置 listeners 与 advertised.listeners,避免内外网地址错配。二 关键配置与高可用
log.dirs=/var/lib/kafka/logs;对外暴露地址通过 advertised.listeners 正确声明。unclean.leader.election.enable=false,减少数据丢失风险;按需调整 log.retention.hours(如 168 小时)与 log.segment.bytes(如 1GB)以平衡恢复速度与磁盘占用。三 系统服务与运维
After=network.target;Kafka:After=network.target zookeeper.targetRestart=always,以崩溃自恢复;使用专用系统用户(如 kafka:kafka)运行,目录权限最小化。四 性能与容量调优
num.network.threads(网络收发)与 num.io.threads(磁盘 I/O),副本拉取线程 num.replica.fetchers 合理配比,避免 I/O 争用。batch.size(如 128KB–1MB)、设置 linger.ms(如 50–100ms)、启用 compression.type=snappy/lz4、根据场景选择 acks=all/1;高吞吐可适度放宽确认策略。fetch.min.bytes(如 1MB)、fetch.max.wait.ms(如 1000ms)、max.poll.records(如 1000–2000),减少频繁拉取带来的开销。五 升级与变更流程