一、集群架构设计:构建高可用基础
zookeeper.connect配置为所有节点地址(如zookeeper1:2181,zookeeper2:2181,zookeeper3:2181)。二、核心配置优化:提升稳定性与性能
default.replication.factor=3:主题默认副本数设为3,确保数据在3个Broker上冗余存储。min.insync.replicas=2:至少2个同步副本才认为写入成功,避免因单副本故障导致数据丢失。unclean.leader.election.enable=false:禁止非同步副本成为leader,防止数据不一致。num.partitions:设为Broker数量的倍数(如3节点集群设为6),提高并行处理能力。num.network.threads=8(处理网络请求),num.io.threads=8(处理磁盘IO),根据Broker核心数调整(建议为CPU核心数的1-2倍)。socket.send.buffer.bytes=1MB、socket.receive.buffer.bytes=1MB,提升网络传输效率。log.retention.hours=168:日志保留7天(168小时),避免磁盘空间耗尽。log.segment.bytes=1GB:单个日志段大小设为1GB,减少日志切换频率。log.cleanup.policy=compact(针对Key-Value型Topic),节省存储空间。-Xmx4G -Xms4G(初始堆=最大堆),避免频繁GC。-XX:+UseG1GC),适合大内存场景,减少GC停顿时间。三、操作系统优化:适配Kafka高性能需求
ulimit -n 65536,增加单个进程可打开的文件数(Kafka需处理大量连接和文件)。vm.swappiness=10:减少内存交换(Swap),避免因磁盘IO导致性能下降。vm.dirty_background_ratio=10、vm.dirty_ratio=20:控制脏页刷新阈值,平衡写入性能与数据安全性。四、监控与运维:提前发现问题,快速响应
min.insync.replicas、磁盘空间剩余<20%、GC停顿时间>1s),及时通知运维人员。kafka-backup工具)和配置文件。/var/log/kafka/server.log)定位原因,若无法恢复则替换节点并重新加入集群。五、安全配置:保障数据与集群安全
ssl.keystore.location、ssl.keystore.password),加密Broker间及客户端与Broker间的通信。sasl.mechanism=PLAIN、sasl.jaas.config),限制客户端访问权限;通过ACL(访问控制列表)控制Topic的读写权限。