AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

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

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

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

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

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

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

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

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

一、什么是消息丟失?

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

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

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

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

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

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

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

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

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

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

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

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

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

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。feM28資訊網(wǎng)——每日最新資訊28at.com

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

總結(jié)

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

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

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

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

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

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

標(biāo)簽:
  • 熱門(mén)焦點(diǎn)
  • 7月安卓手機(jī)性?xún)r(jià)比榜:努比亞+紅魔兩款新機(jī)入榜

    7月登場(chǎng)的新機(jī)有努比亞Z50S Pro和紅魔8S Pro,除了三星之外目前唯二的兩款搭載超頻版驍龍8Gen2處理器的產(chǎn)品,而且努比亞和紅魔也一貫有著不錯(cuò)的性?xún)r(jià)比,所以在本次的性?xún)r(jià)比榜單
  • 2023 年的 Node.js 生態(tài)系統(tǒng)

    隨著技術(shù)的不斷演進(jìn)和創(chuàng)新,Node.js 在 2023 年達(dá)到了一個(gè)新的高度。Node.js 擁有一個(gè)龐大的生態(tài)系統(tǒng),可以幫助開(kāi)發(fā)人員更快地實(shí)現(xiàn)復(fù)雜的應(yīng)用。本文就來(lái)看看 Node.js 最新的生
  • Golang 中的 io 包詳解:組合接口

    io.ReadWriter// ReadWriter is the interface that groups the basic Read and Write methods.type ReadWriter interface { Reader Writer}是對(duì)Reader和Writer接口的組合,
  • 學(xué)習(xí)JavaScript的10個(gè)理由...

    作者 | Simplilearn編譯 | 王瑞平當(dāng)你決心學(xué)習(xí)一門(mén)語(yǔ)言的時(shí)候,很難選擇到底應(yīng)該學(xué)習(xí)哪一門(mén),常用的語(yǔ)言有Python、Java、JavaScript、C/CPP、PHP、Swift、C#、Ruby、Objective-
  • 在線圖片編輯器,支持PSD解析、AI摳圖等

    自從我上次分享一個(gè)人開(kāi)發(fā)仿造稿定設(shè)計(jì)的圖片編輯器到現(xiàn)在,不知不覺(jué)已過(guò)去一年時(shí)間了,期間我經(jīng)歷了裁員失業(yè)、面試找工作碰壁,寒冬下一直沒(méi)有很好地履行計(jì)劃.....這些就放在日
  • 19個(gè) JavaScript 單行代碼技巧,讓你看起來(lái)像個(gè)專(zhuān)業(yè)人士

    今天這篇文章跟大家分享18個(gè)JS單行代碼,你只需花幾分鐘時(shí)間,即可幫助您了解一些您可能不知道的 JS 知識(shí),如果您已經(jīng)知道了,就當(dāng)作復(fù)習(xí)一下,古人云,溫故而知新嘛。現(xiàn)在,我們就開(kāi)始今
  • 慕巖炮轟抖音,百合網(wǎng)今何在?

    來(lái)源:價(jià)值研究所 作者:Hernanderz“難道就因?yàn)樽约旱囊粋€(gè)產(chǎn)品牛逼了,從客服到總裁,都不愿意正視自己產(chǎn)品和運(yùn)營(yíng)上的問(wèn)題,選擇逃避了嗎?”這一番話,出自百合網(wǎng)聯(lián)合創(chuàng)
  • AI芯片初創(chuàng)公司Tenstorrent獲三星和現(xiàn)代1億美元投資

    Tenstorrent是一家由芯片行業(yè)資深人士Jim Keller領(lǐng)導(dǎo)的加拿大初創(chuàng)公司,專(zhuān)注于開(kāi)發(fā)人工智能芯片,該公司周三表示,已經(jīng)從現(xiàn)代汽車(chē)集團(tuán)和三星投資基金等
  • 蘋(píng)果MacBook Pro 2021測(cè)試:仍不支持平滑滾動(dòng)

    據(jù)10月30日9to5 Mac 消息報(bào)道,蘋(píng)果新的 14 英寸和 16 英寸 MacBook Pro 2021 上市后獲得了不錯(cuò)的評(píng)價(jià),亮點(diǎn)包括行業(yè)領(lǐng)先的性能,令人印象深刻的電池續(xù)航,精美豐
Top