在 Ubuntu 上部署与配置 Kafka 的关键注意事项
一 基础环境与版本选择
java -version。Kafka 对 Java 版本较敏感,建议与所用 Kafka 版本匹配。二 部署模式与核心配置
config/server.properties 中正确设置
broker.id(集群内唯一)、listeners(如 PLAINTEXT://:9092)、log.dirs、zookeeper.connect=localhost:2181;config/zookeeper.properties 中设置 dataDir 与 clientPort=2181。bin/kafka-storage.sh random-uuid;bin/kafka-storage.sh format -t <ClusterID> -c config/kraft/server.properties;config/kraft/server.properties 中设置 process.roles=broker,controller、controller.quorum.voters=0@<本机IP>:9093、listeners=PLAINTEXT://:9092、controller.listener.names=CONTROLLER、inter.broker.listener.name=PLAINTEXT 等;bin/kafka-server-start.sh config/kraft/server.properties。advertised.listeners,避免使用 localhost 导致外部无法连接。三 网络与防火墙
sudo ufw allow 9092,2181,9093/tcp;firewalld 示例:firewall-cmd --permanent --add-port=9092/tcp --add-port=2181/tcp --add-port=9093/tcp && firewall-cmd --reload。listeners 中明确绑定到 0.0.0.0(或指定内网/公网 IP),并确保云服务器安全组规则同步开放。四 系统资源与 JVM 调优
KAFKA_HEAP_OPTS 设置堆大小,建议 -Xms 与 -Xmx 等值(如 -Xms4G -Xmx4G),选用 G1 GC 并开启 GC 日志以便排查。log.dirs 指向高性能磁盘(如 SSD/NVMe),必要时配置多日志目录;文件系统优先 XFS,挂载时可使用 noatime 降低元数据写入。五 安全加固与运维实践
min.insync.replicas=2,提升容错能力。-Dcom.sun.management.jmxremote.port=9999)结合 Prometheus + Grafana 或 Burrow 监控消费延迟与堆积;关注 活跃控制器数量、未复制分区数、磁盘使用率 等关键指标。