SpringBoot項(xiàng)目整合RocketMQ啟動(dòng)失敗的常見(jiàn)錯(cuò)誤解決方案
一、日志框架配置問(wèn)題
RocketMQ日志框架未正確配置
報(bào)錯(cuò)內(nèi)容:
RocketMQLog:WARN No appenders could be found for logger (io.netty.util.internal.InternalThreadLocalMap).
RocketMQLog:WARN Please initialize the logger system properly.
原因:RocketMQ默認(rèn)使用自己的日志框架,未與SpringBoot的Slf4j集成。
解決方案:在啟動(dòng)類(lèi)中添加:
System.setProperty("rocketmq.client.logUseSlf4j", "true");
并在配置文件中添加:
logging:
level:
RocketmqClient: ERROR
io: netty: ERROR
二、版本兼容性問(wèn)題
1. SpringBoot版本過(guò)低
報(bào)錯(cuò)內(nèi)容:
Caused by: java.lang.ClassNotFoundException: org.apache.rocketmq.client
原因:SpringBoot 1.x版本與RocketMQ 2.0.4不兼容。
解決方案:將SpringBoot版本升級(jí)到2.1.0.RELEASE或更高版本。
2. RocketMQ與SpringBoot版本不匹配
報(bào)錯(cuò)內(nèi)容:
The following dependencies have a problem:
- rocketmq-spring-boot-starter: 2.0.4
- spring-boot-starter: 1.5.9.RELEASE
原因:RocketMQ客戶(hù)端與SpringBoot版本不兼容。
解決方案:檢查并確保使用的RocketMQ版本與SpringBoot版本兼容(參考官方文檔推薦組合)。
三、依賴(lài)沖突問(wèn)題
依賴(lài)沖突導(dǎo)致啟動(dòng)失敗
報(bào)錯(cuò)內(nèi)容:
Caused by: java.lang.NoClassDefFoundError: org/apache/rocketmq/client/producer/DefaultMQProducer
原因:依賴(lài)庫(kù)之間存在版本沖突。
解決方案:
- 使用
mvn dependency:tree檢查依賴(lài)樹(shù) - 在pom.xml中明確指定版本:
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-spring-boot-starter</artifactId>
<version>2.0.4</version>
<!-- 排除沖突的依賴(lài) -->
<exclusions>
<exclusion>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</exclusion>
</exclusions>
</dependency>
四、自動(dòng)裝配配置缺失
RocketMQTemplate無(wú)法自動(dòng)注入
報(bào)錯(cuò)內(nèi)容:
Field rocketMQTemplate in com.sks.crm.service.RocketMQProducerService required a bean of type 'org.apache.rocketmq.spring.core.RocketMQTemplate' that could not be found.
原因:SpringBoot 3.0+已放棄spring.plants自動(dòng)裝配機(jī)制。
解決方案:在resources下創(chuàng)建META-INF文件夾,然后在META-INF下創(chuàng)建org.springframework.boot.autoconfigure.AutoConfiguration.imports文件,并添加:
org.apache.rocketmq.spring.autoconfigure.RocketMQAutoConfiguration
五、RocketMQ服務(wù)配置問(wèn)題
1. NameServer地址配置錯(cuò)誤
報(bào)錯(cuò)內(nèi)容:
org.apache.rocketmq.client.exception.MQClientException:
No route info of topic: test-topic,
please make sure you have created the topic first.
原因:RocketMQ配置的NameServer地址不正確。
解決方案:檢查配置文件中rocketmq.name-server是否正確,確保NameServer已啟動(dòng)且可訪(fǎng)問(wèn)。
2. 磁盤(pán)空間不足
報(bào)錯(cuò)內(nèi)容:
org.apache.rocketmq.client.exception.MQBrokerException: CODE: 14 DESC: service not available now.
It may be caused by one of the following reasons: the broker's disk is full [CL:0.92 CQ:0.92 INDEX:0.92],
messages are put to the slave, message store has been shut down, etc. BROKER:169.254.87.77:10911
原因:RocketMQ Broker所在服務(wù)器磁盤(pán)空間不足。
解決方案:
- 清理磁盤(pán)空間
- 修改runbroker.cmd文件,增加:
set "JAVA_OPT=%JAVA_OPT% -server -Xms512m -Xmx512m -Xmn128m -Drocketmq.broker.diskSpaceWarningLevelRatio=0.99"
六、消費(fèi)者組配置問(wèn)題
消費(fèi)者組已存在
報(bào)錯(cuò)內(nèi)容:
Caused by: org.apache.rocketmq.client.exception.MQClientException: The consumer group[my-consumer] has been created before, specify another name please
原因:同一個(gè)消費(fèi)者組名已在RocketMQ中創(chuàng)建,重復(fù)使用。
解決方案:確保每個(gè)消費(fèi)者組名是唯一的,不要重復(fù)使用。
七、配置文件格式問(wèn)題
配置文件格式錯(cuò)誤
報(bào)錯(cuò)內(nèi)容:
Caused by: org.springframework.beans.factory.BeanCreationException:
Error creating bean with name 'rocketMQTemplate' defined in class path resource [org/apache/rocketmq/spring/autoconfigure/RocketMQAutoConfiguration.class]:
Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException:
Failed to instantiate [org.apache.rocketmq.spring.core.RocketMQTemplate]:
Constructor threw exception; nested exception is java.lang.IllegalArgumentException:
rocketmq.name-server is required.
原因:配置文件中缺少必要的RocketMQ配置項(xiàng)。
解決方案:確保配置文件包含必要的RocketMQ配置:
rocketmq:
name-server: 127.0.0.1:9876
producer:
group: my-group
consumer:
group: my-consumer
八、ACL認(rèn)證配置問(wèn)題
ACL認(rèn)證配置缺失
報(bào)錯(cuò)內(nèi)容:
org.apache.rocketmq.client.exception.MQClientException:
Access denied, the topic 'test-topic' is not allowed to be accessed by the client
原因:RocketMQ開(kāi)啟ACL認(rèn)證,但客戶(hù)端未配置AccessKey和SecretKey。
解決方案:
在配置文件中添加:
rocketmq:
producer:
access-key: AK
secret-key: SK
或在消費(fèi)者注解中指定:
@RocketMQMessageListener(
topic = "test-topic",
consumerGroup = "my-consumer",
accessKey = "AK",
secretKey = "SK"
)
到此這篇關(guān)于SpringBoot項(xiàng)目整合RocketMQ啟動(dòng)失敗的常見(jiàn)錯(cuò)誤解決方案的文章就介紹到這了,更多相關(guān)SpringBoot整合RocketMQ啟動(dòng)失敗內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java?Stream?API與函數(shù)式編程的實(shí)戰(zhàn)詳解
Java?8引入的Stream?API和函數(shù)式編程特性,徹底改變了Java開(kāi)發(fā)者編寫(xiě)代碼的方式,本文將深入探討Java?Stream?API與函數(shù)式編程的核心概念,最佳實(shí)踐以及性能優(yōu)化技巧,感興趣的小伙伴可以了解下2025-06-06
SpringBoot的@Value注解如何設(shè)置默認(rèn)值
這篇文章主要介紹了SpringBoot的@Value注解如何設(shè)置默認(rèn)值問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02
Springboot2以代碼的方式統(tǒng)一配置Jackson教程
這篇文章主要介紹了Springboot2以代碼的方式統(tǒng)一配置Jackson教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11
java設(shè)計(jì)模式-單例模式實(shí)現(xiàn)方法詳解
單例模式,屬于創(chuàng)建類(lèi)型的一種常用的軟件設(shè)計(jì)模式。通過(guò)單例模式的方法創(chuàng)建的類(lèi)在當(dāng)前進(jìn)程中只有一個(gè)實(shí)例(根據(jù)需要,也有可能一個(gè)線(xiàn)程中屬于單例2021-07-07
elasticsearch聚合查詢(xún)實(shí)踐示例
這篇文章主要為大家介紹了elasticsearch聚合查詢(xún)實(shí)踐示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12
使用Shell腳本實(shí)現(xiàn)SpringBoot項(xiàng)目自動(dòng)化部署到Docker的操作指南
在日常項(xiàng)目開(kāi)發(fā)中,我們經(jīng)常會(huì)將SpringBoot項(xiàng)目打包并部署到服務(wù)器上的Docker環(huán)境中,為了提升效率、減少重復(fù)操作,我們可以通過(guò)Shell腳本實(shí)現(xiàn)自動(dòng)化部署,所以本文給大家介紹了使用Shell腳本實(shí)現(xiàn)SpringBoot項(xiàng)目自動(dòng)化部署到Docker的操作指南,需要的朋友可以參考下2025-05-05
Spring mvc整合tiles框架的簡(jiǎn)單入門(mén)教程(maven)
這篇文章主要給大家介紹了關(guān)于Spring mvc整合tiles框架的簡(jiǎn)單入門(mén)教程(maven),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考借鑒,下面來(lái)一起看看詳細(xì)的介紹吧。2017-12-12
基于Java實(shí)現(xiàn)修改圖片分辨率示例代碼
這篇文章主要介紹了一個(gè)可以修改圖片分辨率的java工具類(lèi),文中的示例代碼講解詳細(xì),對(duì)學(xué)習(xí)JAVA有一定的幫助,感興趣的小伙伴快來(lái)跟隨小編一起學(xué)習(xí)吧2021-12-12
本地啟動(dòng)RocketMQ未映射主機(jī)名產(chǎn)生的超時(shí)問(wèn)題最新解決方案
這篇文章主要介紹了本地啟動(dòng)RocketMQ未映射主機(jī)名產(chǎn)生的超時(shí)問(wèn)題,本文給大家分享最新解決方案,感興趣的朋友跟隨小編一起看看吧2024-02-02

