回覆列表
  • 1 # 星夜無雙

    一致性:若某條訊息對consumer可見,那麼即使Leader掛了,在新Leader上資料依然可見。

    ISR (In-Sync Replicas)是Leader在Zookeeper中動態維護基本保持同步的Replica列表,該列表中儲存的是與Leader副本保持訊息同步的所有副本對應的Follower節點id。ISR冗餘備份機制核心邏輯圍繞HW值、LEO值展開。

    LEO(last end offset)日誌末端偏移量,記錄了該副本物件底層日誌檔案中下一條訊息的位移值。

    HW(highwatermark),高水印值,任何一個副本物件的HW值一定不大於其LEO值,而小於或等於HW值的所有訊息被認為是“已提交的”或“已備份的”。consumer只能消費已提交的訊息,HW之後的資料對consumer不可見。

    Kafka如何保證順序性

    Kafka只能保證partition內部有序,不保證整個topic有序。

    亂序場景一

    因為一個topic可以有多個partition,kafka只能保證partition內部有序。可能需要順序的資料分佈到了不同的partition,導致處理時亂序

    解決方案

    1、可以設定topic 有且只有一個partition

    2、根據業務需要,需要順序的 指定為同一個partition

    3、根據業務需要,比如同一個訂單,使用同一個key,可以保證分配到同一個partition上

    亂序場景二

    對於同一業務進入了同一個消費者組之後,用了多執行緒來處理訊息,會導致訊息的亂序

    解決方案

    消費者內部根據執行緒數量建立等量的記憶體佇列,對於需要順序的一系列業務資料,根據key或者業務資料,放到同一個記憶體佇列中,然後執行緒從對應的記憶體佇列中取出並操作

  • 中秋節和大豐收的關聯?
  • 海天鮮味汁和醬油區別?