recover(恢複日志段)
-
什麼是恢複日志段?
Broker 在啟動時會從磁盤上加載所有日志段資訊到記憶體中,并建立相應的 LogSegment 對象執行個體。是Broker重新開機後恢複日志段的操作邏輯。
執行流程
step1
step2
step3
注意該操作在執行過程中要讀取日志段檔案。是以,若你的環境有很多日志段檔案,你又發現Broker重新開機很慢,那你現在就知道了,這是因為Kafka在執行recover的過程中需要讀取大量磁盤檔案。
Log源碼添加一個簡便方法,統計介于高水位值和LEO值之間的消息總數。
private[log] def messageCountBetweenHWAndLEO: Long = {
logEndOffset - highWatermarkMetadata.messageOffset
}
參考