RocketMQ 的下载及安装
下载
RocketMQ 可以从官网下载,也可以从 Github 上获取,推荐从官网中获取
官网:http://rocketmq.apache.org/dowloading/releases/
Github:https://github.com/apache/rocketmq/
本书中将使用 4.8.0 的版本,从官网上获取的页面如下。
环境要求如下:
- Windows/Linux 64 位系统
- JDK1.8(64 位)
- 源码安装需要安装 Maven 3.2.x
安装
windows 下的安装
下载
下载链接:https://archive.apache.org/dist/rocketmq/4.8.0/rocketmq-all-4.8.0-bin-release.zip
解压运行版本(Binary),确保已经安装好了 JDK1.8
解压后的目录如下:
配置环境变量
变量名:ROCKETMQ_HOME
变量值:MQ 解压路径\MQ 文件夹名
启动
在 RocketMQ 的架构中,都是需要先启动 NameServer 再启动 Broker 的。所以先启动
NameServer。
- 启动 NameServer
使用 cmd 命令框执行进入至‘MQ 文件夹\bin’下,然后执行‘start mqnamesrv.cmd’,启动
NameServer。成功后会弹出提示框,此框勿关闭。
- 启动 Broker
使用 cmd 命令框执行进入至‘MQ 文件夹\bin’下,然后执行‘start mqbroker.cmd -n
127.0.0.1:9876 autoCreateTopicEnable=true’,启动 Broker。成功后会弹出提示框,此框勿
关闭。
注意事项
- 弹出提示框‘错误: 找不到或无法加载主类 xxxxxx’的处理
打开‘MQ 文件夹\bin’下的 runbroker.cmd,然后将‘%CLASSPATH%’加上英文双引号。保存
并重新执行 start 语句。
再次启动
- 内存不足的处理方式
RocketMQ 默认的虚拟机内存较大,启动 Broker 如果因为内存不足失败,需要编辑如下
两个配置文件,修改JVM内存大小。编辑‘MQ文件夹\bin’下的runbroker.cmd和runserver.
cmd 修改默认 JVM 大小(Linux 上对应同名 sh 文件)
runbroker.cmd --broker 的配置
runserver. cmd --nameServer 的配置
例如:配置以下参数将 RocketMQ 的启动 JVM 的 堆空间内存控制在 512m,新生代控制
在 256m。元空间初始 128m,最大 320m。
- 修改 RocketMQ 的存储路径
rocketmq 取的默认路径是 user.home 路径,也就是用户的根目录,一般存储放在跟路径
下的 /store 目录。
源码中可以得到验证,如下图:
所以这里会有一个问题,RocketMQ 很容易导致 C 盘空间不够,在使用过程中,创建一个主
题默认就是要创建 1G 的文件,很可能会导致出问题。
所以在 windows 上容易导致 C 盘空间吃满。
解决方式有两种:
1、修改源码,比如:全局替换 user.home 参数为 mq.store,然后重新打包
2、使用源码方式启动,源码启动时通过参数设置指定存储位置
控制台插件
环境要求
运行前确保:已经有 jdk1.8,Maven(打包需要安装 Maven 3.2.x)
下载
老版本地址下载:https://codeload.github.com/apache/rocketmq-externals/zip/master
新版本地址:https://github.com/apache/rocketmq-dashboard
解压后如图(以下使用的是老版本,新版本参考老版本即可)
启动
后端管理界面是:rocketmq-console
下载完成之后,进入‘\rocketmq-console\src\main\resources’文件夹,打开
‘application.properties’进行配置。
进入‘\rocketmq-externals\rocketmq-console’文件夹,执行‘mvn clean package
-Dmaven.test.skip=true’,编译生成。
编译成功之后,cmd 命令进入‘target’文件夹,执行‘java -jar rocketmq-console-ng-2.0.0.jar’,启
动‘rocketmq-console-ng-2.0.0.jar’。
浏览器中输入‘127.0.0.1:8089’,成功后即可进行管理端查看。
控制台使用文档
- 运维页面
- 你可以修改这个服务使用的 namesrv 的地址
- 你可以修改这个服务是否使用 VIPChannel(如果你的 mq server 版本小于 3.5.8,请设置不使用)
- 驾驶舱
- 查看 broker 的消息量(总量/5 分钟图)
- 查看单一主题的消息量(总量/趋势图)
- 集群
- 查看集群的分布情况:cluster 与 broker 关系、broker
- 查看 broker 具体信息/运行信息
- 查看 broker 配置信息
主题页面
- 展示所有的主题,可以通过搜索框进行过滤
- 筛选 普通/重试/死信 主题
- 添加/更新主题
- clusterName 创建在哪几个 cluster 上
- brokerName 创建在哪几个 broker 上
- topicName 主题名
- writeQueueNums 写队列数量
- readQueueNums 读队列数量
- perm //2 是写 4 是读 6 是读写
- 状态 查询消息投递状态(投递到哪些 broker/哪些 queue/多少量等)
- 路由 查看消息的路由(现在你发这个主题的消息会发往哪些 broker,对应 broker 的queue 信息)
- CONSUMER 管理(这个 topic 都被哪些 group 消费了,消费情况何如)
- topic 配置(查看变更当前的配置)
- 发送消息(向这个主题发送一个测试消息)
- 重置消费位点(分为在线和不在线两种情况,不过都需要检查重置是否成功)
- 删除主题 (会删除掉所有 broker 以及 namesrv 上的主题配置和路由信息)
- 消费者页面
- 展示所有的消费组,可以通过搜索框进行过滤
- 刷新页面/每隔五秒定时刷新页面
- 按照订阅组/数量/TPS/延迟 进行排序
- 添加/更新消费组
- clusterName 创建在哪几个集群上
- brokerName 创建在哪几个 broker 上
- groupName 消费组名字
- consumeEnable //是否可以消费 FALSE 的话将无法进行消费
- consumeBroadcastEnable //是否可以广播消费
- retryQueueNums //重试队列的大小
- brokerId //正常情况从哪消费
- whichBrokerWhenConsumeSlowly//出问题了从哪消费
- 终端 在线的消费客户端查看,包括版本订阅信息和消费模式
- 消费详情 对应消费组的消费明细查看,这个消费组订阅的所有 Topic 的消费情况,每个queue 对应的消费 client 查看(包括 Retry 消息)
- 配置 查看变更消费组的配置
- 删除 在指定的 broker 上删除消费组
- 生产者页面
通过 Topic 和 Group 查询在线的消息生产者客户端
信息包含客户端主机 版本
- 消息查询页面
- 根据 Topic 和时间区间查询 *由于数据量大 最多只会展示 2000 条,多的会被忽略
- 根据 Topic 和 Key 进行查询
- 最多只会展示 64 条
- 根据消息主题和消息 Id 进行消息的查询
- 消息详情可以展示这条消息的详细信息,查看消息对应到具体消费组的消费情况(如果异常,可以查看具体的异常信息)。可以向指定的消费组重发消息