rocketMQ No route info of this topic 錯誤


最近在使用rocketmq 發送消息,出現了No route info of this topic 異常,但奇怪的是我的其它的服務都可以成功發送,唯有crs服務不能成功發送,在網上搜索的解決方式基本上都是:

ocketmq運行時提示 No route info of this topic 異常產生的原因可能是

①Broker禁止自動創建Topic,且用戶沒有通過手工方式創建Topic

②Broker沒有正確連接到Name Server
③Producer沒有正確連接到Name Server 

這三種,我的貌似哪一種都不是因為我的其它服務可以成功發送,於是手動調試代碼,發現了一個隱藏的錯誤,我的服務卻沒有打印出來:

send request to <ip:9876> failed

java.lang.NoSuchMethodError: io.netty.channel.ChannelPromise.unvoid()Lio/netty/channel/ChannelPromise;

這個是在producer 在 調用

updateTopicRouteInfoFromNameServer 的時候報的錯。
原來rocketmq會使用netty作為底層的鏈接。那為什么我的rocketmq會找不到方法呢?我的版本也是對的。難道是我引用了別的netty把rockentmq的給替換掉了嗎?仔細檢查了pom,果然如此

 

我真的引用了netty-all這個依賴,我怎么會引用這個依賴呢???決心去掉它嘗試看看能不能發送成功,果然成功了。真的是它的原因。。。所以,有時候問題不一定就是你想的那樣,還得像大神說的那樣多跟蹤源碼才可以呀。
對了,我使用的rocketmq的版本是:4.3.2。

另:
 RocketmqRemoting:95 info INFO: closeChannel: close the connection to remote address[39.107.153.215:9876] result: true 頻繁打印這個,是因為jar包的問題
RocketmqRemoting:95 info INFO: closeChannel: close the connection to remote address[] result: true 頻繁打印這個是nameserver地址錯誤的問題。
 
       


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM