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

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

Spring實現(xiàn)Kafka重試Topic,真的太香了

來源: 責(zé)編: 時間:2024-01-26 09:02:59 246觀看
導(dǎo)讀概述Kafka的強大功能之一是每個分區(qū)都有一個Consumer的偏移值。該偏移值是消費者將讀取的下一條消息的值。可以自動或手動增加該值。如果我們由于錯誤而無法處理消息并想重試,我們可以選擇手動管理,并在成功的情況下增

概述

Kafka的強大功能之一是每個分區(qū)都有一個Consumer的偏移值。該偏移值是消費者將讀取的下一條消息的值。可以自動或手動增加該值。如果我們由于錯誤而無法處理消息并想重試,我們可以選擇手動管理,并在成功的情況下增加偏移量。但是,這會暫時阻止隊列消息的處理。我們可以選擇異步方法。qBu28資訊網(wǎng)——每日最新資訊28at.com

為什么我們需要它?

如果發(fā)生錯誤,而不是停止隊列消息的處理;我們可以將錯誤消息轉(zhuǎn)移到不同的主題并再次處理。qBu28資訊網(wǎng)——每日最新資訊28at.com

如果在處理 Kafka 消息時出現(xiàn)錯誤,可以使用 RetryableTopic 注解以一定的時間間隔和一定的次數(shù)再次處理消息。如果完成嘗試次數(shù)后錯誤仍然存在,則消息將發(fā)送到 DLT 隊列。qBu28資訊網(wǎng)——每日最新資訊28at.com

如何使用?

我們首先回顧一下RetryableTopic注解可以取的一些值,以便您可以做出最適合您的設(shè)置:qBu28資訊網(wǎng)——每日最新資訊28at.com

attempts:嘗試處理消息的次數(shù)。它的默認值為 3。如果完成所有嘗試后仍然收到錯誤,則消息將發(fā)送到 DLT 隊列。qBu28資訊網(wǎng)——每日最新資訊28at.com

backoff:用于確定處理消息的時間間隔。從 Backoff 類獲取一個值。您可以在下面找到退避的詳細示例。qBu28資訊網(wǎng)——每日最新資訊28at.com

排除/排除名稱:允許您排除指定的異常類。當(dāng)您添加到列表中的任何錯誤被拋出時,重試機制將不會被激活。qBu28資訊網(wǎng)——每日最新資訊28at.com

include / includeNames:僅當(dāng)拋出指定的異常時才會激活重試機制。qBu28資訊網(wǎng)——每日最新資訊28at.com

kafkaTemplate:雖然您可以給出現(xiàn)有 kafkaTemplate bean 的名稱,但您也可以為特定于重試的 Kafka 模板定義不同的 bean。qBu28資訊網(wǎng)——每日最新資訊28at.com

autoCreateTopics:決定是否自動創(chuàng)建Retry和DLT主題。qBu28資訊網(wǎng)——每日最新資訊28at.com

retryTopicSuffix / dltTopicSuffix:用于確定要添加到自動創(chuàng)建的主題末尾的后綴。qBu28資訊網(wǎng)——每日最新資訊28at.com

dltStrategy:如果不需要DLT,可以定義為NO_DLT。qBu28資訊網(wǎng)——每日最新資訊28at.com

SameIntervalTopicReuseStrategy/fixedDelayTopicStrategy(3.0.4之前):用于確定要創(chuàng)建的重試主題策略。創(chuàng)建 (SINGLE_TOPIC) 或盡可能多的嘗試值 (MULTIPLE_TOPICS) 重試主題。qBu28資訊網(wǎng)——每日最新資訊28at.com

Backoff的示例:

  • 具有固定的增量值
Backoff(delay = 600000 ) // 每 10 分鐘
  • 具有指數(shù)價值
Backoff(delay = 60000 , multiplier = 2 ) // 1、2、4、8... 分鐘后重復(fù)。
  • 用占位符定義值
Backoff(delayExpression = "${delay}", multiplierExpression = "${multiplier}")

@RetryableTopic 示例:

@RetryableTopic(     backoff = @Backoff(delay = 300000),     attempts = 12,     sameIntervalTopicReuseStrategy =          SameIntervalTopicReuseStrategy.SINGLE_TOPIC,     kafkaTemplate = "kafkaRetryableTopicTemplate",     exclude = { SerializationException.class,                  DeserializationException.class,                  NullPointerException.class                } ) @KafkaListener(topics = "my-topic") public void processMessage(RetryableDto retryableDto) {     log.info("Retrying process RetryableDto : {}", retryableDto);     // process message }

在上面的例子中,消息將每5分鐘重新處理一次,總共12次,即1小時。如果任何嘗試均順利完成,則試用將終止。qBu28資訊網(wǎng)——每日最新資訊28at.com

由于定義了 SINGLE_TOPIC,因此將創(chuàng)建單個主題以進行重試。如果沒有進行此定義,則會創(chuàng)建 12 個重試主題。qBu28資訊網(wǎng)——每日最新資訊28at.com

如果拋出了排除中定義的任何錯誤,則不會執(zhí)行重做。qBu28資訊網(wǎng)——每日最新資訊28at.com

如果需要,您可以編寫自己的 RetryableException 并在包含中定義此值,以便僅在引發(fā)此錯誤時才重試。qBu28資訊網(wǎng)——每日最新資訊28at.com

DLT隊列處理

如果完成了定義的嘗試次數(shù)并且繼續(xù)收到錯誤,則消息將發(fā)送到 DLT 隊列。如果要處理這些消息,可以使用DltHandler注解。qBu28資訊網(wǎng)——每日最新資訊28at.com

用法示例:qBu28資訊網(wǎng)——每日最新資訊28at.com

@DltHandler  public  void  handleDltMessage (RetryableDto retryableDto) {      log.error("DLT處理程序消息:{}", retryableDto); }

注意事項

雖然使用 RetryableTopic 的異步處理優(yōu)勢為我們帶來了性能提升,但這種使用也有一些缺點。qBu28資訊網(wǎng)——每日最新資訊28at.com

使用RetryableTopic可能會破壞消息的處理順序。qBu28資訊網(wǎng)——每日最新資訊28at.com

讓我們用一個例子來解釋這種情況:當(dāng)主主題在時間 t 處理時,一條消息出錯并被發(fā)送到重試主題。在時間 t + 1 時,另一條消息來到主主題并成功處理。讓我們在重試主題中的消息在時間 t + 2 時被成功處理。在這種情況下,第一條傳入消息將在第二條消息之后處理。如果訂購對您很重要,我建議您在消息處理過程中進行必要的檢查。qBu28資訊網(wǎng)——每日最新資訊28at.com

另一個缺點是消息雙重處理的風(fēng)險。您可以通過考慮這種可能性來進行改進。qBu28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-68327-0.htmlSpring實現(xiàn)Kafka重試Topic,真的太香了

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

上一篇: 如何使用Python、Apache Kafka和云平臺構(gòu)建健壯的實時數(shù)據(jù)管道

下一篇: 性能篇:解密Stream,提升集合遍歷效率的秘訣!

標(biāo)簽:
  • 熱門焦點
  • Find N3入網(wǎng):最高支持16+1TB

    OPPO將于近期登場的Find N3折疊屏目前已經(jīng)正式入網(wǎng),型號為PHN110。本次Find N3在外觀方面相比前兩代有很大的變化,不再是小號的橫向折疊屏,而是跟別的廠商一樣采用了較為常見的
  • 對標(biāo)蘋果的靈動島 華為帶來實況窗功能

    繼蘋果的靈動島之后,華為也在今天正式推出了“實況窗”功能。據(jù)今天鴻蒙OS 4.0的現(xiàn)場演示顯示,華為的實況窗可以更高效的展現(xiàn)出實時通知,比如鎖屏上就能看到外賣、打車、銀行
  • JavaScript學(xué)習(xí) -AES加密算法

    引言在當(dāng)今數(shù)字化時代,前端應(yīng)用程序扮演著重要角色,用戶的敏感數(shù)據(jù)經(jīng)常在前端進行加密和解密操作。然而,這樣的操作在網(wǎng)絡(luò)傳輸和存儲中可能會受到惡意攻擊的威脅。為了確保數(shù)據(jù)
  • JVM優(yōu)化:實戰(zhàn)OutOfMemoryError異常

    一、Java堆溢出堆內(nèi)存中主要存放對象、數(shù)組等,只要不斷地創(chuàng)建這些對象,并且保證 GC Roots 到對象之間有可達路徑來避免垃 圾收集回收機制清除這些對象,當(dāng)這些對象所占空間超過
  • 2天漲粉255萬,又一賽道在抖音爆火

    來源:運營研究社作者 | 張知白編輯 | 楊佩汶設(shè)計 | 晏談夢潔這個暑期,旅游賽道徹底火了:有的「地方」火了——貴州村超旅游收入 1 個月超過 12 億;有的「博主」火了&m
  • 網(wǎng)傳小米汽車開始篩選交付中心 建筑面積不低于3000平方米

    7月7日消息,近日有微博網(wǎng)友@長三角行健者爆料稱,據(jù)經(jīng)銷商集團反饋,小米汽車目前已經(jīng)開始了交付中心的篩選工作,要求候選場地至少有120個車位,建筑不能低
  • 質(zhì)感不錯!OPPO K11渲染圖曝光:旗艦IMX890傳感器首次下放

    一直以來,OPPO K系列機型都保持著較為均衡的產(chǎn)品體驗,歷來都是2K價位的明星機型,去年推出的OPPO K10和OPPO K10 Pro兩款機型憑借各自的出色配置,堪稱有
  • 英特爾Xe-HP項目終止,將專注Xe-HPC/HPG系列顯卡

    據(jù)10 月 31 日消息報道,英特爾高級副總裁兼加速計算系統(tǒng)和圖形事業(yè)部總經(jīng)理 表示,Xe-HP“ Arctic Sound” 系列服務(wù)器 GPU 已經(jīng)應(yīng)用于 oneAPI devcloud 云服
  • 三翼鳥智能家居亮相電博會,讓用戶體驗更真實

    2021電博會在青島國際會展中心開幕中,三翼鳥直接把“家”搬到了現(xiàn)場,成為了展會的一大看點。這也是三翼鳥繼9月9日發(fā)布了行業(yè)首個一站式定制智慧家平臺后的
Top 主站蜘蛛池模板: 镇安县| 九台市| 屏南县| 临漳县| 综艺| 武川县| 文登市| 河曲县| 尼木县| 游戏| 尼玛县| 屯门区| 玉田县| 河南省| 都江堰市| 横峰县| 马公市| 龙川县| 花垣县| 镇康县| 梁平县| 龙州县| 沂源县| 东辽县| 饶阳县| 镇巴县| 沂水县| 香河县| 桂平市| 浑源县| 奉节县| 黑龙江省| 武鸣县| 泽州县| 中牟县| 宜州市| 边坝县| 东城区| 那坡县| 沙坪坝区| 西青区|