精品欧美一区二区三区在线观看 _久久久久国色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ù)棧公眾號

精品久久久久久久久久久久久久 | 亚洲视频免费观看| 成人在线视频福利| 国产午夜免费视频| 日韩成人激情| 欧美精品一区二区在线观看| 99精品免费在线观看| 精品欧美色视频网站在线观看| 成人涩涩免费视频| 国产精品福利观看| 久久精品免费av| 色999日韩| 精品视频久久久久久久| 精产国品一二三区| 成人在线免费| 色综合亚洲欧洲| 国内精品国产三级国产99| 国产在线自天天| 国产91高潮流白浆在线麻豆 | 国产欧美精品在线观看| 国产精品18毛片一区二区| 一区二区乱子伦在线播放| 精品福利av| 久久综合伊人77777| 精品成人av一区二区三区| 99久久香蕉| 678五月天丁香亚洲综合网| 欧美 国产 小说 另类| 欧美日韩在线视频免费观看| 国产精品美女久久久久久久网站| 久久国产精品一区二区三区四区| 国产高潮在线观看| 免费人成在线不卡| 国产盗摄xxxx视频xxx69| 久久精品视频8| 欧美在线高清| 久久伊人色综合| 成年人视频软件| 精品一区二区三| 亚洲欧美在线一区二区| 在线免费观看污视频| 日韩欧美中文在线观看| 欧美一区二区黄| 日本网站在线看| 中文成人激情娱乐网| 欧美日韩亚洲综合在线| 日本久久精品一区二区| gogo亚洲高清大胆美女人体| 色一区在线观看| 国产淫片av片久久久久久| 精品国产第一福利网站| 色综合色综合色综合| 国内外免费激情视频| 我爱我色成人网| 欧美中文字幕久久| 伊人网在线综合| 91精品国产一区二区在线观看| 欧美日韩美女一区二区| 手机av在线网| 精品久久亚洲| 欧美成人官网二区| 国产伦精品一区二区三区精品| 欧美日韩一区二区三区四区不卡| 亚洲国产精品久久精品怡红院| 性久久久久久久久久久| 日韩精品a在线观看91| 亚洲天堂色网站| 色噜噜噜噜噜噜| 久久久久久久久久久久久久| 欧美成人精品一区二区| 免费一级a毛片夜夜看| 亚洲美女毛片| 国产精品久久久久高潮| 91资源在线视频| 成人综合婷婷国产精品久久| 国产高清视频免费| 四虎国产精品免费观看| 久久五月天色综合| 国产精品白嫩白嫩大学美女| 亚洲网站视频| 欧美中文字幕在线视频| 中文字幕一区二区三区波野结| 国产一区三区三区| 国产伦精品一区二区三区高清版| 三级av在线| 国产精品三级久久久久三级| 天天在线免费视频| 日本在线影院| 欧美日韩激情在线| 国产伦理在线观看| 国产精品嫩模av在线| 日韩在线视频网| 日韩污视频在线观看| 免费成人你懂的| 国产高清在线精品一区二区三区| 好男人免费精品视频| 亚洲欧美日韩在线不卡| 色欲av无码一区二区人妻| 狂野欧美性猛交xxxx| 亚洲成人激情图| 日本裸体美女视频| 亚洲影视在线| 国产成人女人毛片视频在线| 国产女人在线视频| 亚洲444eee在线观看| 久久国产这里只有精品| 欧美日韩精品一区二区三区在线观看| 久久精品久久久久久| 二区视频在线观看| 国产米奇在线777精品观看| 美国av一区二区三区| gogogogo高清视频在线| 欧美在线一二三四区| 国产日韩视频一区| 忘忧草精品久久久久久久高清| 45www国产精品网站| h狠狠躁死你h高h| 国产精品人成在线观看免费| 亚洲午夜精品久久久久久人妖| 日本少妇精品亚洲第一区| 国产亚洲成精品久久| 久久草视频在线| 国产成人午夜片在线观看高清观看| 色女人综合av| 一个人看的www视频在线免费观看| 日韩一级大片在线| 伊人在线视频观看| 麻豆视频观看网址久久| 日本午夜精品一区二区| 欧洲一区精品| 亚洲国产成人精品电影| 精品欧美一区二区久久久久| 久久成人精品无人区| 视频一区视频二区视频| 黑人精品一区| 亚洲图片欧洲图片av| 日日夜夜操视频| 2020日本不卡一区二区视频| 国产综合av在线| 里番精品3d一二三区| 久久久久亚洲精品成人网小说| www.我爱av| 亚洲精品国产精品乱码不99| 日本亚洲一区二区三区| 欧美精品观看| 成人av影视在线| 免费毛片在线看片免费丝瓜视频 | 国产日韩一区二区三区| 爱情岛论坛亚洲品质自拍视频网站| 欧美一级日韩免费不卡| 麻豆一区在线观看| 久久av中文字幕片| 女同性恋一区二区| 婷婷综合国产| 欧美人成在线视频| 亚洲爱爱综合网| 亚洲大型综合色站| 久久国产精品无码一级毛片| 首页综合国产亚洲丝袜| 亚洲一区二区三区精品视频| 国产第一亚洲| 久99久在线视频| 欧日韩在线视频| 狠狠做深爱婷婷久久综合一区 | 日韩美女啊v在线免费观看| 亚洲自拍第三页| 伊人久久婷婷| 麻豆精品传媒视频| 四虎精品永久免费| 色综合久久中文字幕综合网小说| 蜜桃91麻豆精品一二三区| 欧美日韩国产色| 国产调教在线观看| 国产一区福利在线| 秋霞无码一区二区| 精品久久电影| 亚洲影视九九影院在线观看| 欧美韩日亚洲| 亚洲一区999| 精品国产18久久久久久| 高潮白浆女日韩av免费看| 婷婷色一区二区三区| 激情伊人五月天久久综合| 欧美国产综合在线| 久久99国产成人小视频| 国产在线不卡精品| 免费v片在线观看| 中文字幕日韩电影| 国模无码一区二区三区| 欧美午夜一区二区| 久草视频免费在线播放| 久久精品视频免费| 无码国产精品一区二区高潮| 久久国产直播| 日本福利视频在线观看| 久久av影视| 91免费在线观看网站| 外国成人直播| 欧美激情日韩图片| 色影院视频在线| 亚洲毛茸茸少妇高潮呻吟| 国产婷婷一区二区三区久久| 黑人巨大精品欧美一区二区免费| 艳妇荡乳欲伦69影片| 2023国产精品自拍| 中文字幕乱码在线人视频| 久久亚洲美女| 国产真人做爰毛片视频直播| 久久亚洲精品中文字幕蜜潮电影| 国产在线精品一区二区三区| www久久久| 国产精品爱啪在线线免费观看| 免费电影视频在线看| 日韩色av导航| 大地资源中文在线观看免费版| 亚洲国产精品免费| 99国产精品一区二区三区 | 国产成人精品av在线观| 欧美午夜片在线观看| 特级毛片www| 午夜av区久久| 久久婷婷一区二区| 亚洲免费在线观看| 午夜成人亚洲理伦片在线观看| 久久午夜免费电影| 成人无码www在线看免费| 成人午夜免费电影| 宇都宫紫苑在线播放| 国模娜娜一区二区三区| 色免费在线视频| 日本 国产 欧美色综合| 久久久久久久久久久福利| 激情六月综合| 国产成人艳妇aa视频在线 | 亚洲人成在线观看一区二区| www.日本高清视频| 中文字幕av一区二区三区| 最近中文字幕免费| 久久精品日韩一区二区三区| 亚洲激情视频小说| 国产色产综合色产在线视频| 精品国产av无码| 国产欧美日韩在线观看| 国产精品美女高潮无套| 91亚洲精品乱码久久久久久蜜桃| 日本天堂在线播放| 北条麻妃国产九九精品视频| 99re这里只有| 久久综合狠狠综合久久综合88 | 综合久久国产九一剧情麻豆| 久久国产波多野结衣| 亚洲六月丁香色婷婷综合久久 | 日本xxx在线播放| 91美女视频网站| 色婷婷在线影院| 国产日韩欧美高清在线| 婷婷综合在线视频| 亚洲欧洲日韩av| 久久久国产精华液| 欧美日韩午夜视频在线观看| 亚洲GV成人无码久久精品| 91国模大尺度私拍在线视频| 怡红院男人天堂| 91精品国产综合久久精品麻豆| 亚洲精华国产精华精华液网站| 精品久久久久99| 久久久久国产精品嫩草影院| 国产亚洲精品久久久久久777 | 中文字幕中文乱码欧美一区二区| 午夜成人亚洲理伦片在线观看| 夜夜操天天操亚洲| 精品国产午夜福利| 欧美欧美欧美欧美| 亚洲国产精品一| 亚洲老板91色精品久久| 色网站免费在线观看| 国内精品视频在线| 欧美日韩免费观看视频| 亚洲一区久久久| 色爱综合av| 正在播放国产精品| 亚洲精品激情| 亚洲精品手机在线观看| 不卡一区二区中文字幕| 在线免费观看视频| 亚洲一区二区3| 伊人免费在线观看| 精品福利视频一区二区三区| 韩国福利在线| 久久久亚洲影院你懂的| 久久夜夜久久| 美脚丝袜一区二区三区在线观看| 久久久久av| www.亚洲天堂网| 国产大陆精品国产| 国产精品久久久视频| 五月激情丁香一区二区三区| 在线观看国产黄| 日韩精品www| 色呦呦视频在线观看| 国产精品高潮呻吟久久av黑人| 在线日韩成人| 一区二区欧美日韩| 国产农村妇女毛片精品久久莱园子 | 欧美一区二区精品久久911| 国产三级在线观看| 久久久亚洲影院你懂的| 国产精品1区| 天天人人精品| 国产精品腿扒开做爽爽爽挤奶网站| 一级片免费在线观看视频| 欧美激情一区二区三区蜜桃视频 | 99亚洲一区二区| 制服下的诱惑暮生| 国产精品嫩草影院com| 亚洲欧美一二三区| 日韩电影网在线| 大黄网站在线观看| 91免费看蜜桃| 伊人色**天天综合婷婷| 高清一区在线观看| 久久精品夜夜夜夜久久| 青青草成人av| 亚洲福利在线看| a天堂资源在线| 国产伦视频一区二区三区| 欧美另类女人| 日韩精品在线播放视频| 日韩码欧中文字| 亚洲一区中文字幕永久在线| 亚洲香蕉成视频在线观看| 中国字幕a在线看韩国电影| 国产综合av一区二区三区| 亚洲国产专区校园欧美| 97人妻精品一区二区三区免费| 亚洲夂夂婷婷色拍ww47| 成人午夜免费福利| 欧美精品videos性欧美| 精品一区二区三区亚洲| 欧美与动交zoz0z| 国产一区二区女| 久久久久久久久毛片| 欧美大片在线观看一区| h片视频在线观看| 国产精品国产精品| 99精品国产福利在线观看免费| 精品无码在线视频| 日本韩国欧美三级| 日本中文字幕电影在线免费观看| 国产精品一区二区三区成人| 999精品视频| 成人三级做爰av| 精品欧美国产一区二区三区| 天堂资源最新在线| 国产精品91一区| 欧美hd在线| 能看毛片的网站| 亚洲成人免费影院| 免费黄色片在线观看| 国产精品日韩av| 在线精品视频在线观看高清| 日本女人性视频| 舔着乳尖日韩一区| 高清毛片在线看| 91夜夜揉人人捏人人添红杏| 欧美成人有码| 野外性满足hd| 欧美日韩www| 成人性生交大片免费看网站| 女女同性女同一区二区三区91| 免费看黄色91| 久久久久久久久久久网 | 可以免费看不卡的av网站| 午夜影院黄色片| 欧美大片在线观看一区二区| sis001欧美| 久久免费看毛片| www.欧美.com| 午夜视频网站在线观看| 欧美成人免费在线视频| 日韩大尺度在线观看| 亚洲免费999| 精品久久香蕉国产线看观看亚洲| 成人在线二区| 国产精品亚洲综合| 久久精品国产亚洲aⅴ| 日本一级黄色录像| 色悠悠国产精品| 九色丨蝌蚪丨成人| 最新av免费在线观看| 午夜精品福利一区二区三区蜜桃| 成年人在线免费观看| 国产精品一区二区av| 男男成人高潮片免费网站| 国产精品第108页| 日韩三级成人av网| 欧美久久综合网| 好吊色视频一区二区三区| 欧美精品色综合| 你懂得影院夜精品a|