在Linux上配置Kafka时,需重点关注以下方面:
-
环境准备
- 确保系统为CentOS 7+或Ubuntu 18.04+等主流发行版,安装Java 8/11环境。
- 磁盘预留至少50GB空间,推荐使用多磁盘挂载
log.dirs提升性能。
- 配置防火墙开放Kafka(9092)和Zookeeper(2181)端口。
-
核心配置文件(server.properties)
- broker.id:集群中唯一标识,数值需唯一。
- listeners/advertised.listeners:配置监听地址及对外公布的IP:端口,确保网络可达。
- log.dirs:指定数据存储目录,建议多路径分布在不同磁盘。
- zookeeper.connect:指定Zookeeper集群地址(单机版可配置本地路径)。
- num.partitions/replication.factor:根据吞吐量调整分区数,副本数≥2保障高可用。
-
性能与稳定性优化
- 限制Kafka进程文件描述符数量(
ulimit -n 65535),避免因文件句柄不足导致异常。
- 调整JVM堆内存(建议不超过5GB),避免占用过多系统资源。
- 启用日志压缩(
compression.type=snappy)减少存储和带宽消耗。
-
高可用与安全
- 配置Zookeeper集群(至少3节点),避免单点故障。
- 启用SASL/SSL认证,配置ACL权限控制,确保数据传输安全。
-
监控与维护
- 定期清理日志文件,避免磁盘占满(可通过
log.retention.hours设置保留时间)。
- 使用Kafka自带工具(如
kafka-topics.sh)监控Topic状态,及时处理分区异常。
注意事项:
- 避免使用root用户运行Kafka,创建专用用户并设置目录权限。
- 集群部署时需确保各节点时间同步(如使用NTP服务)。
- 单机测试可跳过Zookeeper集群配置,但生产环境必须使用独立Zookeeper。
参考来源: