学习篇|阿里云部署RocketMQ产生的问题

本文章只记录遇到的问题,安装的话可以参考以下文章
??????如何在linux上安装RocketMQ_Jackeys007的博客-CSDN博客_linux rocketmq安装

遇到的问题主要有以下几个
【学习篇|阿里云部署RocketMQ产生的问题】
1. 服务器上connect to null failed at 问题
2. 服务器上 connect to [公网ip:9876] failed 问题
3. windows客户端调用远程发生的com.alibaba.rocketmq.remoting.exception.RemotingConnectException: connect to <10.0.15.13:10909> failed问题

以下为解答,分开描述

问题1的问题是因为环境变量引起的export NAMESRV_ADD=公网ip:9876少了个R加上以后export NAMESRV_ADDR=公网ip:9876然后记得需要进行source /etc/profile所以这个没什么可说的,只要注意下对应的命名格式即可

问题2是因因为没有配置安全组的问题因为就算你在服务器访问的时候,如果你的nameserver配的是公网ip:9876,那么对应的端口也是需要开启的这个问题也比较简单

问题3Caused by: com.alibaba.rocketmq.remoting.exception.RemotingConnectException: connect to <10.0.15.12:10909> failed这才是稍微复杂点的问题原因是因为rocketmq高版本使用了vip通道,内部使用的,具体我也没去研究,低版本可能没有问题,除了9876以外,还需要开放 10909、10911、10912等三个端口,但是母亲10912我没开也没问题在客户端的代码里面,生产者会用到 10909端口,而消费者会使用到10911端口解决的方案有以下几个1. 在product中设置producer.setVipChannelEnabled(false); ,consumer也同理,但是我设置的时候仍然是不行的,所以没采用2. 在broket.conf中添加以下的配置项namesrvAddr=公网ip:9876 brokerId=公网ip之所以要配置这样是因为默认情况下rocketmq可能会读到阿里云服务器的内网ip,也就是上面这个10.0.15.12配置完以后重启服务器即可注意点:这也是网上资料没说到的启动nameserver是这个sh mqnamersrv启动broker是这个sh mqbroker -c conf/broker.conf -n 127.0.0.1:9876但是此时 -n 127.0.0.1:9876不能加了,如果加的话他又会读到你阿里云的内网ip,我估计是优先级的问题引起的,如果这样等于你上面的配置失效了,依然发送不了消息做完上面以后重启就可以了,其实问题并不复杂,只是自己对mq的机制不是完全熟悉,才有这种问题发生注意配置完以后几个端口仍然要配置阿里云安全组即可


以下是问题解决中参考的一些文章资料

https://blog.csdn.net/gwd1154978352/article/details/80785530
https://blog.51cto.com/lilingkai/2087165
https://www.jianshu.com/p/1875aa3a9510
http://t.zoukankan.com/zhjh256-p-6944431.html
https://blog.csdn.net/weixin_43767015/article/details/123854683
https://blog.csdn.net/m0_37859502/article/details/124797755

还需努力学习

    推荐阅读