kafka之高可靠 一致性 高吞吐

2021-10-13 12:58:44 字數 727 閱讀 9195

高可靠

1、ack機制

如果我們要往 kafka 對應的主題傳送訊息,我們需要通過 producer 完成。前面我們講過 kafka 主題對應了多個分割槽,每個分割槽下面又對應了多個副本;為了讓使用者設定資料可靠性, kafka 在 producer 裡面提供了訊息確認機制。也就是說我們可以通過配置來決定訊息傳送到對應分割槽的幾個副本才算訊息傳送成功。可以在定義 producer 時通過 acks 引數指定。這個引數支援以下三種值:

一致性

isr同步副本集合

kafka中,乙個topic的某個partition的leader如果失效,可以在該partition的isr中動態選舉出乙個新的leader

isr概念: isr(in-sync replicas)集合(同步副本)。每個分割槽的 leader 會維護乙個 isr 集合,isr 集合裡面就是 follower 副本的 borker 編號,leader副本也在isr中,只有跟得上 leader 的 follower 副本才能加入到 isr 裡面,跟的上並不是完全同步才算跟的上,這個是通過 replica.lag.time.max.ms 引數配置的,也就是說isr中副本的leo最多落後leader副本leo這個引數值,只有 isr 裡的成員才有被選為 leader 的可能。跟不上 leader 的 follower 副本進入osr(out-sync replicas)。

高吞吐

Kafka 可靠性和一致性

為了保證資料的可靠性,我們最少需要配置一下幾個引數 1.producer 級別 acks all 或者 request.required.acks 1 同時發生模式為同步 producer.type sync leader 在返回確認或錯誤響應之前,會等待所有同步副本都收到悄息 2.topic 級別...

Kafka資料可靠性與一致性解析

每個partition會在磁碟記錄乙個recoverypoint,記錄已經flush到磁碟的最大offset。當broker fail 重啟時,會進行loadlogs。首先會讀取該partition的recoverypoint,找到包含recoverypoint的segment及以後的segment...

Kafka資料可靠性與一致性解析

每個partition會在磁碟記錄乙個recoverypoint,記錄已經flush到磁碟的最大offset。當broker fail 重啟時,會進行loadlogs。首先會讀取該partition的recoverypoint,找到包含recoverypoint的segment及以後的segment...