Ubuntu 上部署与调优 Kafka 的关键注意事项
一 基础环境与部署要点
java -version;如未安装,使用 sudo apt update && sudo apt install openjdk-11-jdk。Kafka 是基于 Java 的服务,版本过旧会导致兼容性问题。wget 下载并解压到目标目录。test,用控制台生产者/消费者验证消息收发,确保 localhost:9092 可达。二 关键配置项与常见坑
broker.id:每个 Broker 必须唯一(单机可设为 0)。listeners 与 advertised.listeners:明确监听地址与对外可达地址,避免内外网访问错配。log.dirs:避免使用 /tmp,改为有充足空间与正确权限的目录;多盘可配置多个路径以提升 I/O。auto.create.topics.enable:生产建议设为 false,避免误建 Topic。log.retention.hours 与 log.retention.bytes,防止磁盘被占满。message.max.bytes 与副本侧 replica.fetch.max.bytes,保证端到端不报错。zookeeper.connect=localhost:2181。server.properties 或 zookeeper.properties 的端口。log.dirs 目录对运行用户可写。KAFKA_HEAP_OPTS 增大堆内存。三 安全加固与访问控制
四 性能与资源调优建议
log.dirs 挂载多块磁盘或使用 SSD/NVMe,可显著提升顺序写与 compaction 性能。ulimit -n 65535,避免连接/文件句柄不足。-Xms 与 -Xmx 建议等值(如 4G–8G 起步,视机器内存而定)。num.network.threads=CPU 核数+1,num.io.threads=CPU 核数*2。batch.size=32768、log.flush.interval.messages=10000、log.flush.interval.ms=1000。batch.size=32768、linger.ms=5、buffer.memory=33554432。fetch.min.bytes=1048576、fetch.max.wait.ms=500、max.partition.fetch.bytes=5242880。五 运维与排错清单
After=network.target,并配置 Restart=on-failure 提升可用性。log.retention.hours/bytes 防止磁盘被占满。