以下Kafka配置对稳定性有关键影响:
副本与高可用配置
replication.factor:副本数≥2,建议3(生产环境),确保单节点故障时数据不丢失。min.insync.replicas:与生产者acks配合,确保写入时至少有指定数量的副本同步,避免数据丢失。unclean.leader.election.enable:设为false,避免非同步副本成为Leader导致数据不一致。Broker核心参数
log.dirs:配置多个磁盘目录分散IO压力,提升读写可靠性。num.network.threads/num.io.threads:根据CPU核数调整,确保网络和磁盘IO处理能力。socket.send/receive.buffer.bytes:适当增大缓冲区,提升网络传输效率。生产者与消费者配置
acks:all或-1确保消息持久化,但吞吐量降低;1平衡可靠性和性能。retries:设置合理重试次数,避免网络抖动导致消息丢失。session.timeout.ms/heartbeat.interval.ms:合理设置心跳间隔,避免消费组频繁重平衡。资源与系统配置
监控与运维配置
UnderReplicatedPartitions等指标,及时发现副本同步问题。log.retention.hours/bytes),避免磁盘占满。