在Linux上配置Kafka时,需重点关注以下方面:
-
环境准备
- 安装适配的JDK(推荐OpenJDK 8+)。
- 确保Zookeeper服务正常(Kafka 2.8+可不用Zookeeper,需配置Kraft模式)。
-
核心配置参数
- broker.id:集群中唯一标识,需手动设置避免冲突。
- listeners/advertised.listeners:配置监听地址,
advertised.listeners
需指定客户端可访问的地址(避免使用0.0.0.0
)。
- log.dirs:指定数据存储目录,建议多磁盘路径提升性能。
- num.partitions/replication.factor:根据吞吐量设置分区数,副本数≥2保障高可用。
- log.retention.*:设置日志保留时间/大小,避免磁盘占满。
-
性能优化
- 内存配置:调整JVM堆内存(建议不超过物理内存50%),设置
buffer.memory
控制缓冲区大小。
- 线程优化:合理配置
num.network.threads
和num.io.threads
提升并发处理能力。
- 消息压缩:启用
compression.type
(如snappy
/lz4
)减少网络和存储开销。
-
高可用与安全
- 副本机制:通过
min.insync.replicas
确保数据可靠性,副本数≥2时配置acks=all
。
- 权限控制:启用SASL/SSL认证,配置ACL限制访问。
-
监控与维护
- 使用JMX或Prometheus+Grafana监控集群状态,关注磁盘、网络和GC情况。
- 定期清理日志文件,避免磁盘空间不足。
-
常见问题规避
- 检查端口冲突,确保
listeners
配置的端口未被占用。
- 确保数据目录权限正确,Kafka进程需有读写权限。
参考来源:[1,2,3,4,5,6,7,8,9,11]