阿里云部署RocketMQ产生的问题

本文章只记录遇到的问题,安装的话可以参考以下文章

​​​​​​如何在linux上安装RocketMQ_Jackeys007的博客-CSDN博客_linux 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,那么对应的端口也是需要开启的

这个问题也比较简单
问题3

Caused 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

还需努力学习

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值