SpringBoot集成RocketMQ實現消息實時推送(待完成中。。。)


最近用SpringBoot集成RocketMQ實現消息實時推送,一直卡在本地啟動RocketMQ失敗。現在先記錄一下,以后看時間解決。當然,如果有好心的朋友,可以提供解決方案(#^.^#)。

我用的是Apache包,SpringBoot有RocketMQ starter,這個后面再講。

1         <dependency>
2             <groupId>org.apache.rocketmq</groupId>
3             <artifactId>rocketmq-client</artifactId>
4             <version>4.7.0</version>
5         </dependency>

這個組件很奇怪,在本地環境玩,需要配置外網,否則本地起不來,也就用不了。

遇到的問題

1、連接失敗Caused by: java.lang.IllegalStateException: org.apache.rocketmq.remoting.exception.RemotingConnectException: connect to null failed

  • 在broker.conf、conf\2m-noslave\broker-a.properties或者其他broker配置文件中添加配置
    • brokerIP1=XX.XX.XX.XX
  • 啟動namesrv,broker
    • 這里要注意先啟動namesrv,再啟動broker。
    • 啟動namesrv,broker命令,mqnamesrv.cmd,mqbroker.cmd。
    • 這點很重要,你在broker配置文件中配置了外網,但是要結合命令才行,不然它會找默認的內網。命令,mqbroker.cmd -n localhost:9876 -c ../conf/2m-2s-async/broker-b.properties。

2、啟動application失敗,org.apache.rocketmq.client.exception.MQClientException: No route info for this topic, user-topic

  • 在程序中,producer和consumer中設置namesrvAdrr為XX.XX.XX.XX:9876

3、啟動application rocketmq就關閉,[lientSelector_1] RocketmqRemoting : closeChannel: close the connection to remote address[] result: true。

用mqadmin clusterList -n localhost:9876,發現org.apache.rocketmq.remoting.exception.RemotingConnectException: connect to [XX.XX.XX.XX:9876] failed。

防火牆設置了9876等3個端口,最后防火牆也關了,還是不行。也試了很多其他外網IP,也是不行。

 

源代碼在https://github.com/Ivyvivid/Practice-RocketMQ,等解決了再更新O(∩_∩)O。


免責聲明!

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



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