报错日志:
org.apache.rocketmq.remoting.exception.RemotingTooMuchRequestException: sendDefaultImpl call timeout
解决方法
如果是阿里云 腾讯云 华为云等需要开放RocketMQ以下端口
namesrv需要的: 9876
端口 (必须开启)
非vip通道端口: 10911
(必须开启)这个主要是broker的服务端口号,作为对producer和consumer使用服务的端口号,默认为10911,可以通过配置文件中修改。
vip通道端口:
10909`10909
是VIP通道对应的端口,在JAVA中的消费者对象或者是生产者对象中关闭VIP通道即可无需开放10909
端口
启动namesrv
name server 启动 ip修改为你服务器对应公网ip
nohup ./bin/mqnamesrv -n 你的公网IP:9876 &
不能写localhost
broker添加配置
在conf/broker.conf 中 加入 brokerIP1=你的公网IP
broker 启动
nohup sh bin/mqbroker -n 你的公网IP:9876 -c conf/broker.conf autoCreateTopicEnable=true &
可视化监控平台搭建
RocketMQ 有一个对其扩展的开源项目 incubator-rocketmq-externals,这个项目中有一个子模块叫 rocketmq-console,这个便是管理控制台项目了,先将 incubator-rocketmq-externals 拉到本地,因为我们需要自己对 rocketmq-console 进行编译打包运行。
2.8.2 下载并编译打包
克隆项目
git clone https://github.com/apache/rocketmq-externals
复制代码
在 rocketmq-console 中配置 namesrv 集群地址:
$ cd rocketmq-console
$ vim src/main/resources/application.properties
rocketmq.config.namesrvAddr=10.211.55.4:9876
配置完成进行编译并打包
mvn clean package -Dmaven.test.skip=true
启动 rocketmq-console:
nohup java -jar rocketmq-console-ng-2.0.0.jar > rocketmq-console.log &
启动成功后,我们就可以通过浏览器访问 http://IP地址:8080 进入控制台界面了