02_环境搭建
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
Linux下安装
环境要求
64bit OS、64bit JDK 1.8+、4g+ free disk for Broker server
启动
在RocketMQ的架构中,都是需要先启动NameServer再启动Broker的。所以先启动NameServer。
启动NameServer
进入至MQ文件夹\bin下,然后执行
nohup sh mqnamesrv &,启动NAMESERVER。查看日志的命令:
tail -f ~/logs/rocketmqlogs/namesrv.log
启动Broker
进入至‘MQ文件夹\bin’下,启动BROKER。
修改配置文件增加外网地址(你启动加载哪个配置文件就修改哪个,比如修改broker.conf)
[root@10 conf]# vi broker.conf
启动命令如下:
nohup sh mqbroker -c ../conf/broker.conf -n 192.168.56.10:9876 autoCreateTopicEnable=true &这样启动的服务器客户端可以自动创建主题。查看日志的命令:
tail -f ~/logs/rocketmqlogs/broker.log
注意事项
RocketMQ需要开通的端口:
- rocketMQ自身占用有9876
- 非vip通道端口:10911
- vip通道端口:10909 (只针对producer 而且4.5以后已经默认不开启了)
VIP通道其实就是多监听一个端口用于接受处理消息,因为默认端口通道可能很多在用,为了防止某些很重要的业务堵塞,就再开一个端口处理。这对于老版本的 RocketMQ 有消息接收队列的时候,作用可能大一点,对于目前的 RocketMQ 的设计,作用没那么大了。所以,这个默认就不开启了,留着只是为了兼容老版本。
其他:
记得Linux上修改文件权限:命令如下:
chmod -R 777 /home/linuxRocketMQ默认的虚拟机内存较大,启动Broker如果因为内存不足失败,需要编辑如下两个配置文件,修改JVM内存大小。(但是这个也仅仅是在测试环境中,RocketMQ在生产上最低要求至少8G内存<官方推荐>才能确保RocketMQ的效果)
编辑runbroker.sh和runserver.sh修改默认JVM大小(windows上对应cmd文件)
vi runbroker.sh --broker的配置 vi runserver.sh --nameServer的配置修改项:
JAVA_OPT="${JAVA_OPT} -server -Xms1024m -Xmx1024m -Xmn512m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"

RocketMQ源码安装与调试
下载
http://rocketmq.apache.org/dowloading/releases/

环境要求
- 64位系统
- JDK1.8(64位)
- Maven 3.2.x
IntelliJ IDEA导入







导入后执行Maven命令install
mvn install -Dmaven.test.skip=true
验证下没问题。
启动RocketMQ源码
启动NameServer


如上图中Value值是一个Rocket运行主目录(一般这个目录新建)
ROCKETMQ_HOME=F:\RocketMQ在Rocket运行主目录中创建conf、logs、store三个文件夹
然后从源码目录中distribution目录下的中将broker.conf、logback_broker.xml、logback_namesrv.xml复制到conf目录中



启动Broker
在broker模块找到broker模块,同时找到启动类BrokerStartup.java

需要修改配置文件broker.conf:

配置如下:
#nameServer
namesrvAddr=127.0.0.1:9876
autoCreateTopicEnable = true
storePathRootDir = F:\\RocketMQ\\store
#commitLog存储路径
storePathCommitLog = F:\\RocketMQ\\store\\commitlog
#消费队列存储路径
storePathConsumeQueue =F:\\RocketMQ\\store\\consumequeue
#消息索引存储路径
storePathindex = F:\\RocketMQ\\store\\index
#checkpoint文件存储路径
storeCheckpoint = F:\\RocketMQ\\store\\checkpoint
#abort文件存储路径
abortFile = F:\\RocketMQ\\store\\abort配置环境变量

-c F:\RocketMQ\conf\broker.conf
ROCKETMQ_HOME=F:\RocketMQ启动成功输出:

检查下数据文件

启动的日志文件目录
启动过程中任何的日志信息已经写入:


安装可视化插件
安装步骤
参考官网:源码安装
注:现如今在GitHub apache/rocketmq-externals 项目下已经找不到 rocketmq-console模块了,官方已经从 apache/rocketmq-externals 独立出来并更名为 rocketmq-dashboard。
源码地址:apache/rocketmq-dashboard
下载并解压,切换至源码目录 rocketmq-dashboard-master/
打开application.yml进行配置

① 编译 rocketmq-dashboard
$ mvn clean package -Dmaven.test.skip=true② 运行 rocketmq-dashboard
$ java -jar target/rocketmq-dashboard-1.0.1-SNAPSHOT.jar提示:Started App in x.xxx seconds (JVM running for x.xxx) 启动成功
③ 浏览器中输入‘127.0.0.1:8088’,成功后即可进行管理端查看。

控制台使用文档
运维页面
- 你可以修改这个服务使用的namesrv的地址
- 你可以修改这个服务是否使用VIPChannel(如果你的mq server版本小于3.5.8,请设置不使用)
- 是否开启TLS

驾驶舱
- 查看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进行消息的查询
- 消息详情可以展示这条消息的详细信息,查看消息对应到具体消费组的消费情况(如果异常,可以查看具体的异常信息)。可以向指定的消费组重发消息