精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

被錘了:Acks=all消息也會丟失?

開發(fā) 前端
所有的消息會先緩存到 RecordAccumulator 緩存中,再由 Sender 線程拉取消息發(fā)送到 Kafka 服務(wù)器端,通過 RecordAccumulator 和 Sender 線程的協(xié)作,實現(xiàn)了消息的批量發(fā)送、性能優(yōu)化和異常處理等功能,確保了消息的高效可靠傳輸。

消息隊列是面試中一定會被問到的技術(shù)模塊,雖然它在面試題占比不及并發(fā)編程和數(shù)據(jù)庫,但也屬于面試中的關(guān)鍵性問題。所以今天我們就來看一道,MQ 中高頻,但可能會打破你以往認知的一道面試題。

所謂的關(guān)鍵問題指的是這道面試題會影響你整體面試結(jié)果。

我們在面試消息隊列(Message Queue,MQ)時,尤其是面試 Kafka 時,經(jīng)常會被問到:如何保證消息不丟失?

那么,我們的回答會分為以下 3 部分:

  • 保證生產(chǎn)者消息不丟失。
  • 保證 Kafka 服務(wù)(器端)消息不丟失。
  • 保證消費者消息不丟失。

只有保證這 3 部分消息都不丟失,才能保證 Kafka 整體消息不丟失。

因為 Kafka 消息的傳遞流程如下(總共包含 3 部分):

1.如何保證生產(chǎn)者消息不丟失?

那怎么保證生產(chǎn)者消息不丟失呢?

要搞明白這個事,我們就要先了解一下生產(chǎn)者發(fā)送消息的執(zhí)行流程。

Kafka 生產(chǎn)者發(fā)送消息的執(zhí)行流程如下:

默認情況下,所有的消息會先緩存到 RecordAccumulator 緩存中,再由 Sender 線程拉取消息發(fā)送到 Kafka 服務(wù)器端,通過 RecordAccumulator 和 Sender 線程的協(xié)作,實現(xiàn)了消息的批量發(fā)送、性能優(yōu)化和異常處理等功能,確保了消息的高效可靠傳輸。

(1)RecordAccumulator 緩存作用

  • 暫存消息:RecordAccumulator 是 Kafk a生產(chǎn)者中的一個關(guān)鍵組件,它充當了一個緩存的角色,用于暫存主線程(Main Thread)發(fā)送過來的消息。這些消息在 RecordAccumulato r中等待被 Sender 線程批量發(fā)送。
  • 批量發(fā)送:RecordAccumulator 通過批量收集消息,減少了單個消息發(fā)送的網(wǎng)絡(luò)請求次數(shù),從而提高了發(fā)送效率。Sender 線程可以從 RecordAccumulator 中批量獲取消息,一次性發(fā)送到 Kafka 集群,減少了網(wǎng)絡(luò)傳輸?shù)馁Y源消耗。
  • 性能優(yōu)化:RecordAccumulator的緩存大小可以通過生產(chǎn)者客戶端參數(shù) buffer.memory 進行配置(默認值為 32MB)。合理的緩存大小設(shè)置可以平衡內(nèi)存使用與發(fā)送效率,達到最優(yōu)的性能表現(xiàn)。
  • 內(nèi)存管理:如果 RecordAccumulator 的緩存空間被占滿,生產(chǎn)者再次調(diào)用 send() 方法發(fā)送消息時,會出現(xiàn)阻塞(默認阻塞時間為 60 秒,可通過 max.block.ms 參數(shù)配置)。如果阻塞超時,則會拋出異常。這種機制有助于防止生產(chǎn)者因為無限制地緩存消息而耗盡系統(tǒng)資源。
  • ByteBuffer 復(fù)用:為了減少頻繁創(chuàng)建和釋放 ByteBuffer 所造成的資源消耗,RecordAccumulator 內(nèi)部還維護了一個 BufferPool,用于實現(xiàn) ByteBuffer 的復(fù)用。特定大小的 ByteBuffer 會被緩存起來,以便后續(xù)消息發(fā)送時重復(fù)使用。

(2)Sender 線程作用

  • 拉取消息:Sender 線程是 Kafka 生產(chǎn)者中的一個后臺線程,它負責從 RecordAccumulator 中拉取緩存的消息。Sender 線程會定期輪詢 RecordAccumulator,檢查是否有新消息需要發(fā)送。
  • 批量構(gòu)建請求:當 Sender 線程發(fā)現(xiàn)有新消息需要發(fā)送時,它會構(gòu)建一個或多個 ProducerRequest 請求。每個請求包含多個消息,以便進行有效的批量發(fā)送。這種批量發(fā)送機制可以顯著提高網(wǎng)絡(luò)傳輸效率。
  • 發(fā)送消息到 Kafka 集群:Sender 線程將構(gòu)建的 ProducerRequest 請求發(fā)送到 Kafka 集群的相應(yīng)分區(qū)。它會根據(jù)分區(qū)的 Leader 節(jié)點信息,將消息發(fā)送給對應(yīng)的 Broker 節(jié)點。
  • 異常處理:在消息發(fā)送過程中,可能會出現(xiàn)網(wǎng)絡(luò)故障、分區(qū)不可用等異常情況。Sender 線程負責處理這些異常,例如進行重試、重新連接等操作,以確保消息的可靠發(fā)送。
  • 狀態(tài)更新:一旦消息被成功接收并記錄在 Kafka Broker 的日志中,Sender 線程會通知 RecordAccumulator 更新消息的狀態(tài)。這樣,生產(chǎn)者就能夠知道哪些消息已經(jīng)被成功發(fā)送,哪些消息還需要重試發(fā)送。

2.生產(chǎn)者消息丟失的兩種場景

了解了 Kafka 生產(chǎn)者發(fā)送消息的流程之后,我們就能知道在這個環(huán)節(jié)丟失消息的情況有以下兩種:

  • 網(wǎng)絡(luò)抖動(消息不可達):生產(chǎn)者與 Kafka 服務(wù)端之間的鏈路不可達,發(fā)送超時。此時各個節(jié)點的狀態(tài)是正常,但消費端就是沒有消費消息,就像消息丟失了一樣。
  • 無消息確認(ack):生產(chǎn)者消息發(fā)送之后,無 ack 消息確認,直接返回消息發(fā)送成功,但消息發(fā)送之后,Kafka 服務(wù)宕機或掉電了,導(dǎo)致消息丟失。

怎么解決這個問題呢?

(1)網(wǎng)絡(luò)波動問題處理

網(wǎng)絡(luò)波動的話設(shè)置消息重試即可,因為網(wǎng)絡(luò)抖動消息不可達,所以只要配置了重試次數(shù),那么就會消息重試以此來保證消息不丟失。

在 Spring Boot 項目中,只需要在配置文件 application.yml 中,設(shè)置生產(chǎn)者的重試次數(shù)即可:

spring:  
  kafka:  
    producer:  
      retries: 3

(2)消息確認設(shè)置

Kafka 生產(chǎn)者的 ACK(Acknowledgment)機制是指生產(chǎn)者在發(fā)送消息到 Kafka 集群后,等待確認的方式。這個機制決定了生產(chǎn)者何時認為消息已經(jīng)成功發(fā)送,并直接影響到消息的可靠性和性能。

Kafka 生產(chǎn)者的 ACK 機制主要有以下三種類型。

① acks=0

生產(chǎn)者在將消息發(fā)送到網(wǎng)絡(luò)緩沖區(qū)后,立即認為消息已被提交,不會等待任何來自服務(wù)器的響應(yīng)。這時設(shè)置的重試次數(shù) retries 無效。

特點

  • 最高性能:由于不需要等待任何確認,因此具有最高的吞吐量。
  • 最低可靠性:消息可能會在發(fā)送過程中丟失,生產(chǎn)者無法知道消息是否成功到達服務(wù)器。

適用場景:對消息可靠性要求不高,但追求極致性能的場景。

② acks=1

生產(chǎn)者在將消息發(fā)送到主題的分區(qū) leader 后,等待 leader 的確認,即認為消息已被提交(此時 leader 寫入成功,并沒有刷新到磁盤),不用等待所有副本的確認。

特點

  • 中等可靠性和性能:提供了一定程度的可靠性,因為只有領(lǐng)導(dǎo)者副本確認消息后生產(chǎn)者才會收到確認。但如果領(lǐng)導(dǎo)者副本在確認后發(fā)生故障,而消息還未復(fù)制到其他副本,則消息可能會丟失。
  • 性能與可靠性平衡:在生產(chǎn)者性能和消息可靠性之間提供了一個折衷方案。

適用場景:適用于傳輸普通日志,允許偶爾丟失少量數(shù)據(jù)的場景。

③ acks=all 或 acks=-1

生產(chǎn)者需要等待所有同步副本(ISR, In-Sync Replicas)都成功寫入消息后,才認為消息已被提交。

特點

  • 最高可靠性:只有當所有同步副本都確認接收到消息后,生產(chǎn)者才會收到確認,確保了消息的可靠性。
  • 較低性能:由于需要等待所有同步副本的確認,因此可能會導(dǎo)致消息發(fā)送的延遲增加,從而影響性能。

適用場景:適用于對消息可靠性要求極高的場景,如金融交易等關(guān)鍵任務(wù)應(yīng)用。

在 Spring Boot 項目中,acks 可以在配置文件 application.yml 中設(shè)置:

spring:  
  kafka:  
    producer:  
      acks: all

3.acks=all消息一定不會丟失嗎?

正常情況下當我們設(shè)置 acks=all 時,其實是可以保證數(shù)據(jù)不丟失了。但是有一種特殊情況,如果 Topic 只有一個 Partition(分區(qū)時),也就是只有一個 Leader 節(jié)點時,此時消息也是會丟失的。

如果只有一個 Leader 節(jié)點,acks=all 的設(shè)置和 acks=1 的設(shè)置效果基本類似,當 Leader 確認消息之后,還沒來得及將消息刷到磁盤之前宕機了,那么就會造成消息丟失。

萬事必有妖,當面試官用疑問語句問你時,答案基本是否定的。如果是確定的話,面試官可能也就不會再問你了,所以當你聽到一個有悖于常識的問題時,先努力思考這個問題還有沒有其他答案。

責任編輯:姜華 來源: 磊哥和Java
相關(guān)推薦

2022-07-11 08:01:55

Kafka服務(wù)器宕機

2021-03-08 10:19:59

MQ消息磁盤

2025-09-10 09:14:00

AI硅谷996

2020-04-21 15:22:35

ChromeFirefox瀏覽器

2020-08-18 09:14:57

DockerMATLAB數(shù)據(jù)

2023-08-06 12:50:19

機器人AI

2024-04-11 08:29:35

Kafka異步發(fā)送發(fā)送端重試

2020-05-14 18:50:35

Chrome漏洞瀏覽器

2022-02-21 12:29:01

for循環(huán)前端

2017-09-01 21:21:06

戴爾

2025-06-11 03:15:00

2022-07-31 22:07:03

宕機業(yè)務(wù)場景

2022-03-31 08:26:44

RocketMQ消息排查

2018-07-16 14:19:44

AI銀行人工智能

2025-10-16 08:34:01

2019-02-25 10:03:17

程序員技能開發(fā)者

2023-08-11 17:42:35

ChatGPT人工智能

2021-06-07 09:26:25

Windows11操作系統(tǒng)微軟

2022-12-16 17:15:33

MQRabbitMQ

2022-10-11 23:14:39

模態(tài)循環(huán)過濾器代碼
點贊
收藏

51CTO技術(shù)棧公眾號

黄色一级片黄色| 精品福利影视| 亚洲av鲁丝一区二区三区 | 91亚洲自偷观看高清| 9191久久久久久久久久久| 亚洲精品蜜桃久久久久久| 毛片在线播放网址| 国产一区不卡视频| 国产91九色视频| 欧美国产在线看| 国产精品中文字幕亚洲欧美| 日韩亚洲欧美中文三级| 国产精品97在线| 婷婷av在线| 国产欧美日韩视频一区二区| av免费观看久久| 久久久久精彩视频| 日韩一级不卡| 久久久精品视频成人| 久久精品国产亚洲av麻豆| 激情五月综合婷婷| 欧美在线看片a免费观看| 小泽玛利亚av在线| 四虎久久免费| 久久夜色精品国产噜噜av | 一区二区三区自拍视频| 欧美无乱码久久久免费午夜一区| 老太脱裤让老头玩ⅹxxxx| 九七久久人人| 国产精品传媒在线| 欧美影视一区二区| 欧洲毛片在线| 99久久综合99久久综合网站| 亚洲伊人久久大香线蕉av| 99成人精品视频| 美女久久一区| 18久久久久久| 六月丁香在线视频| 91久久黄色| 欧美黑人一级爽快片淫片高清| 99成人在线观看| 精品日韩毛片| 亚洲性生活视频| 久久久久久九九九九九| 人妖一区二区三区| 亚洲国产欧美自拍| 无码国产69精品久久久久网站| 日韩激情欧美| 日韩亚洲欧美在线观看| 亚洲精品乱码久久久久久动漫| 久久亚洲精品人成综合网| 色嗨嗨av一区二区三区| 无码无遮挡又大又爽又黄的视频| 国产在线美女| 欧美色欧美亚洲高清在线视频| 欧美啪啪免费视频| 一个人www视频在线免费观看| 亚洲国产中文字幕在线视频综合| 免费人成自慰网站| av在线不卡免费| 懂色av中文一区二区三区天美 | 免费成人你懂的| 国产精品视频免费观看www| 正在播放木下凛凛xv99| 蜜臀av国产精品久久久久| 日韩女优人人人人射在线视频| 精品久久久久久久久久久久久久久久久久| 久久久精品五月天| 国产精品流白浆视频| 国产剧情精品在线| 国产精品1区2区3区在线观看| 超碰在线97av| 欧美精品少妇| 国产精品国产三级国产普通话三级 | 青青草精品毛片| 国产91av在线播放| 久久精品免费观看| 亚洲www在线观看| 风流少妇一区二区三区91| 99精品热视频| 手机看片福利永久国产日韩| 免费**毛片在线| 亚洲五月六月丁香激情| 久草青青在线观看| 午夜精品久久久久久毛片| 日韩视频不卡中文| a级大片在线观看| 国产精品国内免费一区二区三区| 久久99精品国产99久久6尤物| 日韩毛片在线播放| 男人的天堂亚洲一区| 97人人干人人| 都市激情在线视频| 有码一区二区三区| 91av俱乐部| 日韩影片在线观看| 亚洲人成电影网站色…| 成人免费毛片东京热| 欧美亚洲自偷自偷| 97人摸人人澡人人人超一碰| 国产中文在线观看| 亚洲一区二区三区美女| 亚洲国产精品三区| 蜜臀av一区| 欧美www在线| 波多野结衣二区三区| 国产精品18久久久久久vr| 日本欧美精品久久久| 国产第一页在线| 欧美人狂配大交3d怪物一区| 中文字幕在线播放一区| 国产精品久久久久久影院8一贰佰| 欧美精品久久久久久久| 91久久久久久久久久久久| 91色在线porny| japanese在线播放| 成人久久网站| 亚洲色图激情小说| 日产亚洲一区二区三区| 极品少妇一区二区| 日韩精品欧美专区| 一个人看的www视频在线免费观看| 欧美一区二区免费观在线| 精品无人区无码乱码毛片国产| 精品成人免费| 亚洲精品免费在线视频| 在线观看黄色av| 91国偷自产一区二区开放时间 | 国模大尺度视频| 日韩欧美中文| 国产精品91久久久久久| 色在线免费视频| 午夜久久久久久| 麻豆tv在线观看| 一区二区中文| 亚洲一区二区三区xxx视频| 最近高清中文在线字幕在线观看| 色综合色综合色综合色综合色综合 | 国产亚洲精品美女久久| 伦理中文字幕亚洲| 国产免费高清av| 一区免费观看视频| wwwwwxxxx日本| 色婷婷亚洲mv天堂mv在影片| 国产精品亚洲一区二区三区| 国产区在线视频| 色综合久久综合中文综合网| 中国毛片在线观看| 日韩黄色小视频| 欧美亚洲另类在线一区二区三区| 樱桃视频成人在线观看| 亚洲精品丝袜日韩| 成人免费视频国产免费| 国产三级精品视频| 老司机午夜性大片| 亚洲五月综合| 99porn视频在线| 91色在线看| 日韩精品视频免费| 高潮毛片又色又爽免费| 欧美激情中文不卡| 亚洲欧美日韩三级| 中文无码久久精品| 国产66精品久久久久999小说| 51精品视频| 亚洲欧美在线看| 中文字幕91爱爱| 亚洲人成精品久久久久| 国产精品欧美性爱| 亚洲一区日韩在线| 亚洲毛片aa| 日韩中文字幕视频网| 久久久久国产一区二区三区| 日韩偷拍自拍| 欧美日韩成人一区二区| 久草国产在线观看| 久久综合九色综合97婷婷女人| 国产又粗又长又大的视频| 亚洲综合婷婷| 久久偷看各类wc女厕嘘嘘偷窃| 性感美女一区二区在线观看| 日韩专区在线播放| 欧美一区二区在线观看视频| 91国产丝袜在线播放| 中文字幕av免费在线观看| av在线不卡观看免费观看| 日本999视频| 韩国在线视频一区| 日本一区二区不卡高清更新| 久久久久久亚洲精品美女| 91高清视频免费观看| 精品自拍一区| 亚洲桃花岛网站| 国产黄色片网站| 在线观看视频欧美| 精品少妇久久久久久888优播| 久久久精品综合| 不卡的一区二区| 琪琪一区二区三区| www.av蜜桃| 香蕉视频官网在线观看日本一区二区| 国产精品区一区二区三在线播放 | av网址在线看| 亚洲欧美国产精品久久久久久久| 国产精品乱码久久久| 狠狠躁夜夜躁人人爽超碰91| av成人免费网站| 国产亚洲1区2区3区| 一级少妇精品久久久久久久| 久久99这里只有精品| 国产精品无码av在线播放| 一区二区电影| 水蜜桃一区二区| 最近国产精品视频| 国产另类自拍| 麻豆国产精品| 国产男女猛烈无遮挡91| 欧美大片免费观看网址| 韩剧1988在线观看免费完整版| 国产在线观看a视频| 国产一区二区三区在线观看视频 | 91综合久久爱com| 国产主播在线一区| 欧美一区久久久| 91a在线视频| www视频在线观看| 欧美激情伊人电影| а√天堂资源地址在线下载| 最好看的2019的中文字幕视频| 麻豆导航在线观看| 亚洲国产一区二区三区在线观看| www.精品视频| 日韩亚洲欧美在线观看| 国产人妖一区二区| 欧美另类z0zxhd电影| 中文字幕免费高清在线观看| 色呦呦一区二区三区| 无码人妻一区二区三区线| 婷婷国产v国产偷v亚洲高清| 久久精品人妻一区二区三区| 亚洲综合另类小说| 国产精品50页| 香蕉加勒比综合久久| 国产极品在线播放| 午夜精品国产更新| 久久国产黄色片| 色综合久久综合网97色综合 | 欧美乱妇一区二区三区不卡视频| 日本妇乱大交xxxxx| 欧美午夜在线观看| 在线观看中文字幕2021| 欧美日韩成人在线| 精品人妻伦一二三区久久| 日韩欧美国产一区二区在线播放 | 久久女同性恋中文字幕| 欧美成人午夜精品免费| 国产网红主播福利一区二区| 久久日免费视频| 自拍偷拍亚洲欧美日韩| 欧美色图亚洲天堂| 亚洲va韩国va欧美va精品| 欧美一区二区激情视频| 欧亚洲嫩模精品一区三区| 夜夜狠狠擅视频| 欧美一级一级性生活免费录像| www.成人精品| 精品调教chinesegay| 触手亚洲一区二区三区| 久久久国产视频| 3344国产永久在线观看视频| 奇米影视亚洲狠狠色| 久久青草免费| 国产精品theporn88| 九色成人国产蝌蚪91| 亚洲午夜精品久久| 亚洲性人人天天夜夜摸| 亚洲色欲综合一区二区三区| 精品制服美女久久| 亚洲欧美日韩色| 国产日韩欧美麻豆| 青青草手机在线观看| 欧美日韩性视频| 国产精品探花视频| 亚洲精品国产精品自产a区红杏吧| 大片免费播放在线视频| 欧美精品在线免费播放| 亚洲精品福利电影| 亚洲一区久久久| 欧美禁忌电影| www婷婷av久久久影片| 久久国产精品毛片| 九九热精品国产| 91麻豆国产福利精品| 久久久久久视频| 日本道精品一区二区三区| 国产青青草视频| 国产亚洲欧美视频| av第一福利在线导航| 国产啪精品视频网站| 日韩三区视频| 狠狠干视频网站| 久久先锋影音| 中文字幕欧美视频| 欧美激情综合网| 国产成人精品一区二三区| 欧美肥妇毛茸茸| 国产精品麻豆一区二区三区| 久久噜噜噜精品国产亚洲综合| 欧洲亚洲精品久久久久| 久久亚洲综合网| 亚洲国产精品第一区二区三区| 五月天开心婷婷| 日本一区二区三区国色天香| 日韩精品在线不卡| 日韩免费成人网| 浪潮av一区| 国产精品丝袜高跟| 精品国产一区二区三区小蝌蚪 | 免费成人小视频| 九色porny自拍视频| 午夜影院在线观看欧美| 国产普通话bbwbbwbbw| 日韩在线视频一区| 韩国成人在线| 欧美一区1区三区3区公司| 亚洲精品国产日韩| 91成人在线观看喷潮蘑菇| 自拍偷拍亚洲激情| 91tv国产成人福利| 色偷偷av亚洲男人的天堂| 忘忧草在线www成人影院| 鲁丝片一区二区三区| 亚洲国产专区| 色综合久久五月| 亚洲1区2区3区4区| 日韩中文字幕免费观看| 久久久久久97| 久久动漫网址| av在线播放亚洲| 久久一区二区三区国产精品| 中文字幕亚洲精品一区| 精品亚洲夜色av98在线观看| 小h片在线观看| 欧美精品一区二区三区四区五区 | 亚洲1区2区3区视频| 日日夜夜精品免费| 777777777亚洲妇女| 午夜欧洲一区| xxxx一级片| 国产精品家庭影院| aaaa一级片| 欧美激情小视频| 极品尤物一区| 国产精品免费成人| 国产欧美精品日韩区二区麻豆天美| 波多野结衣在线观看视频| 中文字幕av一区二区三区谷原希美| 成人在线黄色| 色乱码一区二区三区熟女| 国产在线精品不卡| 国产精品suv一区二区| 精品亚洲夜色av98在线观看| 日本欧美日韩| 伊人久久av导航| 成人一区二区三区| 在线精品免费视| 最近2019免费中文字幕视频三| gogo大尺度成人免费视频| 国产精品日韩三级| 91免费在线视频观看| 国产精品露脸视频| 久精品免费视频| 亚洲尤物av| 婷婷激情5月天| 天天色天天操综合| 欧美成人hd| 国产伦精品一区二区三区视频孕妇 | 欧美在线观看禁18| 成人性爱视频在线观看| 国产综合久久久久久| 欧美日本一区二区视频在线观看| 欧美在线一级片| 欧美三级中文字| 欧美黄色视屏| 午夜精品福利一区二区| 国产成人超碰人人澡人人澡| 亚洲熟女综合色一区二区三区| 日韩中文字幕精品| 国产精品17p| 亚洲免费黄色网| 天天操天天色综合| 国产网站在线免费观看| 免费久久一级欧美特大黄| 激情文学综合插| 久久精品视频5| 欧美福利视频网站| 精品国产视频| 亚洲成人av免费在线观看| 欧美一区二区三区在线视频| 一本大道色婷婷在线|