1 RocketMQ下载方式
1.1 官网下载
下载地址
source是源码,Binary是可运行程序。
1.2 网盘下载
版本:
4.7.1版本的
source下载:
链接: https://pan.baidu.com/s/1d8FuAicxSr-YZKeeQJ7jWg 提取码: t24m
Binary下载:
链接: https://pan.baidu.com/s/1qBhQpbw1OJwF0eKgtogyCw 提取码: fbqi
2 RocketMQ安装
需要提前安装JDK,配置maven相关的环境变量。
2.1 解压
对压缩文件进行解压,用解压缩命令执行,解压对应的.zip压缩文件:
unzip rocketmq-all-5.1.0-bin-release.zip
2.2 启动
2.2.1 启动NameServer
进入bin目录,执行命令:nohup sh mqnamesrv &
启动成功:
启动过程中,可能会出现内存过大、端口被占用的错误日志,启动失败的原因可以通过日志查看2.2.3
2.2.2 启动broker
在启动前需要进入bin目录下修改一下配置文件,增加外网地址便于访问,修改broker配置文件broker.conf的ip,IP为本机IP
启动broker命令:
nohup sh mqbroker -c ../conf/broker.conf -n 178.78.188.178:9876 autoCreateTopicEnable=true &
启动日志查看
2.2.3 日志查看
日志文件地址:bin目录文件下的nohup.out文件
查看日志文件:tail -1000f nohup.out
2.2.4 常见错误
2.2.4.1 端口被占用
解决方案:
查看端口,默认9876,然后kill,启动:
lsof -i :9876
2.2.4.2 进程已经启动
如果多次启动同一个 Broker 实例,可能会出现这个错误。确保每次只启动一个实例,并且在启动新实例之前确保旧的实例已经完全停止。
kill进程
# 查看进程ps -ef |grep mqnamesrvps -ef |grep mqbroker# 杀死broker进程:sh mqshutdown namesrvsh mqshutdown broker
2.2.4.3 RemotingConnectException
原因是broker无法连接到指定IP地址导致的,解决方法是在broker.conf的配置文件中,检查IP配置项brokerIP为本机IP
2.2.4.4 内存堆栈初始值过大
修改堆空间的初始值:
2.2.4.5 Please set the JAVA_HOME variable in your environment, We need java(x64)!
1、系统上已经安装了 jdk1.8,也配置好了环境变量。应该不是 jdk 安装问题。
2、查看 runserver.sh 脚本文件发现报错信息在这下面三行:
将第一行的$HOME/jdk/java 路径修改成系统 JDK 安装路径,我以 Mac 系统安装路径为例,屏蔽第二行和第三行。
3 rocketmq dashboard
3.1 官网下载
rocketmq-dashboard是一个可视化查看和管理RocketMQ消息队列的工具,基于SpringBoot开发的一个Web工程,可以去Github下载源代码,或者官方下载地址:https://dist.apache.org/repos/dist/release/rocketmq/rocketmq-dashboard/1.0.0/rocketmq-dashboard-1.0.0-source-release.zip
官方地址:RocketMQ Dashboard | RocketMQ
3.2 网盘下载
链接: https://pan.baidu.com/s/1u_cI42onoK5NGUsCvSJ_Gg 提取码: m69r
下载成功之后,解压就可以得到源代码,目录结构就是一个简单的SpringBoot工程。
3.3 修改配置文件
因为是spring boot项目,修改配置文件application.yml中链接RocketMQ的配置项。
3.4 打包
配置文件修改之后,就可以执行mvn package打包命令,生成对应的jar包程序。打包成功之后,就可以在target目录下面找到生成的jar包,这个jar就是可执行的rocketmq-dashboard程序
我这里已经把jar包放到网盘了:
链接: https://pan.baidu.com/s/1ALGnbqmDdTQ6-0yLmvIrmw 提取码: 292q
3.5 启动
启动dashboard程序之前,需要确保RocketMQ消息队列服务已经启动,确保namesrv和mqbroker两个服务已经启动。
运行jar包:java -jar /Users/xxxx/RocketMQ/rocketmq-dashboard-1.0.0.jar
启动成功之后,打开浏览器,访问http://localhost:8080/
到此,RocketMQ可视化工具rocketmq-dashboard就已经安装完成了,可以通过控制台申请topic,查看消息消费情况。
4 benchmark性能压测工具
4.1 官网下载
https://github.com/apache/rocketmq/tree/master/example/src/main/java/org/apache/rocketmq/example/benchmark
4.2 RocketMQ安装包自带
4.3 工具清单
producer.sh: 消息生产benchmark工具(同步非批处理模式)
consumer.sh:消息消费的benchmark工具
4.3.1 producer.sh
4.3.1.1 帮助
sh producer.sh -h
usage: benchmarkProducer [-h] [-k <arg>] [-n <arg>] [-s <arg>] [-t <arg>] [-w <arg>] -h,--help Print help -k,--keyEnable <arg> Message Key Enable, Default: false //是否使用message key,true则使用timestamp作为message的key -n,--namesrvAddr <arg> Name server address list, eg: 192.168.0.1:9876;192.168.0.2:9876 //指定nameserver地址 -s,--messageSize <arg> Message Size, Default: 128 //指定消息大小,默认128字节 -t,--topic <arg> Topic name, Default: BenchmarkTest //指定topic,默认使用BenchmarkTest,如果指定其他记得先创建对应的topic -w,--threadCount <arg> Thread count, Default: 64 //开启的发送生产消息的线程数
4.3.1.2 脚本命令
sh producer.sh -n xx.xx.xx.xx:9876 -t YACE_ORDER_RECEIVE -w 128 -s 1024
4.3.1.3 参数介绍
SendTPS:生产消息的TPS
Max RT:最大响应时间(毫秒)
Average RT:平均响应时间(毫秒)
Send Failed:发送失败的总请求数
Response Failed:返回失败的总响应数
4.3.2 consumer.sh
4.3.2.1 帮助
sh consumer.sh -h
usage: benchmarkConsumer [-e <arg>] [-f <arg>] [-g <arg>] [-h] [-n <arg>] [-p <arg>] [-r <arg>] [-t <arg>]
-e,--expression <arg> filter expression content file path.ie: ./test/expr //配合filter参数使用,过滤的条件表达式
-f,--filterType <arg> TAG, SQL92 //过滤方式
-g,--group <arg> Consumer group name, Default: benchmark_consumer //指定消费组,默认为benchmark_consumer
-h,--help Print help
-n,--namesrvAddr <arg> Name server address list, eg: 192.168.0.1:9876;192.168.0.2:9876 //指定nameserver地址
-p,--group prefix enable <arg> Consumer group name, Default: false //是否给消费组添加后缀,默认会给指定的消费组后添加后缀,默认应该是true(提示有问题)
-r,--fail rate <arg> consumer fail rate, default 0 //指定消费失败率,只要没有超过消费失败率,消费失败都会重试
-t,--topic <arg> Topic name, Default: BenchmarkTest //指定topic,默认使用BenchmarkTest,如果指定其他记得先创建对应的topic
4.3.2.2 脚本命令
sh consumer.sh -n xx.xx.xx.xx:9876 -t YACE_ORDER_RECEIVE
4.3.2.3 参数介绍
TPS: 消费的TPS
FAIL:消费失败的总数
AVG(B2C):broker到Consumer的平均响应时间(毫秒)
AVG(S2C):nameserver到Consumer的平均响应时间(毫秒)
MAX(B2C): broker到Consumer的最大响应时间(毫秒)
MAX(S2C): nameserver到Consumer的最大响应时间(毫秒)
4.4 消息堆积清理
参考链接:
产品概述_云消息队列 RocketMQ 版(RocketMQ)-阿里云帮助中心
RocketMQ的下载与安装(全网最细保姆级别教学)_rocketmq下载安装-CSDN博客
【RocketMQ笔记02】安装RocketMQ可视化工具rocketmq-dashboard-CSDN博客
Apache / rocketmq-dashboard
RocketMQ系列:rocketmq的benchmark工具