RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

面試官:Kafka會丟消息嗎?

小林coding ? 來源:小林coding ? 2024-04-29 17:32 ? 次閱讀

Kafka 會丟失信息嗎?

許多開發(fā)人員普遍認為,Kafka 的設(shè)計本身就能保證不會丟失消息。然而,Kafka 架構(gòu)和配置的細微差別會導(dǎo)致消息的丟失。我們需要了解它如何以及何時可能丟失消息,并防止此類情況的發(fā)生。

下圖顯示了消息在 Kafka 的生命周期中可能丟失的場景。

55d8ed58-05fe-11ef-a297-92fbcf53809c.gif

01 生產(chǎn)者(Producer)

當(dāng)我們調(diào)用 producer.send() 發(fā)送消息時,消息不會直接發(fā)送到代理。

消息發(fā)送過程涉及兩個線程和一個隊列

  1. 應(yīng)用程序線程
  2. 消息累加器
  3. 發(fā)送線程(I/O 線程)

我們需要為生產(chǎn)者配置適當(dāng)?shù)?"acks "和 "retries",以確保消息被發(fā)送到代理。

02 消息代理(Broker)

當(dāng)代理集群正常運行時,它不應(yīng)該丟失消息。但是,我們需要了解哪些極端情況可能會導(dǎo)致消息丟失:

  1. 為了提高 I/O 吞吐量,消息通常會異步刷到磁盤上,因此如果實例在刷新之前宕機,消息就會丟失。
  2. Kafka 集群中的副本需要正確配置,以保持數(shù)據(jù)的有效副本。數(shù)據(jù)同步的確定性非常重要。

03 消費者(Consumer)

Kafka 提供了不同的提交消息的方式。自動提交可能會在實際處理記錄之前確認對記錄的處理。當(dāng)消費者在處理過程中宕機時,有些記錄可能永遠不會被處理。

一個好的做法是將同步提交和異步提交結(jié)合起來,在處理消息的循環(huán)中使用異步提交以提高吞吐量,在異常處理中使用同步提交以確保最后的偏移始終被提交。

下圖是這個方法的偽代碼:

try{
while(true){
ConsumerRecordsrecords=consumer.poll(Duration.ofMillis(1000));

for(ConsumerRecordrecord:records){
//processrecordsonebyone
}

consumer.commitAsync();
}
}catch(Exceptione){
//exceptionhandling
}finally{
try{
consumer.commitSync();
}finally{
consumer.close();
}
}


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 架構(gòu)
    +關(guān)注

    關(guān)注

    1

    文章

    513

    瀏覽量

    25468
  • 線程
    +關(guān)注

    關(guān)注

    0

    文章

    504

    瀏覽量

    19675
  • kafka
    +關(guān)注

    關(guān)注

    0

    文章

    51

    瀏覽量

    5214

原文標題:面試官:Kafka 會丟消息嗎?

文章出處:【微信號:小林coding,微信公眾號:小林coding】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    【明天會更好】教你避開外企面試“高級”錯誤

    。面試中,應(yīng)試者又出于種種顧慮,不愿主動說話,結(jié)果使面試出現(xiàn)冷場。即便能勉強打破沉默,語音語調(diào)亦極其生硬,使場面更顯尷尬。實際上,無論是面試前或面試中,
    發(fā)表于 03-09 10:53

    面試中千萬不能犯的錯誤

    面試錯誤并不僅僅限于應(yīng)聘者,面試官犯很多錯誤。以下上海公積金提取覺得是面試官們常犯的七個錯誤以及如何避免這些錯誤的方法:1. 談?wù)摽赡苄?。?yīng)聘者們自然地推銷自己,但是
    發(fā)表于 08-31 08:45

    面試時,自我介紹三禁忌

    格,對同一個應(yīng)聘者的回答,會有不同的評判?!澳慊卮?000元,有的面試官覺得你很踏實,實事求是。還有的面試官覺得你欲望不高,沒有上進心。”因此,白斌建議在校大學(xué)生,要學(xué)會察言觀色。
    發(fā)表于 11-25 19:57

    以下五種人面試最難成功

    ?! ?三)不注重個人職業(yè)形象者  當(dāng)你在投遞簡歷后接到面試通知后,你一般怎樣做?選擇一套合身的衣服,準備好需要呈給面試官的資料等,然后計算好去公司面試的時間在規(guī)定時間內(nèi)達到
    發(fā)表于 12-15 21:41

    善用“微表情”打動面試官

    部位,幫助求職者矯正不良“微表情”。有學(xué)生發(fā)微博稱,微表情很給力。  洞察HR“微表情”可投其所好  “微表情”不是求職者的專有名詞,HR也有“微表情”。求職者如果能“察言觀色”,也可以洞察面試官
    發(fā)表于 01-02 15:42

    千萬別這么回答面試官問題!

    `又到一年面試季,小伙伴們都忙著找工作面試,是不是快被面試官的問題問成面癱了。今天小編來教教大家如何復(fù)仇,一句話噎死面試官!01 請你自我介紹一下噎死
    發(fā)表于 03-08 14:28

    華為面試改革,你怎么看?

    編程語言,進行兩輪面試,每輪約 45 分鐘。面試官均獨立進行面試考察,提前根據(jù)崗位要求設(shè)計編程考察題目,通過當(dāng)面或視頻編程的方式,考察實際編程能力及相關(guān)知識技能掌握程度。候選人編程 30 分鐘,
    發(fā)表于 05-06 11:00

    未來用機器人做面試官,可靠嗎

    小鑫的遭遇備受關(guān)注,事件的另一主角——機器人面試官,也由此進入了人們的視線。機器人測試結(jié)果是否可靠?未來招聘中是否大規(guī)模應(yīng)用人工智能?
    發(fā)表于 06-27 14:55 ?1500次閱讀

    軟件測試工程師面試常見問題匯總

    面試官常問的問題:
    的頭像 發(fā)表于 08-31 10:49 ?3710次閱讀

    面試官談軟件工程師面試技巧

    我最近一直在進行軟件工程師面試面試開始時,我都會問面試官兩個問題,但至今沒有得到令我滿意的回答:
    的頭像 發(fā)表于 10-25 10:33 ?4494次閱讀

    來自一線面試官的AI領(lǐng)域校招建議

    作為京東集團2019秋招的一名算法崗面試官,來為大家解讀一下如何在AI領(lǐng)域的校招中脫穎而出。
    的頭像 發(fā)表于 11-28 15:06 ?3331次閱讀

    程序員面試經(jīng)驗總結(jié)

    程序員面試過程中,面試官想要從 “ 自我介紹 “ 獲得什么信息?
    的頭像 發(fā)表于 04-23 17:03 ?2943次閱讀

    你敢讓AI成為你的面試官

    AI給面試帶來的影響,總體來看優(yōu)勢與弊端都十分突出。人們初次見面時,往往十分注重第一印象,而這種印象有時甚至影響后續(xù)的面試進程。
    發(fā)表于 11-27 16:17 ?663次閱讀

    如何保證kafka消息不丟失

    如果在簡歷上寫了使用過kafka消息中間件,面試官大概80%的概率問你:"如何保證kafka消息不丟失?"反正我是屢試不爽。
    的頭像 發(fā)表于 12-19 09:52 ?724次閱讀
    如何保證<b class='flag-5'>kafka</b>消息不丟失

    程序員去面試只需一個技能征服所有面試官!

    個車輛工程專業(yè)的研究生去面試面試官最后問他會不會嵌入式。雖然應(yīng)聘的崗位不是嵌入式工程師,但看來老板還是希望他能懂點這方面的知識。這個小插曲就說明了一個重要的就業(yè)
    的頭像 發(fā)表于 11-05 19:35 ?194次閱讀
    程序員去<b class='flag-5'>面試</b>只需一個技能征服所有<b class='flag-5'>面試官</b>!
    RM新时代网站-首页