以下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),避免磁盤占滿。