日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當(dāng)前位置:首頁(yè) > 科技  > 軟件

面試官:對(duì)于 MQ 中的消息丟失你是如何理解的?

來(lái)源: 責(zé)編: 時(shí)間:2024-06-06 17:39:06 163觀看
導(dǎo)讀相信很多的小伙伴在面試的時(shí)候,涉及到MQ的面試題,消息丟失是必問面試題之一。那么對(duì)于消息丟失你又是如何理解的呢?下面我們一起來(lái)看一下。本文以 Kafka 舉例說明。一、什么是消息丟失?消息丟失的定義是:在消息傳遞的過程

相信很多的小伙伴在面試的時(shí)候,涉及到MQ的面試題,消息丟失是必問面試題之一。那么對(duì)于消息丟失你又是如何理解的呢?kJC28資訊網(wǎng)——每日最新資訊28at.com

下面我們一起來(lái)看一下。kJC28資訊網(wǎng)——每日最新資訊28at.com

本文以 Kafka 舉例說明。kJC28資訊網(wǎng)——每日最新資訊28at.com

kJC28資訊網(wǎng)——每日最新資訊28at.com

kJC28資訊網(wǎng)——每日最新資訊28at.com

一、什么是消息丟失?

消息丟失的定義是:在消息傳遞的過程中,在某個(gè)環(huán)節(jié)意外丟失,也就是消息沒有成功的發(fā)送或者沒有被正確的接收。kJC28資訊網(wǎng)——每日最新資訊28at.com

生產(chǎn)者未能成功發(fā)送消息。kJC28資訊網(wǎng)——每日最新資訊28at.com

kJC28資訊網(wǎng)——每日最新資訊28at.com

消費(fèi)者未能正確接收消息。kJC28資訊網(wǎng)——每日最新資訊28at.com

kJC28資訊網(wǎng)——每日最新資訊28at.com

消費(fèi)者未能正確處理消息。kJC28資訊網(wǎng)——每日最新資訊28at.com

kJC28資訊網(wǎng)——每日最新資訊28at.com

對(duì)于第三條可以理解為特殊的消息丟失,因?yàn)橄M(fèi)者的邏輯處理錯(cuò)誤,程序bug等其他原因,造成消息在處理過程中消息丟失或者被忽略(異常之后錯(cuò)誤的應(yīng)答等),也就是說消息沒有正確的被消費(fèi)掉,我們也可以認(rèn)為是一種消息丟失。kJC28資訊網(wǎng)——每日最新資訊28at.com

二、消息丟失的原因有哪些

1.消息生產(chǎn)階段

  • 生產(chǎn)者配置錯(cuò)誤:生產(chǎn)者在發(fā)送消息時(shí),配置錯(cuò)誤的主體、分區(qū)或者消息的過期時(shí)間,造成消息無(wú)法正確發(fā)送到MQ中。
  • 網(wǎng)絡(luò)故障:生產(chǎn)者與MQ集群之間網(wǎng)絡(luò)故障。

2.消息存儲(chǔ)階段

  • 磁盤故障:以Kafka舉例,如果磁盤出現(xiàn)故障,Kafka中的消息無(wú)法洛盤,可能導(dǎo)致消息的丟失。
  • 日志壓縮策略:使用了壓縮比較高的壓縮策略從而可能在壓縮的過程中丟失消息。

3.消息消費(fèi)階段

  • 消費(fèi)者處理失敗:在處理消費(fèi)邏輯時(shí),由于程序bug等原因,造成系統(tǒng)異常,錯(cuò)誤應(yīng)答從而丟失消息。
  • 消費(fèi)者提交偏移量錯(cuò)誤:當(dāng)消費(fèi)者消費(fèi)完消息之后,提交錯(cuò)誤的偏移量造成消息的重復(fù)消費(fèi)或者消息丟失。

三、消息丟失的解決方案有哪些

1.消息生產(chǎn)階段

(1) 配置正確的主體、分區(qū)、以及TTL。kJC28資訊網(wǎng)——每日最新資訊28at.com

(2) 使用ACK應(yīng)答,等待消息被MQ寫入成功之后在確認(rèn)為發(fā)送成功。kJC28資訊網(wǎng)——每日最新資訊28at.com

  • ack=1:默認(rèn)值,leader副本成功寫入消息即發(fā)送成功。
  • ack=0:發(fā)送消息后不等待服務(wù)端確認(rèn)。
  • ack=-1或者ack=all:生產(chǎn)者需要等待ISR中的所有副本都成功寫入消息才為消息發(fā)送成功。

(3) 消息發(fā)送重試。kJC28資訊網(wǎng)——每日最新資訊28at.com

  • retries:配置生產(chǎn)者發(fā)送消息重試次數(shù)。

(4) 配置合理的壓縮策略。kJC28資訊網(wǎng)——每日最新資訊28at.com

  • compression.type 支持none、gzip、snappy、lz4、zstd。

(5) 設(shè)置合理的消息緩沖區(qū)大小。kJC28資訊網(wǎng)——每日最新資訊28at.com

  • buffer.memory:默認(rèn)33554432。生產(chǎn)者用于緩存一批發(fā)送到服務(wù)器消息的總內(nèi)存字節(jié)數(shù)。

(6) 使用合適的序列化器,防止序列號(hào)錯(cuò)誤造成消息丟失。kJC28資訊網(wǎng)——每日最新資訊28at.com

其他的配置可以參考官網(wǎng) Kafka 生產(chǎn)者配置:https://kafka.apache.org/documentation/#producerconfigskJC28資訊網(wǎng)——每日最新資訊28at.com

2.消息存儲(chǔ)階段

  • 配置適當(dāng)?shù)母北緮?shù)量和ISR。在發(fā)生故障的時(shí)候消息仍然可以從其他的副本中進(jìn)行恢復(fù)。
  • 使用監(jiān)控,實(shí)時(shí)檢測(cè)消息的復(fù)制、磁盤的使用率。
  • 定期備份。

3.消息消費(fèi)階段

(1) 編寫健壯的代碼,說的容易,寫起來(lái)還是得多測(cè)試。對(duì)于可能產(chǎn)生的異常原因進(jìn)行分析處理。當(dāng)發(fā)生異常時(shí),可以做如下處理:kJC28資訊網(wǎng)——每日最新資訊28at.com

  • 記錄錯(cuò)誤,有異常處理機(jī)制,保證能夠正確的處理異常情況。
  • 消息重試消息。(需要注意消費(fèi)冪等以及死循環(huán)造成消息堆積)

(2) 使用手動(dòng)提交偏移量。(需保證所有的異常情況代碼中都有對(duì)應(yīng)的異常處理機(jī)制,也就是第一點(diǎn),健壯的代碼)kJC28資訊網(wǎng)——每日最新資訊28at.com

(3) 使用自動(dòng)提交偏移量。(需要保證消費(fèi)邏輯正確)kJC28資訊網(wǎng)——每日最新資訊28at.com

(4) 使用監(jiān)控,監(jiān)控消費(fèi)者的消費(fèi)情況,發(fā)現(xiàn)異常立即上報(bào)。kJC28資訊網(wǎng)——每日最新資訊28at.com

(5) 正確的消費(fèi)者組管理,類似消費(fèi)者重平衡或者重啟等造成的消息偏移量丟失。kJC28資訊網(wǎng)——每日最新資訊28at.com

(6) 備份,發(fā)生異常或者消息丟失時(shí),可以跟蹤到消費(fèi)者的消費(fèi)情況,直接使用備份恢復(fù)。kJC28資訊網(wǎng)——每日最新資訊28at.com

總結(jié)

上面我們分析了什么是消息丟失,產(chǎn)生的原因有哪些以及如何解決。通過看完這篇文章相信你對(duì)Kafka中的消息丟失也有了一定的了解,在工作中使用的時(shí)候也就不會(huì)沒有底氣了。kJC28資訊網(wǎng)——每日最新資訊28at.com

相信有眼尖的小伙伴發(fā)現(xiàn)了,在消費(fèi)者的處理邏輯中,多次消費(fèi)會(huì)造成消息的多次重復(fù)消費(fèi)。消息的重試也有可能造成消息的堆積。那么這些問題就是下節(jié)課我們要說的。kJC28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-92457-0.html面試官:對(duì)于 MQ 中的消息丟失你是如何理解的?

聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com

上一篇: 面試官:對(duì)于MQ中的消息堆積你是怎么理解的?

下一篇: 記一次 .NET某工控視覺自動(dòng)化系統(tǒng)卡死分析

標(biāo)簽:
  • 熱門焦點(diǎn)
  • 2023 年的 Node.js 生態(tài)系統(tǒng)

    隨著技術(shù)的不斷演進(jìn)和創(chuàng)新,Node.js 在 2023 年達(dá)到了一個(gè)新的高度。Node.js 擁有一個(gè)龐大的生態(tài)系統(tǒng),可以幫助開發(fā)人員更快地實(shí)現(xiàn)復(fù)雜的應(yīng)用。本文就來(lái)看看 Node.js 最新的生
  • 使用LLM插件從命令行訪問Llama 2

    最近的一個(gè)大新聞是Meta AI推出了新的開源授權(quán)的大型語(yǔ)言模型Llama 2。這是一項(xiàng)非常重要的進(jìn)展:Llama 2可免費(fèi)用于研究和商業(yè)用途。(幾小時(shí)前,swyy發(fā)現(xiàn)它已從LLaMA 2更名為L(zhǎng)la
  • 每天一道面試題-CPU偽共享

    前言:了不起:又到了每天一到面試題的時(shí)候了!學(xué)弟,最近學(xué)習(xí)的怎么樣啊 了不起學(xué)弟:最近學(xué)習(xí)的還不錯(cuò),每天都在學(xué)習(xí),每天都在進(jìn)步! 了不起:那你最近學(xué)習(xí)的什么呢? 了不起學(xué)弟:最近在學(xué)習(xí)C
  • “又被陳思誠(chéng)騙了”

    作者|張思齊 出品|眾面(ID:ZhongMian_ZM)如今的國(guó)產(chǎn)懸疑電影,成了陳思誠(chéng)的天下。最近大爆電影《消失的她》票房突破30億斷層奪魁暑期檔,陳思誠(chéng)再度風(fēng)頭無(wú)兩。你可以說陳思誠(chéng)的
  • 新電商三兄弟,“抖快紅”成團(tuán)!

    來(lái)源:價(jià)值研究所作 者:Hernanderz 隨著內(nèi)容電商的概念興起,抖音、快手、小紅書組成的“新電商三兄弟”成為業(yè)內(nèi)一股不可忽視的勢(shì)力,給阿里、京東、拼多多帶去了巨大壓
  • 大廠卷向扁平化

    來(lái)源:新熵作者丨南枝 編輯丨月見大廠職級(jí)不香了。俗話說,兵無(wú)常勢(shì),水無(wú)常形,互聯(lián)網(wǎng)企業(yè)調(diào)整職級(jí)體系并不稀奇。7月13日,淘寶天貓集團(tuán)啟動(dòng)了近年來(lái)最大的人力制度改革,目前已形成一
  • 消息稱小米汽車開始篩選交付中心:需至少120個(gè)車位

    IT之家 7 月 7 日消息,日前,有微博簡(jiǎn)介為“汽車行業(yè)從業(yè)者、長(zhǎng)三角一體化擁護(hù)者”的微博用戶 @長(zhǎng)三角行健者 發(fā)文表示,據(jù)經(jīng)銷商集團(tuán)反饋,小米汽車目前
  • 三星獲批量產(chǎn)iPhone 15全系屏幕:蘋果史上最驚艷直屏

    按照慣例,蘋果將繼續(xù)在今年9月舉辦一年一度的秋季新品發(fā)布會(huì),有傳言稱發(fā)布會(huì)將于9月12日舉行,屆時(shí)全新的iPhone 15系列將正式與大家見面,不出意外的話
  • 到手價(jià)3099元起!iQOO Neo8 Pro今日首銷:安卓性能最強(qiáng)旗艦

    5月23日,iQOO如期舉行了新品發(fā)布會(huì),全新的iQOO Neo8系列也正式與大家見面,包含iQOO Neo8和iQOO Neo8 Pro兩個(gè)版本,其中標(biāo)準(zhǔn)版搭載高通驍龍8+,而Pro版更
Top 主站蜘蛛池模板: 绥阳县| 鹤壁市| 东乡县| 阿拉善左旗| 千阳县| 长子县| 正镶白旗| 海林市| 奎屯市| 上林县| 怀远县| 神木县| 曲阜市| 墨玉县| 南靖县| 上林县| 保靖县| 景泰县| 大同市| 龙泉市| 永丰县| 汉寿县| 衡阳县| 盐亭县| 达孜县| 民勤县| 荔波县| 儋州市| 梓潼县| 万年县| 凤山市| 固阳县| 应用必备| 两当县| 万荣县| 宝兴县| 华宁县| 武宁县| 万宁市| 门源| 漳州市|