基於時間的刪除策略
在server.properity
檔案中設定如下:
log.retention.hours=
168//7d
log.retention.check.interval.ms=
300000
//5min
log.segment.bytes=
1073741824
//1g
log.cleaner.
delete
.retention.ms=
86400000
// 1d
log.cleaner.backoff.ms=
15000
//15s
每個segment
的大小為1gb
,每5分鐘
檢查一次是否有segment
已經查過了7d
,如果有將其標記為deleted
。標記為deleted
的segment
缺省會保留1天
,清理執行緒會每隔15秒
檢查一次,是否有標記為deleted的segment
的保留時間超過一天了,如果有將其從檔案系統刪除。
大家注意,kafka
清理時是不管該segment
中的訊息是否被消費過,它清理的依據為是否超過了指定的保留時間,僅此而已。
基於大小的刪除策略
log.retention.bytes引數預設沒有指定。
混合策略同時指定log.retention.bytes
和log.retention.hours=168
,那麼哪個先達到就以哪個為準.
kafka
還提供了日誌壓縮(log compaction)
功能,通過這個功能可以有效的減少日誌檔案的大小,緩解磁碟緊張的情況,在很多實際場景中,訊息的 key 和 value 的值之間的對應關係是不斷變化的,就像資料庫中的資料會不斷被修改一樣,消費者只關心key
對應的最新的value
。因此,我們可以開啟kafka
的日誌壓縮功能,服務端會在後台啟動啟動cleaner 執行緒池
,定期將相同的 key 進行合併,只保留最新的 value 值。
kafka
日誌到達清除時間後,並不會真正清除,只是標記為deleted
, 真正刪除還有乙個延時,這個時間通過log.cleaner.delete.retention.ms
引數進行設定
kafka — 全面解析kafka以及訊息傳輸流程(一)_haqiu.hwang的部落格-csdn部落格
使用shell指令碼清除日誌的策略
usr bin env bash file path 日誌路徑 file size du m awk 日誌路徑下的檔案大小 default size 35 1024 預設乙個ip日誌檔案的總量為35g over size 現有的檔案總量是35g的倍數 flag size over size 1 ov...
Sql清除日誌
問題補充 sql的日誌可以清除嗎?方法2 6都可以 1 收縮資料庫檔案 如果不壓縮,資料庫的檔案不會減小 企業管理器 右鍵你要壓縮的資料庫 所有任務 收縮資料庫 收縮檔案 選擇日誌檔案 在收縮方式裡選擇收縮至xxm,這裡會給出乙個允許收縮到的最小m數,直接輸入這個數,確定就可以了 選擇資料檔案 在收...
清除Sql日誌
今天 剛上班不久,業務部就反應 的資料從凌晨兩點後就沒有更新了 初步估計是脆弱的資料庫伺服器又出問題了 果然,剛登陸上資料庫伺服器,系統就彈出提示,xx資料庫日誌已經滿,請備份資料庫日誌.這個想來正常,昨天檢視該資料庫日誌檔案的時候已經是6g多了,只是沒想到來得這麼快,廢話少說,馬上動手 根據以往的...