Ubuntu 上配置 Kafka 的关键注意事项
一 基础环境与依赖
java -version 验证。sudo apt install -y zookeeperd 快速启动,或手动下载解压并配置 zoo.cfg 的 dataDir 与 clientPort=2181。二 核心配置要点
config/server.properties 中正确设置:
broker.id:集群内唯一(每台 broker 不同)。listeners:明确协议与地址,例如 PLAINTEXT://:9092 或 PLAINTEXT://<本机IP>:9092,避免仅用主机名导致解析问题。log.dirs:数据目录(如 /var/lib/kafka-logs),确保目录存在且权限正确。zookeeper.connect:ZooKeeper 地址(如 localhost:2181 或 zk1:2181,zk2:2181,zk3:2181)。listeners 规范与一致的 zookeeper.connect,仅 broker.id 不同。三 网络与防火墙
sudo ufw allow 9092,2181,9093/tcp;云服务器需同步配置 安全组 规则。sudo netstat -tulnp | grep -E '9092|2181|9093' 检查占用。listeners 中使用明确的 IP 或 0.0.0.0,并确保云主机的内外网映射正确。四 服务管理与自启动
/etc/systemd/system/kafka.service,设置 After=zookeeper.service(ZooKeeper 模式)或相应依赖(KRaft 模式),User=kafka,ExecStart 指向 Kafka 启动脚本。sudo systemctl daemon-reload、sudo systemctl enable --now kafka、sudo systemctl status kafka。五 安全与性能优化
export KAFKA_HEAP_OPTS="-Xms4G -Xmx4G",不超过物理内存的 50%),提升文件描述符限制(ulimit -n 65535),必要时调整内核参数(如 vm.swappiness、vm.dirty_background_ratio)。log.dirs=/path1,/path2;文件系统建议 XFS/EXT4,挂载时可用 noatime 降低元数据写入。num.network.threads、num.io.threads、batch.size、linger.ms、fetch.min.bytes、log.retention.hours、log.segment.bytes;合理规划 分区数 与 副本数 以兼顾吞吐与可用性。