Kafka通過以下機制實現消息持久化:
日志文件存儲
副本機制(Replication)
刷盤策略
log.flush.interval.messages
和log.flush.interval.ms
控制消息刷盤頻率,平衡性能與可靠性。消息保留策略
log.retention.hours
)或大?。?code>log.retention.bytes)清理舊消息,支持長期存儲。零拷貝技術
sendfile
系統調用減少數據拷貝次數,提升讀取效率。關鍵配置示例:
# 分區副本數(確保高可用)
default.replication.factor=3
# ISR中最小同步副本數(避免腦裂)
min.insync.replicas=2
# 日志保留時間(7天)
log.retention.hours=168
# 單個日志段大?。?GB)
log.segment.bytes=1073741824
通過上述機制,Kafka實現了消息的持久化存儲、高可用性和高性能,滿足分布式場景下的可靠消息處理需求。