RocketMQ的装置与启动(基于Linux与JDK1.8)
下载我的项目
首先Java工程抉择对应的RocketMQ版本,具体参考以下两图:
- 举例:SpirngCloudAlibabaVersion为2.2.9RELEASE,MQ则抉择4.9.4版本。
- 举例:如果是SpringBoot我的项目,如我的SpringBoot我的项目为2.2.3版本,对应SpirngCloudAlibaba为2.2.0RELEASE,MQ则抉择4.4.0版本。
- 确定版本后到官网下载(版本号自行批改):https://www.apache.org/dyn/closer.cgi?path=rocketmq/4.9.3/
装置
解压并批改启动配置
- 将下载好的ZIP文件在提前创立好的文件夹上unzip命令解压缩。
赋权操作:执行chmod 777 /rocketmq-all-5.1.2-bin-release/*
- 因为默认启动配置应用内存较大,对其进行批改。
启动
启动namesrv(默认9876端口)
- 进入门路 cd bin/
- 后盾启动 nohup sh mqnamesrv &
- 查看日志确认是否启动胜利 tail -f ~/logs/rocketmqlogs/namesrv.log
- 也能够通过端口查看 netstat -an|grep 9876
敞开命令sh mqshutdown namesrv
启动broker(默认10911端口)
- 进入门路 cd bin/
- 后盾启动 nohup ./mqbroker -n localhost:9876 &
- 查看日志确认是否启动胜利 tail -f ~/logs/rocketmqlogs/broker.log
敞开命令sh mqshutdown broker
测试
# 申明一个 namesrv 的地址export NAMESRV_ADDR=localhost:9876# 发送音讯./tools.sh org.apache.rocketmq.example.quickstart.Producer# 申明一个 namesrv 的地址export NAMESRV_ADDR=localhost:9876# 接管音讯./tools.sh org.apache.rocketmq.example.quickstart.Consumer
DashBoard的搭建
//可视化页面的搭建
SpringBoot工程接入RocketMQ
//TODO最佳实际
部署投产过程中踩的雷
本机SpringBoot我的项目无奈往近程服务器的RocketMQ发送音讯;
具体报错:Producer无奈发送音讯且Client日志始终打印如下音讯:
RocketMq closeChannel: close the connection to remote address[]
解决方案:
1.Client为Java工程本地启动。2.确认MQ服务与Client版本匹配。3.MQ服务机的9876与10911端口平安组须要凋谢给Clinet的ip,同时MQ服务机能够curl通Client的ip
本机SpringBoot我的项目无奈生产音讯;
- 具体报错:本机我的项目Producer往近程服务器MQ发送音讯状态OK,且依据MessageId能够在dashboard查问到音讯,然而本机Client无奈生产到音讯。
解决方案1:
1.进入dashboard,确认音讯对应的topic下的生产组。2.RocketMQ分为集群模式和播送模式,集群模式下,topic+tag在一个订阅组内只会被其中一个消费者终端生产,须要确认是否有其余消费者终端生产了该音讯。
解决方案2:
1.近程服务器未创立该topic。2.查看话题列表:sh mqadmin topicList -n 127.0.0.1:98763.在bin门路下执行 ./mqadmin updateTopic -n localhost:9876 -b localhost:10911 -t 你的topic名称4.或应用该命令启动brokernohup sh mqbroker -n localhost:9876 autoCreateTopicEnable=true -c ../conf/broker.conf &
消费者无奈注册到MQ的话题的订阅组中(//TODO);
- 如下两图所示:
1.参考文章:https://blog.csdn.net/xhmico/article/details/122938904