欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Kafka日志清理實現(xiàn)詳細(xì)過程講解

 更新時間:2023年05月17日 09:22:30   作者:shysh  
這篇文章主要為大家介紹了Kafka日志清理實現(xiàn)詳細(xì)過程講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

Kafka日志清理目前主要有兩種策略:

  • 日志刪除
  • 日志壓縮:日志壓縮就是根據(jù)key來保留最后一條消息。

Kafka提供log.cleanup.policy參數(shù)進(jìn)行相應(yīng)配置,默認(rèn)值:delete,還可以選擇compact。

日志刪除

配置默認(rèn)值說明
log.retention.check.interval.ms300000 (5分鐘)檢測頻率
log.retention.hours168 (7天)日志保留時間小時
log.retention.minutes日志保留時間分鐘
log.retention.ms日志保留時間毫秒
file.delete.delay.ms60000 (1分鐘)延遲執(zhí)行刪除時間
log.retention.bytes-1 無窮大運行保留日志文件最大值
log.retention.bytes1073741824 (1G)日志文件最大值

Kafka會根據(jù)檢測頻率周期性的檢測日志是否需要刪除,日志刪除策略主要有以下集中:

  • 基于時間的刪除策略
  • 基于文件大小的刪除策略
  • 基于日志文件起始偏移量

基于時間刪除

Kafka會查找日志段的時間戳索引文件中的最后一條記錄,如果最后一條timestamp小于0,則取最近修改時間。

當(dāng)確認(rèn)完需要刪除的日志段以后,需要進(jìn)行以下刪除操作:

  • 從日志對象中所維護(hù)日志分段的ConcurrentSkipListMap中移除待刪除的日志分段,保證沒有線程對這些日志分段進(jìn)行讀取操作。
  • 為日志段中的所有文件加上.delete后綴
  • Kafka中會有一個命名為"delete-file"的延遲任務(wù)來刪除這些無效的日志數(shù)據(jù)

假如當(dāng)前日志段中也有需要刪除的數(shù)據(jù),那么kafka會先進(jìn)行分段,創(chuàng)建一個新的活躍日志段,然后執(zhí)行刪除操作。

基于大小刪除

  • 計算需要刪除的日志大小的總和(當(dāng)前日志大小-所允許的日志文件最大值)
  • 然后從第一個日志分段開始查找,查找可以進(jìn)行刪除的日志段集合
  • 最后執(zhí)行刪除操作

基于日志文件起始偏移量

日志文件起始偏移量默認(rèn)等于第一個日志段的基準(zhǔn)偏移量,但隨著數(shù)據(jù)的刪除操作,該值也在不斷變化。

基于日志文件起始偏移量的判斷規(guī)則是,如果一個日志段的下一個日志段的起始偏移量如果小于日志文件起始偏移量,那么該日志段就可以被加入到刪除隊列,最后執(zhí)行刪除。

以上就是Kafka日志清理實現(xiàn)詳細(xì)過程講解的詳細(xì)內(nèi)容,更多關(guān)于Kafka日志清理的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • MyBatis映射文件中的動態(tài)SQL實例詳解

    MyBatis映射文件中的動態(tài)SQL實例詳解

    在本文中,我們深入探討了動態(tài)SQL的各種標(biāo)簽,包括<if>、<choose>、<trim>、<foreach>等,通過實際的例子演示了它們的用法,感興趣的朋友一起揭開動態(tài)SQL的神秘面紗,帶你領(lǐng)略它的魅力
    2024-01-01
  • java實現(xiàn)6種字符串?dāng)?shù)組的排序(String array sort)

    java實現(xiàn)6種字符串?dāng)?shù)組的排序(String array sort)

    這篇文章主要介紹了java實現(xiàn)6種字符串?dāng)?shù)組的排序(String array sort),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • Java中使用Jedis操作Redis的示例代碼

    Java中使用Jedis操作Redis的示例代碼

    本篇文章主要介紹了Java中使用Jedis操作Redis的示例代碼,具有一定的參考價值,有興趣的可以了解一下。
    2016-12-12
  • spring自定義一個簡單的Starter啟動器

    spring自定義一個簡單的Starter啟動器

    這篇文章主要介紹了spring自定義一個簡單的Starter啟動器,一個 starter其實就是對一個功能的集成封裝,然后對外提供一個依賴,讓業(yè)務(wù)去使用,像我們熟悉的 Redis,mongo,mybatis 等均屬于,需要的朋友可以參考下
    2023-07-07
  • 深入淺析SPI機(jī)制在JDK與Spring?Boot中的應(yīng)用

    深入淺析SPI機(jī)制在JDK與Spring?Boot中的應(yīng)用

    SPI是一種使軟件框架或庫更加模塊化、可擴(kuò)展和可維護(hù)的有效方法。通過遵循“開閉原則”,?SPI?確保了系統(tǒng)的穩(wěn)定性和靈活性,從而滿足了不斷變化的業(yè)務(wù)需求,這篇文章主要介紹了SPI機(jī)制在JDK與Spring?Boot中的應(yīng)用,需要的朋友可以參考下
    2023-09-09
  • mybatis-plus 處理大數(shù)據(jù)插入太慢的解決

    mybatis-plus 處理大數(shù)據(jù)插入太慢的解決

    這篇文章主要介紹了mybatis-plus 處理大數(shù)據(jù)插入太慢的解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • Spring學(xué)習(xí)筆記之RestTemplate使用小結(jié)

    Spring學(xué)習(xí)筆記之RestTemplate使用小結(jié)

    這篇文章主要給大家介紹了關(guān)于Spring學(xué)習(xí)筆記之RestTemplate使用的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-08-08
  • 如何使用Spring Boot ApplicationRunner解析命令行中的參數(shù)

    如何使用Spring Boot ApplicationRunner解析命令行中的參數(shù)

    這篇文章主要介紹了使用Spring Boot ApplicationRunner解析命令行中的參數(shù),本文通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-12-12
  • Java編程基礎(chǔ)元素-運算符

    Java編程基礎(chǔ)元素-運算符

    這篇文章主要介紹了Java編程基礎(chǔ)元素-運算符,運算符就是在用變量或常量進(jìn)行運算時,經(jīng)常需要用到的運算符,Java?提供了豐富的運算符,可分為算術(shù)運算符、關(guān)系運算符、邏輯運算符和位運算符,下面來看具體的內(nèi)容介紹吧
    2022-01-01
  • Spring MVC Mybatis多數(shù)據(jù)源的使用實例解析

    Spring MVC Mybatis多數(shù)據(jù)源的使用實例解析

    項目需要從其他網(wǎng)站獲取數(shù)據(jù),因為是臨時加的需求,這篇文章主要介紹了Spring MVC Mybatis多數(shù)據(jù)源的使用實例解析,需要的朋友可以參考下
    2016-12-12

最新評論