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

【Kafka面試】Kafka如何保證消息不丟失?

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

使用Kafka時(shí),在消息的收發(fā)過(guò)程中都有可能會(huì)出現(xiàn)消息丟失。

kafka丟消息可以避免嗎,Kafka,kafka

一、生產(chǎn)者發(fā)送消息到broker過(guò)程中丟失

1. 設(shè)置異步發(fā)送

kafka丟消息可以避免嗎,Kafka,kafka

  • 同步發(fā)送:會(huì)產(chǎn)生阻塞,一般使用異步發(fā)送。
  • 異步發(fā)送:實(shí)現(xiàn)回調(diào)方法,消息發(fā)送失敗時(shí)記錄日志,或者重新發(fā)送,最終確保消息能夠成功發(fā)送。

2. 設(shè)置消息重試機(jī)制

kafka丟消息可以避免嗎,Kafka,kafka

  • 由于網(wǎng)絡(luò)抖動(dòng)問(wèn)題,很快就會(huì)恢復(fù)正常,造成的消息丟失。

二、消息在broker中存儲(chǔ)過(guò)程中丟失

Kafka中提供了一種發(fā)送確認(rèn)機(jī)制,當(dāng)生產(chǎn)者發(fā)送的消息到broker中,這些消息會(huì)存儲(chǔ)在分區(qū)中。分區(qū)又分為leader和follower兩種副本角色,其中,leader只有1個(gè),follower可能有多個(gè)。分區(qū)收到消息后,首先保存到leader副本中,然后由leader副本把數(shù)據(jù)同步到follower副本中。

kafka丟消息可以避免嗎,Kafka,kafka

1. 發(fā)送確認(rèn)機(jī)制acks

kafka丟消息可以避免嗎,Kafka,kafka

  • acks=all:在所有的分區(qū)副本保存之后,才會(huì)發(fā)送確認(rèn),可以保證消息不丟失;這也是性能最低的一種。
  • 在實(shí)際的生產(chǎn)環(huán)境中,最低也要設(shè)置acks=1,起碼能讓leader副本保存數(shù)據(jù)。

三、消費(fèi)者從broker接收消息過(guò)程中丟失

一個(gè)Kafka集群是由多個(gè)broker(Kafka實(shí)例)組成,在每一個(gè)broker中存在不同的topic,且
1個(gè)topic可能存在多個(gè)分區(qū)(partition),分區(qū)也可能存在不同的broker中。

kafka丟消息可以避免嗎,Kafka,kafka

  • 1個(gè)消費(fèi)者組中可能存在多個(gè)消費(fèi)者,它們都是消費(fèi)同一個(gè)topic,每個(gè)消費(fèi)者會(huì)去消費(fèi)該topic下不同分區(qū)中消息。
  • 每個(gè)分區(qū)都是按照偏移量(offset)來(lái)存儲(chǔ)數(shù)據(jù)的,每個(gè)分區(qū)都是有順序的、不可變的消息隊(duì)列,且可以持續(xù)的添加消息。
  • 分區(qū)中的消息都配備了一個(gè)序列號(hào),稱之為偏移量
  • 同一個(gè)topic是由不同的消費(fèi)者組去消費(fèi)數(shù)據(jù)的,消費(fèi)者去消費(fèi)數(shù)據(jù)時(shí)也會(huì)按照偏移量去消費(fèi)。

kafka丟消息可以避免嗎,Kafka,kafka

  • 默認(rèn)情況下,每個(gè)消費(fèi)者每個(gè)5秒自動(dòng)提交一次消費(fèi)偏移量
  • 如果消費(fèi)者組出現(xiàn)重平衡情況,可能會(huì)重復(fù)消費(fèi)或者消息丟失
  • 重平衡:消費(fèi)者組中某個(gè)消費(fèi)者宕機(jī),其負(fù)責(zé)消費(fèi)的分區(qū),交給組內(nèi)其他消費(fèi)者,重新分配消費(fèi)分區(qū)過(guò)程中可能會(huì)出現(xiàn)重復(fù)消費(fèi)或者消息丟失。
  • 重復(fù)消費(fèi):某個(gè)消費(fèi)者宕機(jī)時(shí),當(dāng)前消費(fèi)偏移量是3,提交到Kafka的偏移量是1,導(dǎo)致重平衡后組內(nèi)消費(fèi)者重復(fù)消費(fèi)某些數(shù)據(jù)。
  • 消息丟失:某個(gè)消費(fèi)者宕機(jī)時(shí),當(dāng)前消費(fèi)偏移量是1,提交到Kafka的偏移量是3,導(dǎo)致重平衡后組內(nèi)消費(fèi)者重復(fù)消費(fèi)某些數(shù)據(jù)。

1. 禁用自動(dòng)提交偏移量,改為手動(dòng)

導(dǎo)致這個(gè)原因就是消費(fèi)者自動(dòng)提交偏移量,提交的偏移量不準(zhǔn)確,造成重復(fù)消費(fèi)或者消息丟失??梢栽O(shè)置手動(dòng)提交偏移量,消費(fèi)多少就提交多少偏移量,如果宕機(jī)就不提交偏移量,這樣偏移量就準(zhǔn)確了。

kafka丟消息可以避免嗎,Kafka,kafka

  • 同步提交:會(huì)阻塞
  • 異步提交:如果消費(fèi)失敗,可能導(dǎo)致消費(fèi)偏移量不準(zhǔn)確
  • 同步+異步組合提交:最佳方式

四、小結(jié)

kafka丟消息可以避免嗎,Kafka,kafka

五、模擬面試

kafka丟消息可以避免嗎,Kafka,kafka文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-769600.html

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

本文來(lái)自互聯(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)文章

  • 一文徹底搞懂Kafka如何保證消息不丟失

    一文徹底搞懂Kafka如何保證消息不丟失

    Producer:生產(chǎn)者,發(fā)送消息的一方。生產(chǎn)者負(fù)責(zé)創(chuàng)建消息,然后將其發(fā)送到 Kafka。 Consumer:消費(fèi)者,接受消息的一方。消費(fèi)者連接到 Kafka 上并接收消息,進(jìn)而進(jìn)行相應(yīng)的業(yè)務(wù)邏輯處理。 Consumer Group:將多個(gè)消費(fèi)者組成一個(gè)消費(fèi)者組,一個(gè)消費(fèi)者組可以包含一個(gè)或多個(gè)消費(fèi)者。

    2024年04月22日
    瀏覽(30)
  • RocketMQ和Kafka的區(qū)別,以及如何保證消息不丟失和重復(fù)消費(fèi)

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

    性能(單臺(tái)) 語(yǔ)言 多語(yǔ)言支持客戶端 優(yōu)缺點(diǎn) RocketMQ 十萬(wàn)級(jí) java java 模型簡(jiǎn)單、接口易用,在阿里有大規(guī)模應(yīng)用 文檔少,支持的語(yǔ)言少 Kafka 百萬(wàn)級(jí) 服務(wù)端scala,客戶端java 主流語(yǔ)言均支持 天生分布式、性能最好,常用于大數(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。 為什么說(shuō)讓有序的消息發(fā)送到同一個(gè)分區(qū)Partition就行呢,,下面我們來(lái)詳細(xì)分析一下子。 首先 ,我們知道kafka消息的收發(fā)是基于Topic(主題),消息通過(guò)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)相伴左右,一定要天天開(kāi)心!??? ????作者主頁(yè): 喔的嘛呀???? 目錄 一、引言 二. 持久化存儲(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)
  • 大數(shù)據(jù)面試題:Kafka怎么保證數(shù)據(jù)不丟失,不重復(fù)?

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

    2024年02月15日
    瀏覽(23)
  • kafka如何保證數(shù)據(jù)不丟失?

    生產(chǎn)者生產(chǎn)數(shù)據(jù)有兩種模式:一種是同步模式,一種是異步模式。 同步模式:生產(chǎn)者生產(chǎn)一條數(shù)據(jù),就保存一條數(shù)據(jù),保存成功后,再生產(chǎn)下一條數(shù)據(jù),能夠保證數(shù)據(jù)不丟失,但是效率太低了。 異步模式(采用ack機(jī)制): 在producer端開(kāi)啟一塊buff緩沖,用來(lái)緩存數(shù)據(jù),緩存一批

    2023年04月27日
    瀏覽(23)
  • kafka如何保證數(shù)據(jù)不丟失

    kafka如何保證數(shù)據(jù)不丟失

    1.1 生產(chǎn)者如何保證數(shù)據(jù)不丟失 ACK機(jī)制: 當(dāng)生產(chǎn)者將數(shù)據(jù)生產(chǎn)到Broker后, Broker應(yīng)該給予一個(gè)ack確認(rèn)響應(yīng), 在kafka中, 主要提供了三種ack的方案: ?? ?ack=0 : 生產(chǎn)者只管發(fā)送數(shù)據(jù), 不關(guān)心不接收Broker給予的響應(yīng) ?? ?ack=1 : 生產(chǎn)者將數(shù)據(jù)發(fā)送到Broker端, 需要等待Broker端對(duì)應(yīng)的Topic上對(duì)應(yīng)

    2024年02月06日
    瀏覽(18)
  • kafka消息丟失面試題,RocketMQ消息丟失場(chǎng)景及解決辦法

    kafka消息丟失面試題,RocketMQ消息丟失場(chǎng)景及解決辦法

    互聯(lián)網(wǎng)行業(yè)更新?lián)Q代非??欤袠I(yè)常態(tài)便是不斷學(xué)習(xí),因此這些主流技術(shù)你一個(gè)都不能落下! ①并發(fā)編程 Java并發(fā)編程是整個(gè)Java開(kāi)發(fā)體系中最難以理解,但也是最重要的知識(shí)點(diǎn)之一,因此學(xué)習(xí)起來(lái)比較費(fèi)勁,從而導(dǎo)致很多人望而卻步,但是無(wú)論是職場(chǎng)面試還是高并發(fā)高流量的

    2024年03月17日
    瀏覽(26)
  • kafka是如何保證數(shù)據(jù)不丟失的

    Kafka通過(guò)一系列機(jī)制來(lái)確保數(shù)據(jù)不丟失,這些機(jī)制涵蓋了生產(chǎn)者、Broker和消費(fèi)者等關(guān)鍵環(huán)節(jié)。以下是Kafka保證數(shù)據(jù)不丟失的主要方式: 生產(chǎn)者生產(chǎn)數(shù)據(jù)不丟失: 同步方式:生產(chǎn)者發(fā)送數(shù)據(jù)給Kafka后,會(huì)等待Kafka的確認(rèn)。如果在一定時(shí)間內(nèi)(如10秒)沒(méi)有收到Broker的ack響應(yīng),生產(chǎn)

    2024年04月25日
    瀏覽(45)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包