RocketMq集成SpringBoot(待完善)

環境

jdk1.8, springboot2.7.3

Maven依賴

        <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.3</version><relativePath/> <!-- lookup parent from repository --></parent>        <dependency><groupId>org.apache.rocketmq</groupId><artifactId>rocketmq-spring-boot-starter</artifactId><version>2.2.2</version><exclusions><exclusion><groupId>org.apache.rocketmq</groupId><artifactId>rocketmq-client</artifactId></exclusion></exclusions></dependency><dependency><groupId>org.apache.rocketmq</groupId><artifactId>rocketmq-client</artifactId><version>4.9.5</version></dependency>

配置文件

rocketmq.name-server=192.168.6.128:9876
#生產通用群組, 也可單獨指定
rocketmq.producer.group=springBootGroup
#消費通用群組, 也可單獨指定
rocketmq.consumer.group=testGroup
server.port=9000

代碼

生產者發送消息

@RestController
@RequestMapping("/producer")
public class ProducerController {@Autowiredprivate ProducerService producerService;// 發送同步消息@PostMapping("/sendSync")public Object sendSync(@RequestBody MessageReq req) {return producerService.sendSyncMessage(req.getTopic(), req.getTag(), req.getMessage());}// 發送異步消息@PostMapping("/sendAsync")public Object sendAsyncMessage(@RequestBody MessageReq req) {producerService.sendAsyncMessage(req.getTopic(), req.getTag(), req.getMessage());return "200";}
}
@Service
public class ProducerService {@Autowiredprivate RocketMQTemplate rocketMQTemplate;/*** 發送同步消息.* @return 發送結果*/public SendResult sendSyncMessage(String topic, String tag, String message) {// param1: topic和tag冒號分隔return rocketMQTemplate.syncSend(topic + ":" + tag, message);}/*** 發送異步消息.*/public void sendAsyncMessage(String topic, String tag, String message) {rocketMQTemplate.convertAndSend(topic + ":" + tag, message);}
}

消費者

@Component
@RocketMQMessageListener(consumerGroup = "SimpleStringConsumerGroup",  // consumerGroup:消費者組名topic = "MQ_sp_test1",                         // topic:訂閱的主題selectorExpression = "Tag-kk||Tag-kk2",         // selectorExpression, 1. 根據Tag過濾, 多個用||分割, 也可設置*; 2. 根據SQL92語法過濾
//        selectorExpression = "*",
//        selectorType = SelectorType.SQL92,             // 設置SQL92語法過濾, 不設置默認TAGmessageModel = MessageModel.CLUSTERING,  // messageModel: 控制消息模式。MessageModel.CLUSTERING:負載均衡;MessageModel.BROADCASTING:廣播模式consumeMode= ConsumeMode.CONCURRENTLY    // CONCURRENTLY: 無序消費; ORDERLY: 有序消費
)
public class SimpleConsumer implements RocketMQListener<String> {@Overridepublic void onMessage(String message) {System.out.println("Received message : "+ message);}
}

測試

同步消息

異步消息?

TAG過濾消息

1. 消費者指定了TAG, 不滿足的不會消費, 狀態是CONSUMED_BUT_FILTERED

消費端接收消息?

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

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

相關文章

vue3 筆記 - 聲明式 一

官網&#xff1a;Vue.js - 漸進式 JavaScript 框架 | Vue.js vue3編寫有聲明式和響應式。該文章僅記錄聲明式。vue3聲明式與vue2相同。 一、生命周期 創建之前 beforeCreate()已創建 created()掛載之前 beforeMount()已掛載 mounted()銷毀之前 beforeUnmount()已銷毀 unmoun…

java面試-Dubbo和zookeeper運行原理

遠離八股文&#xff0c;面試大白話&#xff0c;通俗且易懂 看完后試著用自己的話復述出來。有問題請指出&#xff0c;有需要幫助理解的或者遇到的真實面試題不知道怎么總結的也請評論中寫出來&#xff0c;大家一起解決。 java面試題匯總-目錄-持續更新中 分布式注冊中心和服務調…

Unity中后處理簡介

文章目錄 前言一、后處理的原理二、我們看一下Unity文檔中&#xff0c;內置的后處理前后的效果后處理前&#xff1a;后處理后&#xff1a; 前言 我們在這篇文章中&#xff0c;了解一下Unity中的后處理效果 后期處理概述 一、后處理的原理 在后處理的過程中&#xff0c;我們主…

Java當中常用的算法

文章目錄 算法二叉樹左右變換數據二分法實現 冒泡排序算法插入排序算法快速排序算法希爾排序算法歸并排序算法桶排序算法基數排序算法分治算法漢諾塔問題動態規劃算法引子代碼實現背包問題 KMP算法什么是KMP算法暴力匹配KMP算法實現 今天我們來看看常用的算法&#xff0c;開干。…

《微信小程序開發從入門到實戰》學習四十五

4.4 云函數 云函數是開發者提前定義好的、保存在云端并且將在云端運行的JS函數。 開發者先定義好云函數&#xff0c;再使用微信開發工具將云函數上傳到云空間&#xff0c;在云開發控制臺中可看到已經上傳的云函數。 云函數運行在云端Node.js環境中。 小程序端通過wx.cloud.…

IP地址定位技術為網絡安全建設提供全新方案

隨著互聯網的普及和數字化進程的加速&#xff0c;網絡安全問題日益引人關注。網絡攻擊、數據泄露、欺詐行為等安全威脅層出不窮&#xff0c;對個人隱私、企業機密和社會穩定構成嚴重威脅。在這樣的背景下&#xff0c;IP地址定位技術應運而生&#xff0c;為網絡安全建設提供了一…

Python Selenium 自動登入1688

Python Selenium是一個用于自動化Web瀏覽器操作的庫。它提供了一組功能強大的工具和API&#xff0c;可以模擬用戶在瀏覽器中的行為&#xff0c;并執行各種任務&#xff0c;如點擊、輸入文本、提交表單等。 要使用Python Selenium登錄1688網站&#xff0c;需要進行以下步驟&…

iOS微信小程序虛擬支付解決方案

眾所周知&#xff0c;在IOS微信小程序不支持虛擬支付&#xff0c;一直是困擾IOS開發者、運營最頭疼的問題&#xff0c;主要原因是蘋果不允許IOS微信上架這類產品。導致微信小程序的開發者在IOS上都不能支付虛擬商品&#xff0c;虛擬商品包含了虛擬課程、會員、虛擬書等。 那么…

短視頻ai剪輯分發矩陣系統源碼3年技術團隊開發搭建打磨

如果您需要搭建這樣的系統&#xff0c;建議您尋求專業的技術支持&#xff0c;以確保系統的穩定性和安全性。 在搭建短視頻AI剪輯分發矩陣系統時&#xff0c;您需要考慮以下幾個方面&#xff1a; 1. 技術實現&#xff1a;您需要選擇適合您的需求和預算的技術棧&#xff0c;例如使…

肖sir__ 項目講解__項目數據

項目時間&#xff1a; 情況一&#xff1a;項目時間開始到上線的時間&#xff0c;這個時間一般比較長&#xff08;一年&#xff0c;二年&#xff0c;三年&#xff09; 情況二&#xff1a;項目的版本的時間或則是周期&#xff08;1個月&#xff0c;2個月&#xff0c;3個月&…

機器人、智能小車常用的TT電機/310電機/370電機選型對比

在制作智能小車或小型玩具時&#xff0c;在電機選型上一些到各種模糊混淆的概念&#xff0c;以及各種錯綜復雜的電機參數&#xff0c;本文綜合對比幾種常用電機的參數及特性適應范圍&#xff0c;以便快速選型&#xff0c;注意不同生產廠家的電機參數規則會有較大差異。 普通TT…

論文閱讀:PointCLIP: Point Cloud Understanding by CLIP

CVPR2022 鏈接&#xff1a;https://arxiv.org/pdf/2112.02413.pdf 0、Abstract 最近&#xff0c;通過對比視覺語言預訓練(CLIP)的零鏡頭學習和少鏡頭學習在2D視覺識別方面表現出了鼓舞人心的表現&#xff0c;即學習在開放詞匯設置下將圖像與相應的文本匹配。然而&#xff0c;…

【ET8】2.ET8入門-ET框架解析

菜單欄相關&#xff1a;ENABLE_DLL選項 ET->ChangeDefine->ADD_ENABLE_DLL/REMOVE_ENABLE_DLL 一般在開發階段使用Editor時需要關閉ENABLE_DLL選項。該選項關閉時&#xff0c;修改腳本之后&#xff0c;會直接重新編譯所有的代碼&#xff0c;Editor在運行時會直接使用最…

免費網頁抓取工具大全【附下載和工具使用教程】

在當今信息爆炸的時代&#xff0c;獲取準確而豐富的數據對于企業決策和個人研究至關重要。而網頁抓取工具作為一種高效獲取互聯網數據的方式&#xff0c;正逐漸成為大家解決數據需求的得力助手。本文將深入探討網頁抓取工具的種類&#xff0c;并為大家提供簡單實用的頁面采集教…

(企業項目)SpringBoot3整合校驗框架validation

在Spring Boot項目中使用校驗框架validation可以讓我們更方便地實現數據校驗和錯誤提示。下面是Spring Boot集成校驗框架validation的步驟。 添加依賴 在項目的pom.xml文件中添加validation依賴&#xff1a; <dependency><groupId>org.springframework.boot</…

C# 實現Lru緩存

C# 實現Lru緩存 LRU 算法全稱是最近最少使用算法&#xff08;Least Recently Use&#xff09;&#xff0c;是一種簡單的緩存策略。 通常用在對象池等需要頻繁獲取但是又需要釋放不用的地方。 代碼實現的基本原理就是使用鏈表&#xff0c;當某個元素被訪問時&#xff08;Get或…

windows安裝protoc、protoc-gen-go、protoc-gen-go-grpc

文章目錄 一、 protoc二、protoc-gen-go三、protoc-gen-go-grpc 一、 protoc 1&#xff0c;下載&#xff1a;https://github.com/google/protobuf/releases 下載對應的protoc&#xff0c;注意選擇windows 2&#xff0c;下好之后解壓就行&#xff0c;然后把bin目錄加入到環境…

【異常】淺析異常體系及為什么一定會執行finally塊代碼

異常體系&#xff1a; &#xff08;1&#xff09;所有異常&#xff08;Exception&#xff09;、錯誤&#xff08;Error&#xff09;都繼承自異常中的基類&#xff1a;Throwable。而異常又可以分為檢查異常&#xff08;Checked Exception&#xff09;、非檢查異常&#xff08;Un…

msvcp100.dll丟失的常見原因/msvcp100.dll丟失的解決方法分享

在計算機使用過程中&#xff0c;我們經常會遇到一些錯誤提示&#xff0c;其中之一就是“msvcp100.dll丟失”。這個錯誤提示通常出現在運行某些程序或游戲時&#xff0c;給使用者帶來了很大的困擾。那么&#xff0c;究竟是什么原因導致了msvcp100.dll文件的丟失呢&#xff1f;本…

ubuntu22.04在opencv4的基礎上安裝opencv3

安裝opencv4 首先在ubuntu22.04上安裝opencv4&#xff0c;可以參考之前的博客ubuntu22.04安裝opencv4和opencv_contrib-CSDN博客 安裝opencv3 由于有使用opencv3的需求&#xff0c;所以需要繼續安裝opencv3 ; 安裝編譯 這里安裝的版本是opencv3.4.5&#xff0c;大致安裝思…