6.24_JAVA_微服務day07_RabbitMQ高級

1、

    @RabbitListener(queuesToDeclare/*此處是固定寫法,只能寫這個玩意兒,因為這里是庫里的方法*/ = @Queue(name = "lazy.queue",//如果不存在就創建lazy.queue隊列durable = "true",//把耐用打開arguments = @Argument(name = "x-queue-mode", value = "lazy")//把lazy模式打開,至于為什么是"x-queue-mode",這個"x-queue-mode"純粹是Spring底層就這么寫的,你想調用這個方法(注解)只能這樣調用。學代碼最重要的就是會用,別去管為什么,會用就行。別造輪子,別把這些API當成算法的學,入門最重要。入了門有的是把這些API當成算法來學的機會。))public void listenLazyQueue(String msg){log.info("接收到 lazy.queue的消息:{}", msg);}

2、消費者確認機制(Consumer Acknowledgement):如何確保沒得到確認的消息不被RMQ刪除呢?

????????S1 、改成auto

spring:rabbitmq:listener:simple:acknowledge-mode: auto # 自動ack

????????S2、throw new RuntimeException,而不扔MessageConversionException

    @RabbitListener(queues = "simple.queue")public void listenSimpleQueueMessage(String msg) throws InterruptedException {log.info("spring 消費者接收到消息:【" + msg + "】");if (true) {throw new RuntimeException("故意的");}log.info("消息處理完成");}

3、失敗重試機制:防止消費者接收不到之后,無限投遞

? ? ? ? S1修改consumer的yaml

spring:rabbitmq:listener:simple:retry:enabled: true # 開啟消費者失敗重試initial-interval: 1000ms # 初識的失敗等待時長為1秒multiplier: 1 # 失敗的等待時長倍數,下次等待時長 = multiplier * last-intervalmax-attempts: 3 # 最大重試次數stateless: true # true無狀態;false有狀態。如果業務中包含事務,這里改為false

4、導入這些Queue、Exchange這種東西的包,會讓你選很多包。選amqp(spring-boot-starter-amqp)那個包。且帶核心的那個包。因為這玩意兒的依賴是這個:

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId>
</dependency>

?所以選這個:

5、RoutingKey是個啥?是消息從交換機路由到隊列的關鍵規則。注意:error是自己定義的名字,你完全可以叫它其他名,比如my.error等

6、 唯一消息ID是啥?用于判斷是否只執行一次,防止重復。

? ? ???唯一ID用在哪?比如訂單之類的。

7、

訂單、付款這種處理錢的時候,盡量放到同一個方法里。?防止極小概率的線程安全問題。

8、延遲消息:應用如:15分鐘內付款。在代碼層面就是:要給你取消訂單,但是你不15分鐘之內才給你取消。?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/86430.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/86430.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/86430.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Python打卡:Day38

知識點回顧&#xff1a; Dataset類的__getitem__和__len__方法&#xff08;本質是python的特殊方法&#xff09;Dataloader類minist手寫數據集的了解 浙大疏錦行

質量管理五大核心工具之SPC

SPC&#xff08;Statistical Process Control&#xff0c;統計過程控制&#xff09;是一種基于統計學的質量控制方法&#xff0c;旨在通過監控和分析生產過程數據&#xff0c;識別異常波動并消除異常因素&#xff0c;從而確保過程穩定受控&#xff0c;提升產品質量一致性145。以…

【世紀龍科技】新能源汽車VR虛擬體驗展示館-解鎖認知新維度

解鎖新能源汽車深度認知新維度&#xff1a;沉浸式 VR 虛擬體驗展示館 在科技不斷突破邊界的當下&#xff0c;人們對新能源汽車的探索渴望愈發強烈。無論是希望深入了解行業發展脈絡的求知者&#xff0c;還是想要直觀掌握汽車技術原理的學習者&#xff0c;傳統的展示方式似乎總…

oracle基礎審計管理

Oracle數據庫審計功能詳解(簡單易懂!) 更新時間&#xff1a;2024年01月30日 16:21:27 作者&#xff1a;前程的前程也迷茫 Oracle審計查詢是一項重要的任務,可以幫助DBA更好的管理Oracle數據庫,下面這篇文章主要給大家介紹了關于Oracle數據庫審計功能的相關資料,文中通過代碼介紹…

Day44 預訓練模型

目錄 一、預訓練的概念 二、常見的分類預訓練模型 2.1 CNN架構預訓練模型 2.2 Transformer類預訓練模型 2.3 自監督預訓練模型 三、圖像預訓練模型的發展史 四、預訓練的策略 五、預訓練代碼實戰&#xff1a;resnet18 六、嘗試在cifar10對比alexnet 七、嘗試通過ctrl進…

尋找兩個正序數組的中位數:二分查找的終極算法

引言&#xff1a;中位數的「C位之爭」 如果把數組比作排隊買奶茶的隊伍&#xff0c;中位數就是那個站在正中間的幸運兒——不需要知道所有人的位置&#xff0c;只需要找到那個「剛剛好」的中間位置。這個問題看似簡單&#xff0c;卻藏著算法世界的「效率密碼」&#xff0c;尤其…

使用tensorflow的線性回歸的例子(一)

擬合y2x1 import matplotlib.pyplot as plt import numpy as np import tensorflow as tf print(tf.__version__) %matplotlib inline #載入隨機種子 np.random.seed(5) #生成100個等差序列&#xff0c;每個值在-1 - 1 之間 x_data np.linspace(-1,1,100) #y 2x …

OpenLayers 渲染之矢量影像圖層

前言 :::block-1 對于像GeoJSON、KML等地理數據格式的文件&#xff0c;最常用的方法都是通過VectorLayer進行渲染。除此之外&#xff0c;還可以使用VectorImage&#xff08;矢量影像圖層&#xff09;進行渲染。本文主要介紹在客戶端拖動上傳GeoJSON、KML等文件&#xff0c;并采…

Feign 實戰指南:從 REST 替代到性能優化與最佳實踐

Feign 實戰指南&#xff1a;從 REST 替代到性能優化與最佳實踐 一 . Feign 替代 RestTemplate1.1 RestTemplate 方式調用存在的問題1.2 Feign 的介紹1.3 定義和使用 Feign 客戶端1.3.1 引入依賴1.3.2 添加注解1.3.3 編寫 Feign 的客戶端進行接口聲明1.3.4 測試小結 1.4 通過 PO…

什么是國際期貨?期貨交易平臺搭建

國際期貨&#xff08;International Futures&#xff09;&#xff0c;又稱外盤期貨或全球期貨&#xff0c;是指在中國大陸以外的交易所進行標準化合約交易的金融衍生品市場。其核心特征、功能及與國內期貨的區別如下&#xff1a; &#x1f4cd; 一、定義與核心特征 全球化交易…

考取華為HCIE-AI有什么用?

在人工智能技術重塑各行各業的浪潮中&#xff0c;掌握核心AI能力成為專業人士的制勝關鍵。華為推出的HCIE-AI Solution Architect&#xff08;華為認證ICT專家-AI解決方案架構師&#xff09;&#xff0c;正是面向這一領域頂尖人才設立的最高級別認證。主要是為了培養和認證掌握…

Maven 使用說明和配置

作者&#xff1a;小凱 沉淀、分享、成長&#xff0c;讓自己和他人都能有所收獲&#xff01;&#x1f604; 一、前言 Apache Maven (opens new window)是一個軟件項目管理、構建和依賴工具。基于項目對象模型 (POM) 的概念&#xff0c;Maven 可以通過中央信息來管理項目的構建、…

【Docker管理工具】安裝Docker容器自動更新工具Watchtower

【Docker管理工具】安裝Docker容器自動更新工具Watchtower 一、Watchtower介紹1.1 Watchtower簡介1.2 Watchtower使用注意1.3 Watchtower使用場景1.4 Docker容器介紹 二、本次實踐介紹2.1 本地環境規劃2.2 本次實踐介紹 三、本地環境檢查3.1 檢查Docker服務狀態3.2 檢查Docker版…

AI優化SEO關鍵詞精進

內容概要 隨著人工智能技術的飛速發展&#xff0c;其在搜索引擎優化&#xff08;SEO&#xff09;領域的應用正引發深刻變革。本文將系統探討AI如何革新傳統的關鍵詞優化策略&#xff0c;通過更智能的分析與匹配方法&#xff0c;顯著提升內容在搜索結果中的可見度與排名。核心議…

canvas面試題200道

下面是一份 200 條關于 HTML5 Canvas 的面試題合集,適用于前端開發崗位的中高級工程師面試準備。內容涵蓋基礎概念、繪圖操作、性能優化、動畫實現、安全機制等多個方面,并附有參考答案或解析建議。 ?? 一、Canvas 基礎知識(1-40) 1. 什么是 HTML5 Canvas? <canvas&…

Java 大視界 -- Java 大數據在智能安防視頻監控系統中的目標軌跡預測與防范策略制定(325)

Java 大視界 -- Java 大數據在智能安防視頻監控系統中的目標軌跡預測與防范策略制定&#xff08;325&#xff09; 引言&#xff1a;正文&#xff1a;一、Java 驅動的安防視頻數據采集與預處理架構1.1 多路異構視頻流合規接入層&#xff08;GB/T 28181-2021 全協議適配&#xff…

【Python】實現對LGBT+ rights worldwide (2025)數據集的可視化展示

我用夸克網盤分享了「lgbtq_rights_by_country數據集」&#xff0c;點擊鏈接即可保存。 鏈接&#xff1a;https://pan.quark.cn/s/aa0fa91491e8 摘要&#xff1a; 本文運用Python編程實現對LGBTQ權利相關數據的處理與可視化展示。通過直方圖與地圖兩種可視化方式&#xff0c;分…

車載通信架構 --- ECU刷寫與busoff原則

我是穿拖鞋的漢子,魔都中堅持長期主義的汽車電子工程師。 老規矩,分享一段喜歡的文字,避免自己成為高知識低文化的工程師: 做到欲望極簡,了解自己的真實欲望,不受外在潮流的影響,不盲從,不跟風。把自己的精力全部用在自己。一是去掉多余,凡事找規律,基礎是誠信;二是…

【windows處理技巧】如何縮小PDF

原因&#xff1a;近日輸出的PDF太大&#xff0c;渲染需要較多的時間&#xff0c;所以需要縮小一下PDF。 操作工具&#xff1a;adobe acrobat pro 方法&#xff1a;導入--另存為--縮減 初始&#xff1a; 壓縮后

OpenCV圖像添加水印

一、前言 在數字圖像處理中&#xff0c;為圖片添加水印是一項常見且重要的技術。無論是版權保護、品牌宣傳還是防止未經授權的使用&#xff0c;水印都能發揮重要作用。OpenCV作為一款強大的計算機視覺庫&#xff0c;提供了豐富的功能來實現各種水印效果。本教程將詳細介紹如何…