您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“Kafka日志清理策略有哪些”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“Kafka日志清理策略有哪些”這篇文章吧。
Kafka日志清理目前主要有兩種策略:
日志刪除
日志壓縮:日志壓縮就是根據key來保留最后一條消息。
Kafka提供log.cleanup.policy參數進行相應配置,默認值:delete,還可以選擇compact。
配置 | 默認值 | 說明 |
---|---|---|
log.retention.check.interval.ms | 300000 (5分鐘) | 檢測頻率 |
log.retention.hours | 168 (7天) | 日志保留時間小時 |
log.retention.minutes | 日志保留時間分鐘 | |
log.retention.ms | 日志保留時間毫秒 | |
file.delete.delay.ms | 60000 (1分鐘) | 延遲執行刪除時間 |
log.retention.bytes | -1 無窮大 | 運行保留日志文件最大值 |
log.retention.bytes | 1073741824 (1G) | 日志文件最大值 |
Kafka會根據檢測頻率周期性的檢測日志是否需要刪除,日志刪除策略主要有以下集中:
基于時間的刪除策略
基于文件大小的刪除策略
基于日志文件起始偏移量
Kafka會查找日志段的時間戳索引文件中的最后一條記錄,如果最后一條timestamp小于0,則取最近修改時間。
當確認完需要刪除的日志段以后,需要進行以下刪除操作:
從日志對象中所維護日志分段的ConcurrentSkipListMap中移除待刪除的日志分段,保證沒有線程對這些日志分段進行讀取操作。
為日志段中的所有文件加上.delete后綴
Kafka中會有一個命名為"delete-file"的延遲任務來刪除這些無效的日志數據
假如當前日志段中也有需要刪除的數據,那么kafka會先進行分段,創建一個新的活躍日志段,然后執行刪除操作。
計算需要刪除的日志大小的總和(當前日志大小-所允許的日志文件最大值)
然后從第一個日志分段開始查找,查找可以進行刪除的日志段集合
最后執行刪除操作
日志文件起始偏移量默認等于第一個日志段的基準偏移量,但隨著數據的刪除操作,該值也在不斷變化。
基于日志文件起始偏移量的判斷規則是,如果一個日志段的下一個日志段的起始偏移量如果小于日志文件起始偏移量,那么該日志段就可以被加入到刪除隊列,最后執行刪除。
以上是“Kafka日志清理策略有哪些”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。