Kafka 會丟失信息嗎?
許多開發人員普遍認為,Kafka 的設計本身就能保證不會丟失消息。然而,Kafka 架構和配置的細微差別會導致消息的丟失。我們需要了解它如何以及何時可能丟失消息,并防止此類情況的發生。
下圖顯示了消息在 Kafka 的生命周期中可能丟失的場景。

01 生產者(Producer)
當我們調用 producer.send() 發送消息時,消息不會直接發送到代理。
消息發送過程涉及兩個線程和一個隊列:
- 應用程序線程
- 消息累加器
- 發送線程(I/O 線程)
我們需要為生產者配置適當的 "acks "和 "retries",以確保消息被發送到代理。
02 消息代理(Broker)
當代理集群正常運行時,它不應該丟失消息。但是,我們需要了解哪些極端情況可能會導致消息丟失:
- 為了提高 I/O 吞吐量,消息通常會異步刷到磁盤上,因此如果實例在刷新之前宕機,消息就會丟失。
- Kafka 集群中的副本需要正確配置,以保持數據的有效副本。數據同步的確定性非常重要。
03 消費者(Consumer)
Kafka 提供了不同的提交消息的方式。自動提交可能會在實際處理記錄之前確認對記錄的處理。當消費者在處理過程中宕機時,有些記錄可能永遠不會被處理。
一個好的做法是將同步提交和異步提交結合起來,在處理消息的循環中使用異步提交以提高吞吐量,在異常處理中使用同步提交以確保最后的偏移始終被提交。
下圖是這個方法的偽代碼:
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();
}
}
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
架構
+關注
關注
1文章
532瀏覽量
26590 -
線程
+關注
關注
0文章
509瀏覽量
20828 -
kafka
+關注
關注
0文章
55瀏覽量
5573
原文標題:面試官:Kafka 會丟消息嗎?
文章出處:【微信號:小林coding,微信公眾號:小林coding】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
熱點推薦
【明天會更好】教你避開外企面試“高級”錯誤
。面試中,應試者又出于種種顧慮,不愿主動說話,結果使面試出現冷場。即便能勉強打破沉默,語音語調亦極其生硬,使場面更顯尷尬。實際上,無論是面試前或面試中,
發表于 03-09 10:53
面試中千萬不能犯的錯誤
面試錯誤并不僅僅限于應聘者,面試官也會犯很多錯誤。以下上海公積金提取覺得是面試官們常犯的七個錯誤以及如何避免這些錯誤的方法:1. 談論可能性。應聘者們自然地推銷自己,但是
發表于 08-31 08:45
面試時,自我介紹三禁忌
格,對同一個應聘者的回答,會有不同的評判。“你回答3000元,有的面試官會覺得你很踏實,實事求是。還有的面試官會覺得你欲望不高,沒有上進心。”因此,白斌建議在校大學生,要學會察言觀色。
發表于 11-25 19:57
以下五種人面試最難成功
。 (三)不注重個人職業形象者 當你在投遞簡歷后接到面試通知后,你一般會怎樣做?選擇一套合身的衣服,準備好需要呈給面試官的資料等,然后計算好去公司面試的時間在規定時間內達到
發表于 12-15 21:41
善用“微表情”打動面試官
部位,幫助求職者矯正不良“微表情”。有學生發微博稱,微表情很給力。 洞察HR“微表情”可投其所好 “微表情”不是求職者的專有名詞,HR也有“微表情”。求職者如果能“察言觀色”,也可以洞察面試官
發表于 01-02 15:42
千萬別這么回答面試官問題!
`又到一年面試季,小伙伴們都忙著找工作面試,是不是快被面試官的問題問成面癱了。今天小編來教教大家如何復仇,一句話噎死面試官!01 請你自我介紹一下噎死
發表于 03-08 14:28
未來用機器人做面試官,可靠嗎
小鑫的遭遇備受關注,事件的另一主角——機器人面試官,也由此進入了人們的視線。機器人測試結果是否可靠?未來招聘中是否會大規模應用人工智能?
發表于 06-27 14:55
?1633次閱讀
你敢讓AI成為你的面試官嗎
AI給面試帶來的影響,總體來看優勢與弊端都十分突出。人們初次見面時,往往十分注重第一印象,而這種印象有時甚至會影響后續的面試進程。
發表于 11-27 16:17
?882次閱讀
華為射頻工程師面試經驗分享
的技術問題,接著開始聊項目,一面問的可能比較深些,結束以后面試官會對你做一個評價,然后會告訴你通沒通過,如果通過了會去外面等下一輪面試,二面面試官會參考一面的成績與評價繼續問一些技術問
程序員去面試只需一個技能征服所有面試官!
個車輛工程專業的研究生去面試,面試官最后問他會不會嵌入式。雖然應聘的崗位不是嵌入式工程師,但看來老板還是希望他能懂點這方面的知識。這個小插曲就說明了一個重要的就業
面試官:Kafka會丟消息嗎?
評論