RocketmqRemoting - closeChannel: close the connection to remote address[] result: true
问题:
原因分析(所有的都解决掉基本不会再有问题):
1,首先确认nameserver和broker都是健康状态,可以通过官方文档的工具命令测试
1,生产消息
export NAMESRV_ADDR=localhost:9876
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
2,接受消息
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer
2,如果上面没问题,看一下防火墙是否打开,自己的端口号是否开放。
1,rocketmq要开放四个端口:9876,10911,10909,10912
至于这几个端口的说明,可以参考:
rocketmq端口说明
2,linux查看端口是否开放命令参考:
阿里云可以用控制台查看安全组的开放端口状态:
3,看一下rocketmq的broker注册到nameserver的ip地址是否是内网,如果是内网,项目无法链接内网也会链接不上。
如果没有工作台,可以进入rocketmq安装目录bin中通过roketmq命令查看brokerip注册到nameservier的ip情况
./mqadmin clusterList -n {nameserverip}:9876
如果是内网,指定注册broker外网解决方案:
1,进入rocketmq根目录
cd /data/tools/rocketmq-all-4.9.0-bin-release
2,编写配置文件,并写好配置
echo “brokerIP1=10.2.x.x” > broker.properties
3,启动 mqnamesrv
nohup sh bin/mqnamesrv &
4,重点:mrbroker 启动时通过 -c 加载配置文件
nohup sh bin/mqbroker -n {nameserverip}:9876 -c /data/tools/rocketmq-all-4.9.0-bin-release/broker.properties &
5,查看结果,通过命令或者控制台查看,此时注册的broker就是外网ip
4,如果以上都没问题,可能是链接超时:
可以加个配置发送消息超时的代码,时间加长一点