RocketMQ从安装、压测到运维一站式文档

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 mqnamesrv

ps -ef |grep mqbroker


# 杀死broker进程:

sh mqshutdown namesrv

sh 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 脚本命令
指定nameserver进行生产消息压测:

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的最大响应时间(毫秒)

注意:

如果需要更能精准的反映消息消费的RT,保证消费消息的时候,是即时生产出来的,避免因为存放在broker或namesrv的时间过久,导致RT过大,无法精准反映消费的RT,需要以下三个步骤:

1、把队列里堆积的消息给提前清理掉

2、先启动消费

3、再启动生产

4.4 消息堆积清理

参考链接:

产品概述_云消息队列 RocketMQ 版(RocketMQ)-阿里云帮助中心

RocketMQ的下载与安装(全网最细保姆级别教学)_rocketmq下载安装-CSDN博客

【RocketMQ笔记02】安装RocketMQ可视化工具rocketmq-dashboard-CSDN博客

Apache / rocketmq-dashboard

RocketMQ系列:rocketmq的benchmark工具

RocketMQ与SpringBoot整合进行生产级二次封装_rocketmq二次封装-CSDN博客

  • 11
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值