国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

一線大廠面試真題-Kafka如何保證消息不丟失

這篇具有很好參考價(jià)值的文章主要介紹了一線大廠面試真題-Kafka如何保證消息不丟失。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

目錄

問題解答

面試點(diǎn)評(píng)


問題解答

(如圖)kafka一個(gè)用來實(shí)現(xiàn)異步消息通信的中間件,它的整個(gè)架構(gòu)由Producer、Consumer、Broker組成。

一線大廠面試真題-Kafka如何保證消息不丟失,分布式消息隊(duì)列面試題,面試,kafka,職場(chǎng)和發(fā)展

所以,對(duì)于kafka何保證消息不丟失這個(gè)問題,可以從三個(gè)方面來考慮和實(shí)現(xiàn)

首先是Producer端,需要確保消息能夠到達(dá)Broker并實(shí)現(xiàn)消息存儲(chǔ),在這個(gè)層面,有可能出現(xiàn)網(wǎng)絡(luò)問題,導(dǎo)致消息發(fā)送失敗,所以,針對(duì)Producer端,可以通過2種方來避免消息丟失

1. ??Producer默認(rèn)是異步發(fā)送消息,這種情況下要確保消息發(fā)送成功,有兩個(gè)方法

a.把異步發(fā)送改成同步發(fā)送,這樣producer就能實(shí)時(shí)知道消息發(fā)送的結(jié)果。

b.添加異步回調(diào)函數(shù)來監(jiān)聽消息發(fā)送的結(jié)果,如果發(fā)送失敗,可以在回調(diào)中重試。

2. ??Producer本身提供了一個(gè)重試參數(shù)retries,如果因?yàn)榫W(wǎng)絡(luò)問題或者Broker故障導(dǎo)致發(fā)送失敗,Producer會(huì)自動(dòng)重試。

然后是Broker端,Broker需要確保Producer發(fā)送過來的息不會(huì)丟失,也就是只需要把消息持久化到磁盤就可以了。

(如圖)但是,Kafka為了提升性能,采用了異步批量刷盤的實(shí)現(xiàn)機(jī)制,也就是說按照一定的消息量和時(shí)間間隔來刷盤,而最終刷新到磁盤的這個(gè)動(dòng)作,是由操作系統(tǒng)來調(diào)度的,所以如果在刷盤之前系統(tǒng)崩潰,就會(huì)導(dǎo)致數(shù)據(jù)丟失。

一線大廠面試真題-Kafka如何保證消息不丟失,分布式消息隊(duì)列面試題,面試,kafka,職場(chǎng)和發(fā)展

(如圖)Kafka并沒有提供同步刷的實(shí)現(xiàn),所以針對(duì)這個(gè)問題,需要通過Partition的副本機(jī)制和acks機(jī)制來一起解決。

我簡(jiǎn)單說一下Partition副本機(jī)制,它是針對(duì)每個(gè)數(shù)據(jù)分區(qū)的高可用策略,每個(gè)partition副本集包含唯一的一個(gè)Leader和多個(gè)Follower,Leader專門處理事務(wù)類的請(qǐng)求,F(xiàn)ollower負(fù)責(zé)同步Leader的數(shù)據(jù)”。

在這樣的一種機(jī)制的基礎(chǔ)上,kafka提供了一個(gè)acks的參數(shù),Producer可以設(shè)置acks參數(shù)再結(jié)合Broker的副本機(jī)制來個(gè)共同保障數(shù)據(jù)的可靠性。

acks有幾個(gè)值的選擇

1. ??acks=0,表示producer不需要等Broker的響應(yīng),就認(rèn)為消息發(fā)送成功,這種情況會(huì)存在消息丟失。

2. ??acks=1,表示Broker中的Leader Partition收到消息以后,不等待其他Follower?Partition同步完,就給Producer返回確認(rèn),這種情況下Leader Partition掛了,會(huì)存在數(shù)據(jù)丟失。

3. ??acks=-1,表示Broker中的Leader?Partition收到消息后,并且等待ISR列表中follower同步完成,再給Producer返回確認(rèn),這個(gè)配置可以保證數(shù)據(jù)的可靠性。

最后,就是Consumer必須要能消費(fèi)到這個(gè)消息,實(shí)際上,只要producerbroker的消息可靠的到了保障,那么消費(fèi)端是不太可能出現(xiàn)消息無法消費(fèi)的問題,除非是Consumer消費(fèi)完這個(gè)消息就直接提交了,但是即便是這個(gè)情況,也可以通過調(diào)整offset的值來重新消費(fèi)。

面試點(diǎn)評(píng)

從高手的回答可以發(fā)現(xiàn),任何的技術(shù)問題,是可以按照請(qǐng)求的順序,或者調(diào)用關(guān)系來逐層推導(dǎo)去回答的。

當(dāng)然,技術(shù)的底子要足夠厚,至少像kafka里面這些副本、數(shù)據(jù)同步、分區(qū)、刷盤等功,至少都要有深度的思考和研究。

一線大廠面試真題-Kafka如何保證消息不丟失,分布式消息隊(duì)列面試題,面試,kafka,職場(chǎng)和發(fā)展文章來源地址http://www.zghlxwxcb.cn/news/detail-790299.html

到了這里,關(guān)于一線大廠面試真題-Kafka如何保證消息不丟失的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • RocketMQ和Kafka的區(qū)別,以及如何保證消息不丟失和重復(fù)消費(fèi)

    RocketMQ和Kafka的區(qū)別,以及如何保證消息不丟失和重復(fù)消費(fèi)

    性能(單臺(tái)) 語言 多語言支持客戶端 優(yōu)缺點(diǎn) RocketMQ 十萬級(jí) java java 模型簡(jiǎn)單、接口易用,在阿里有大規(guī)模應(yīng)用 文檔少,支持的語言少 Kafka 百萬級(jí) 服務(wù)端scala,客戶端java 主流語言均支持 天生分布式、性能最好,常用于大數(shù)據(jù)領(lǐng)域 運(yùn)維難度大,對(duì)zookeeper強(qiáng)依賴,多副本機(jī)制

    2024年01月16日
    瀏覽(30)
  • 【kafka面試題2】如何保證kafka消息的順序性

    【kafka面試題2】如何保證kafka消息的順序性

    如何保證kafka消息的順序性呢,其實(shí)整體的策略就是:我們 讓需要有序的消息發(fā)送到同一個(gè)分區(qū)Partition。 為什么說讓有序的消息發(fā)送到同一個(gè)分區(qū)Partition就行呢,,下面我們來詳細(xì)分析一下子。 首先 ,我們知道kafka消息的收發(fā)是基于Topic(主題),消息通過Topic進(jìn)行分類。單

    2024年02月13日
    瀏覽(23)
  • Kafka怎么保證消息發(fā)送不丟失

    Kafka發(fā)送消息是異步發(fā)送的,所以我們不知道消息是否發(fā)送成功,所以會(huì)可能造成消息丟失。而且Kafka架構(gòu)是由生產(chǎn)者-服務(wù)器端-消費(fèi)者三種組成部分構(gòu)成的。要保證消息不丟失,那么主要有三種解決方法: 生產(chǎn)者(producer)保持同步發(fā)送消息 服務(wù)器端(broker)持久化設(shè)置為同

    2024年02月04日
    瀏覽(23)
  • 使用 Kafka 保證消息不丟失的策略及原理解析

    使用 Kafka 保證消息不丟失的策略及原理解析

    ??祝屏幕前的小伙伴們每天都有好運(yùn)相伴左右,一定要天天開心!??? ????作者主頁: 喔的嘛呀???? 目錄 一、引言 二. 持久化存儲(chǔ) 2.1持久化存儲(chǔ)原理: 2.2使用示例: 1. 安裝 Kafka: 2. 生產(chǎn)者代碼: 3. 消費(fèi)者代碼: 三. 消息確認(rèn)機(jī)制 3.1消息確認(rèn)機(jī)制原理: 3.2使用示

    2024年04月09日
    瀏覽(25)
  • 消息中間件之八股面試回答篇:一、問題概覽+MQ的應(yīng)用場(chǎng)景+RabbitMQ如何保證消息不丟失(生產(chǎn)者確認(rèn)機(jī)制、持久化、消費(fèi)者確認(rèn)機(jī)制)+回答模板

    消息中間件之八股面試回答篇:一、問題概覽+MQ的應(yīng)用場(chǎng)景+RabbitMQ如何保證消息不丟失(生產(chǎn)者確認(rèn)機(jī)制、持久化、消費(fèi)者確認(rèn)機(jī)制)+回答模板

    目前主流的消息隊(duì)列技術(shù)(MQ技術(shù))分為RabbitMQ和Kafka,其中深藍(lán)色為只要是MQ,一般都會(huì)問到的問題。淺藍(lán)色是針對(duì)RabbitMQ的特性的問題。藍(lán)紫色為針對(duì)Kafka的特性的問題。 MQ主要提供的功能為:異步 解耦 削峰 。 展開來講就是 異步發(fā)送(驗(yàn)證碼、短信、郵件…) MYSQL和Redi

    2024年01月24日
    瀏覽(56)
  • RabbitMQ 消息丟失的場(chǎng)景,如何保證消息不丟失?

    RabbitMQ 消息丟失的場(chǎng)景,如何保證消息不丟失?

    第一種:生產(chǎn)者弄丟了數(shù)據(jù)。生產(chǎn)者將數(shù)據(jù)發(fā)送到 RabbitMQ 的時(shí)候,可能數(shù)據(jù)就在半路給搞丟了,因?yàn)榫W(wǎng)絡(luò)問題啥的,都有可能。 第二種:RabbitMQ 弄丟了數(shù)據(jù)。MQ還沒有持久化自己掛了 第三種:消費(fèi)端弄丟了數(shù)據(jù)。剛消費(fèi)到,還沒處理,結(jié)果進(jìn)程掛了,比如重啟了。 1.針對(duì)生

    2024年02月11日
    瀏覽(30)
  • 大數(shù)據(jù)面試題:Kafka怎么保證數(shù)據(jù)不丟失,不重復(fù)?

    面試題來源: 《大數(shù)據(jù)面試題 V4.0》 大數(shù)據(jù)面試題V3.0,523道題,679頁,46w字 可回答:Kafka如何保證生產(chǎn)者不丟失數(shù)據(jù),消費(fèi)者不丟失數(shù)據(jù)? 參考答案: 存在數(shù)據(jù)丟失的幾種情況 使用同步模式的時(shí)候,有3種狀態(tài)保證消息被安全生產(chǎn),在配置為1(只保證寫入leader成功)的話,

    2024年02月15日
    瀏覽(23)
  • 如何保證 RabbitMQ 消息不丟失?

    如何保證 RabbitMQ 消息不丟失?

    ? 第一種:生產(chǎn)者弄丟了數(shù)據(jù)。生產(chǎn)者將數(shù)據(jù)發(fā)送到 RabbitMQ 的時(shí)候,可能數(shù)據(jù)就在半路給搞丟了,因?yàn)榫W(wǎng)絡(luò)問題啥的,都有可能。 第二種:RabbitMQ 弄丟了數(shù)據(jù)。MQ還沒有持久化自己掛了。 第三種:消費(fèi)端弄丟了數(shù)據(jù)。剛消費(fèi)到,還沒處理,結(jié)果進(jìn)程掛了,比如重啟了。 ? 方

    2024年02月08日
    瀏覽(23)
  • RabbitMQ如何保證消息不丟失

    RabbitMQ如何保證消息不丟失

    觀察整個(gè) RabbitMQ 消息發(fā)送過程: 從上述流程我們可以得知:消息從生產(chǎn)者到達(dá)消費(fèi)者,經(jīng)過兩次網(wǎng)絡(luò)傳輸,并且在 RabbitMQ 服務(wù)器中進(jìn)行路由。 因此我們能知道整個(gè)流程中可能會(huì)出現(xiàn)三種消息丟失場(chǎng)景: 生產(chǎn)者發(fā)送消息到 RabbitMQ 服務(wù)器的過程中出現(xiàn)消息丟失。 可能是網(wǎng)絡(luò)波

    2024年02月21日
    瀏覽(23)
  • RabbitMQ如何保證消息不丟失?

    RabbitMQ如何保證消息不丟失?

    1、什么 情況會(huì)導(dǎo)致消息丟失 ? ?????? ? ? ? ? ?a.發(fā)送 時(shí)丟失: ?? ????????????????生產(chǎn)者發(fā)送的消息未送達(dá)exchange ? ????????????????? 消息到達(dá)exchange 后未到達(dá) queue ? ? ? ? b.MQ宕機(jī), queue 將消息丟失 ? ? ? ? c.consumer接收到消息后未消費(fèi)就宕機(jī)

    2024年02月02日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包