java使用RocketMq连接异常,RemotingTooMuchRequestException: sendDefaultImpl call timeout
1.首先linux上安装RocketMq,这里我就不多说了网上很多教程
我自己也已经在云服务器上安装了RocketMq,也进行了测试,都正常,接下来我要使用javaApi连接RocketMq
这里需要用到的maven坐标:
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-client</artifactId>
<version>4.5.2</version>
</dependency>
在我运行时问题出现了:(就开始报下面的异常,后来经过检查自己的代码,发现没有什么问题)
发现broker的公开地址不是公网地址.
重点来了
第一步:首先将mq下的conf/broker.conf文件进行修改:在里面最后添加如下内容:
namesrvAddr = 自己云服务器的公网IP:9876
brokerIP1 = 自己云服务器的公网IP
第二步:在bin下正常启动mqnamesrv
sh mqnamesrv
第三步:在bin下启动broker注意这里启动时要指定刚才修改过的配置文件
sh mqbroker -n localhost:9876 -c ../conf/broker.conf
第四步:再次运行java
最后连接成功
总结:rocketmq中文的文档很不友好,尤其是对新手来说,新手的案例只适合本地的虚拟机上使用,不能在云服务上的虚拟机上使用