spring-boot 3.X版本整合RocketMq的詳細(xì)過(guò)程
版本信息
先把該次整合的版本信息列如下:
spring-boot | spring-cloud | rocketmq-spring-boot-starter | rocketmq-client | rocketmq |
---|---|---|---|---|
3.0.13 | 2022.0.5 | 2.2.3 | 4.9.8 | 4.9.8 |
版本信息是如何選擇的呢?看rocketMq官網(wǎng)springcloud alibaba版本聲明
rocketMq我用的是最新的4.X版本4.9.8
本地啟動(dòng)rocketMq服務(wù)端
這塊你們找文章看。我是從github上fork后下載到本地。使用idea啟動(dòng)nameSrv和broker
構(gòu)建測(cè)試工程
先創(chuàng)建父工程,用于pom的依賴?yán)^承
配置屬性
<maven.compiler.source>17</maven.compiler.source> <maven.compiler.target>17</maven.compiler.target> <revision>0.0.1</revision> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <maven.test.skip>false</maven.test.skip> <maven.javadoc.skip>true</maven.javadoc.skip> <sonar.java.coveragePlugin>jacoco</sonar.java.coveragePlugin> <spring-boot-dependencies.version>3.0.13</spring-boot-dependencies.version> <spring.cloud-version>2022.0.5</spring.cloud-version> <com.alibaba.cloud.version>2022.0.0.0</com.alibaba.cloud.version> <knife4j.version>2.0.5</knife4j.version>
注意使用spring-boot 3.x版本后,jdk必須要17以上。所以本地需要安裝jdk17
增加父工程依賴
<dependencyManagement> <dependencies> <dependency> <!-- Import dependency management from Spring Boot --> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>${spring-boot-dependencies.version}</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>${spring.cloud-version}</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-alibaba-dependencies</artifactId> <version>${com.alibaba.cloud.version}</version> <type>pom</type> <scope>import</scope> </dependency>
創(chuàng)建子工程
使用spring-boot的初始化initializr創(chuàng)建工程并下載放到父工程子目錄下
修改pom文件
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>com.hjq</groupId> <artifactId>sunshine-all</artifactId> <version>${revision}</version> <relativePath>../pom.xml</relativePath> </parent> <!-- <parent>--> <!-- <groupId>org.springframework.boot</groupId>--> <!-- <artifactId>spring-boot-starter-parent</artifactId>--> <!-- <version>3.2.11</version>--> <!-- <relativePath/> <!– lookup parent from repository –>--> <!-- </parent>--> <groupId>com.hjq.sunshine</groupId> <artifactId>demo</artifactId> <name>demo</name> <description>Demo project for Spring Boot</description> <url/> <licenses> <license/> </licenses> <developers> <developer/> </developers> <scm> <connection/> <developerConnection/> <tag/> <url/> </scm> <properties> <java.version>17</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.apache.rocketmq</groupId> <artifactId>rocketmq-spring-boot-starter</artifactId> <exclusions> <exclusion> <groupId>org.apache.rocketmq</groupId> <artifactId>rocketmq-client</artifactId> </exclusion> </exclusions> <version>2.2.3</version> </dependency> <dependency> <groupId>org.apache.rocketmq</groupId> <artifactId>rocketmq-client</artifactId> <version>4.9.8</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
增加生產(chǎn)者消費(fèi)者啟動(dòng)配置
新增application.yml文件
rocketmq: producer: group: myProducerGroup name-server: 127.0.0.1:9876
新增生產(chǎn)者
@Component @Log public class FirstProduce implements CommandLineRunner { @Autowired private RocketMQTemplate rocketMQTemplate; @Override public void run(String... args) throws Exception { log.info("1111"); SendResult result = rocketMQTemplate.syncSend("TestTopic", "1111"); log.info(JSONObject.toJSONString(result)); log.info("2222"); } }
新增消費(fèi)者
package com.hjq.sunshine.demo.rocketmq; import lombok.extern.java.Log; import org.apache.rocketmq.spring.annotation.ConsumeMode; import org.apache.rocketmq.spring.annotation.MessageModel; import org.apache.rocketmq.spring.annotation.RocketMQMessageListener; import org.apache.rocketmq.spring.core.RocketMQListener; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.messaging.Message; import org.springframework.stereotype.Service; import java.util.function.Consumer; /** * @Description * @Author hjq * @Date 2024/11/21 */ @Service @Log @RocketMQMessageListener(consumerGroup = "MyConsumer", topic = "TestTopic", consumeMode = ConsumeMode.CONCURRENTLY, messageModel = MessageModel.BROADCASTING) public class FirstConsumer implements RocketMQListener<String> { @Override public void onMessage(String message) { log.info("rece msg: " + message); } }
注意事項(xiàng)。使用spring-boot 3.x版本,rocketmq-spring-boot-starter的自動(dòng)配置會(huì)有bug,提示rocketMQTemplate沒(méi)有bean注入。解決方案參考未注入bean
啟動(dòng)后測(cè)試
啟動(dòng)就可以看到如下,正常的生產(chǎn)和消費(fèi)。
到此這篇關(guān)于spring-boot 3.X版本整合RocketMq的詳細(xì)過(guò)程的文章就介紹到這了,更多相關(guān)spring-boot 3.X整合RocketMq內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用Java自帶的mail?API實(shí)現(xiàn)郵件發(fā)送功能全過(guò)程
電子郵件的應(yīng)用非常廣泛,例如在某網(wǎng)站注冊(cè)了一個(gè)賬戶,自動(dòng)發(fā)送一封歡迎郵件,通過(guò)郵件找回密碼,自動(dòng)批量發(fā)送活動(dòng)信息等,下面這篇文章主要給大家介紹了關(guān)于如何使用Java自帶的mail?API實(shí)現(xiàn)郵件發(fā)送功能的相關(guān)資料,需要的朋友可以參考下2023-04-04Java8?Optional常用方法使用場(chǎng)景分析
這篇文章主要介紹了Java8?Optional常用方法使用場(chǎng)景,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-06-06Spring AspectJ 實(shí)現(xiàn)AOP的方法你了解嗎
這篇文章主要為大家介紹了Spring AspectJ 實(shí)現(xiàn)AOP的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助2022-01-01springboot+WebMagic+MyBatis爬蟲(chóng)框架的使用
本文是對(duì)spring boot+WebMagic+MyBatis做了整合,使用WebMagic爬取數(shù)據(jù),然后通過(guò)MyBatis持久化爬取的數(shù)據(jù)到mysql數(shù)據(jù)庫(kù)。具有一定的參考價(jià)值,感興趣的可以了解一下2021-08-08TCP/IP協(xié)議中三次握手四次揮手的原理及流程分析
這篇文章主要介紹了TCP/IP協(xié)議中三次握手四次揮手的原理及流程分析,具有一定參考價(jià)值,需要的朋友可以了解下。2017-11-11IDEA遠(yuǎn)程部署調(diào)試Java應(yīng)用程序的詳細(xì)流程
這篇文章主要介紹了IDEA遠(yuǎn)程部署調(diào)試Java應(yīng)用程序,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),需要的朋友可以參考下2021-10-10