SpringBoot集成RocketMQ实现消息实时推送(待完成中。。。)
Posted Ivyvivid
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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、conf2m-noslaveroker-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。
以上是关于SpringBoot集成RocketMQ实现消息实时推送(待完成中。。。)的主要内容,如果未能解决你的问题,请参考以下文章
(十九)ATP应用测试平台——springboot集成RocketMQ案例实战
消息中间件 - RocketMQ 详解(从软件安装到案例实现)
消息中间件 - RocketMQ 详解(从软件安装到案例实现)