在只考慮 kafka 本身使用方式的前提下如何最大程度地提高可靠性。
1. 就 kafka 而言,越多的副本數越能夠保證資料的可靠性,副本數可以在建立主題時配置,也可以在後期修改,不過副本數越多也會引起磁碟、網路頻寬的浪費,同時會引起效能的下降。一般而言,設定副本數為 3 即可滿足絕大多數場景對可靠性的要求,要求更高的適當增大。
2. 相比於 0 和 1, acks = -1 (客戶端還可以配置為 all,它的含義與一 l 一樣,以下只
以 1 來進行陳述可以最大程度地提高訊息的可靠性。 對於 ack = 一 l 的配置,生產者將訊息傳送到 leader 副本, leader 副本在成功寫入本地日誌之後還要等待 isr 中的 follower 副本全部同步完成才能夠告知生產者已經成功提交,即使此時leader 副本宕機,訊息也不會丟失。如果在訊息成功寫入 leader 副本之後,並且在被 isr 中的所有副本同步之前 leader 副本宕機了,那麼生產者會收到異常以此告知此次傳送失敗
3.如果要提公升可靠性,那麼生產者可以採用同步或非同步的模式,在出現異常情況時可以及時獲得通知,以便可以做相應的補救措施,
比如選擇重試傳送(可能會引起訊息重複)。networkexception,這個可能是由瞬時的網路故障而
導致的, 一般通過重試就可以解決。 客戶端 內部本身提供了重試機制來應對這種型別的異常,通過 ret ri es 引數即可
配置,客戶端 內部本身提供了重試機制來應對這種型別的異常,通過 ret ri es 引數即可配置,retry.back off . ms 引數,它用來設定兩次重試之間的時間間隔,以此避免無效的頻繁重試。retry.back off . ms 引數,它用來設定兩次重試之間的時間間隔,以此避免無效的頻繁重試。
Kafka如何保證資料可靠性
kafka的資料可靠性保證 1.副本資料同步策略 兩種副本資料同步策略 kafka選擇第二種 方案優點 缺點半數以上完成同步,就傳送ack 延遲低選舉新的leader時,容忍n臺節點的故障,需要2n 1個副本 全部完成同步,才傳送ack 選舉新的leader時,容忍n臺節點的故障,需要n 1個副本 ...
kafka的資料可靠性保證
為保證 producer 傳送的資料,能可靠的傳送到指定的 topic,topic 的每個 partition 收到 producer 發 送的資料後,都需要向 producer 傳送 ack acknowledgement 確認收到 如果 producer 收到 ack,就會進行下一輪的傳送,否則...
kafka保證資料可靠性的方式
kafka的以下幾個基本特性保證了基本的可靠性 生產者可以進行有關配置,使得不一定等到資料認為是已提交的之後,才進行下一輪的投遞,這是在可用性和一致性的之間的平衡 分割槽副本複製方式和同步條件 複製係數及其意義 replication.factor 複製係數,指定了乙個分割槽的副本個數,預設是3,意...