Kafka快速入門(mén)系列(7) | producer(生產(chǎn)者)的數(shù)據(jù)可靠性保證

      網(wǎng)友投稿 838 2025-03-31

      本篇博主帶來(lái)的是producer(生產(chǎn)者)的數(shù)據(jù)可靠性保證。

      目錄

      1. 副本數(shù)據(jù)同步策略

      2. ISR

      Kafka快速入門(mén)系列(7) | producer(生產(chǎn)者)的數(shù)據(jù)可靠性保證

      3. ack應(yīng)答機(jī)制

      4. 故障處理細(xì)節(jié)

      1. follower故障

      2. leader故障

      為保證producer發(fā)送的數(shù)據(jù),能可靠的發(fā)送到指定的topic,topic的每個(gè)partition收到producer發(fā)送的數(shù)據(jù)后,都需要向producer發(fā)送ack(acknowledgement確認(rèn)收到),如果producer收到ack,就會(huì)進(jìn)行下一輪的發(fā)送,否則重新發(fā)送數(shù)據(jù)。

      1. 副本數(shù)據(jù)同步策略

      Kafka選擇了第二種方案,原因如下:

      1.同樣為了容忍n臺(tái)節(jié)點(diǎn)的故障,第一種方案需要2n+1個(gè)副本,而第二種方案只需要n+1個(gè)副本,而Kafka的每個(gè)分區(qū)都有大量的數(shù)據(jù),第一種方案會(huì)造成大量數(shù)據(jù)的冗余。

      2.雖然第二種方案的網(wǎng)絡(luò)延遲會(huì)比較高,但網(wǎng)絡(luò)延遲對(duì)Kafka的影響較小。

      2. ISR

      采用第二種方案之后,設(shè)想以下情景:leader收到數(shù)據(jù),所有follower都開(kāi)始同步數(shù)據(jù),但有一個(gè)follower,因?yàn)槟撤N故障,遲遲不能與leader進(jìn)行同步,那leader就要一直等下去,直到它完成同步,才能發(fā)送ack。這個(gè)問(wèn)題怎么解決呢?

      Leader維護(hù)了一個(gè)動(dòng)態(tài)的in-sync replica set (ISR),意為和leader保持同步的follower集合。當(dāng)ISR中的follower完成數(shù)據(jù)的同步之后,leader就會(huì)給follower發(fā)送ack。如果follower長(zhǎng)時(shí)間未向leader同步數(shù)據(jù),則該follower將被踢出ISR,該時(shí)間閾值由replica.lag.time.max.ms參數(shù)設(shè)定。Leader發(fā)生故障之后,就會(huì)從ISR中選舉新的leader。

      3. ack應(yīng)答機(jī)制

      對(duì)于某些不太重要的數(shù)據(jù),對(duì)數(shù)據(jù)的可靠性要求不是很高,能夠容忍數(shù)據(jù)的少量丟失,所以沒(méi)必要等ISR中的follower全部接收成功。

      所以Kafka為用戶提供了三種可靠性級(jí)別,用戶根據(jù)對(duì)可靠性和延遲的要求進(jìn)行權(quán)衡,選擇以下的配置。

      acks參數(shù)配置

      acks:

      0:producer不等待broker的ack,這一操作提供了一個(gè)最低的延遲,broker一接收到還沒(méi)有寫(xiě)入磁盤(pán)就已經(jīng)返回,當(dāng)broker故障時(shí)有可能丟失數(shù)據(jù);

      1:producer等待broker的ack,partition的leader落盤(pán)成功后返回ack,如果在follower同步成功之前l(fā)eader故障,那么將會(huì)丟失數(shù)據(jù);

      下圖為acks=1 數(shù)據(jù)丟失案例:

      -1(all):producer等待broker的ack,partition的leader和follower全部落盤(pán)成功后才返回ack。但是如果在follower同步完成后,broker發(fā)送ack之前,leader發(fā)生故障,那么會(huì)造成數(shù)據(jù)重復(fù)。

      下圖為acks=1 數(shù)據(jù)重復(fù)案例:

      4. 故障處理細(xì)節(jié)

      1. follower故障

      follower發(fā)生故障后會(huì)被臨時(shí)踢出ISR,待該follower恢復(fù)后,follower會(huì)讀取本地磁盤(pán)記錄的上次的HW,并將log文件高于HW的部分截取掉,從HW開(kāi)始向leader進(jìn)行同步。等該follower的LEO大于等于該P(yáng)artition的HW,即follower追上leader之后,就可以重新加入ISR了。

      2. leader故障

      leader發(fā)生故障之后,會(huì)從ISR中選出一個(gè)新的leader,之后,為保證多個(gè)副本之間的數(shù)據(jù)一致性,其余的follower會(huì)先將各自的log文件高于HW的部分截掉,然后從新的leader同步數(shù)據(jù)。

      注意:這只能保證副本之間的數(shù)據(jù)一致性,并不能保證數(shù)據(jù)不丟失或者不重復(fù)。

      本次的分享就到這里了,

      看 完 就 贊 , 養(yǎng) 成 習(xí) 慣 ! ! ! \color{#FF0000}{看完就贊,養(yǎng)成習(xí)慣?。?!} 看完就贊,養(yǎng)成習(xí)慣?。?!^ _ ^ ?? ?? ??

      碼字不易,大家的支持就是我堅(jiān)持下去的動(dòng)力。后不要忘了關(guān)注我哦!

      Kafka

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:人力資源系統(tǒng)人力資源HR系統(tǒng)
      下一篇:如何修改wps表格默認(rèn)保存文件格式(wps怎么更改保存格式)
      相關(guān)文章
      狠狠色伊人亚洲综合网站色 | 精品日韩亚洲AV无码一区二区三区| 亚洲国产精品无码久久98| 亚洲中文字幕无码日韩| 亚洲成?v人片天堂网无码| 亚洲日韩一区二区一无码| 日韩亚洲产在线观看| 亚洲人成7777影视在线观看| 亚洲一卡二卡三卡四卡无卡麻豆| 亚洲综合视频在线| 亚洲精品国产成人专区| 亚洲人成网站在线播放影院在线 | 亚洲性无码av在线| 亚洲国产成人久久综合一区| 亚洲一区在线观看视频| 久久久久亚洲AV无码永不| 亚洲国产综合91精品麻豆| 久久精品夜色国产亚洲av| 午夜亚洲国产理论秋霞| 亚洲第一成年男人的天堂| 91亚洲va在线天线va天堂va国产| 久久精品国产亚洲AV麻豆网站| 亚洲欧洲国产精品久久| 亚洲一级毛片免费看| 中文字幕乱码亚洲无线三区| 亚洲国产精品久久久久秋霞小| 国产精品亚洲一区二区无码| 亚洲国产婷婷综合在线精品 | 亚洲精品在线视频| 亚洲中文字幕成人在线| 亚洲综合无码AV一区二区| 国产亚洲一区二区在线观看| 亚洲高清视频在线观看| 亚洲视频在线一区二区三区| 亚洲一卡二卡三卡四卡无卡麻豆| 亚洲精品成a人在线观看夫| 一区国严二区亚洲三区| 日韩亚洲变态另类中文| 亚洲av色福利天堂| 亚洲激情黄色小说| 色天使亚洲综合在线观看|