不太懂RocketMQ基本概念的看我 这篇博客

1. 前置条件

(看我这篇博客,注意版本要改成3.2.*,maven的版本)

  • 由于RocketMQ需要java环境,所以需要按照JDK:JDK 8+(看我这篇博客)
  • 由于我们需要编译RocketMQ源码,所以需要MAVAN:Maven 3.2.X+

2. 下载源码

官网下载RocketMQ源码,这里我将DashBoard也下载了

创建解压目标文件夹

mkdir /usr/local/rocketMQ

通过FinalShell将源码包上传到虚拟机中(Xshell也可以)
在这里插入图片描述

3. 编译源码

进入源码的文件夹

 cd rocketmq-all-5.1.0/

编译源码,跳过测试阶段(不跳过可能会报错)

mvn -Prelease-all -DskipTests clean install -U

可以看到我们下载的jar包了
在这里插入图片描述

4. Rocket MQ启动JVM参数配置

由于RocketMQ默认的启动内存是4G,而我们的虚拟机的实际内存可能没这么大,所以需要修改启动参数

  • 修改nameserve内存
cd bin
vim bin/runbroker.sh

在这里插入图片描述

  • 修改broker内存
 vim runbroker.sh

在这里插入图片描述

5. 启动RocketMQ

  • 先启动nameserver
#创建日志目录
mkdir logs
#启动nameserver
nohup sh bin/mqnamesrv > logs/mqnamesrv.log 2>&1 &

nohub是后台启动的意思,不用它就是前台启动

  • 查看启动日志
tail -f -n 30 logs/mqnamesrv.log

在这里插入图片描述

  • 启动broker

在 conf 目录下,RocketMQ 提供了多种 Broker 的配置文件:
在这里插入图片描述

  1. broker.conf :单主,异步刷盘。
  2. 2m/ :双主,异步刷盘。
  3. 2m-2s-async/ :两主两从,异步复制,异步刷盘。
  4. 2m-2s-sync/ :两主两从,同步复制,异步刷盘。
  5. dledger/ :Dledger 集群,至少三节点。

这里,我们只启动一个 RocketMQ Broker 服务,所以使用 broker.conf 配置文件。命令行操作如下:

nohup sh bin/mqbroker -n localhost:9876 > logs/broker.log 2>&1 & 
  • 查看日志
tail -f -n 30 logs/broker.log

在这里插入图片描述

  • 停止服务

停止nameserver

sh bin/mqshutdown namesrv

停止broker

sh bin/mqshutdown broker

6. 安装DashBoard

  • 同样到官网下载DashBoard的源码包,放到指定目录下,然后解压
 unzip rocketmq-dashboard-1.0.0-source-release.zip
  • 进入dashboard的包下
cd rocketmq-dashboard-1.0.0/

包内容如下:
在这里插入图片描述

  • 修改配置DashBoard的配置文件,配置nameserver地址和端口(端口jps查看)

在这里插入图片描述
(熟悉springboot项目的知道application配置文件在哪里,上面的端口自己要查看,我这里nameserver端口自己设置成了70216)

  • maven对源码包进行编译

由于我们的RocketMQ版本是最新的5.1,而DashBoard是4.9,所以编译的时候会遇到异常,所以

mvn clean package -Dmaven.test.skip=true

清理项目生产的临时文件,一般是模块下的target目录。同时执行模块安装命令 将打包的的jar/war文件复制到你的本地仓库中,供其他模块使用 -Dmaven.test.skip=true 跳过测试(同时会跳过test compile),而-U强制更新

若出现异常使用下面命令

mvn clean install -U -Dmaven.test.skip=true

在这里插入图片描述

target下出现了dashboard打包好的jar包
在这里插入图片描述
最后运行jar包就启动DashBoard了

java -jar rocketmq-dashboard-1.0.0.jar

在这里插入图片描述

网页访问DashBoard

在这里插入图片描述

7. 测试RocketMQ

这个文件bin/tools.sh org.apache.rocketmq.example.quickstart.Producer 模拟了生产者生产消息,下面执行这个文件即可模拟发送消息(在rocketmq文件中)

#"export NAMESRV_ADDR=127.0.0.1:9876" 这个命令用于设置一个名为 "NAMESRV_ADDR" 的环境变量,其值为 "127.0.0.1:9876"。先执行这么命令
export NAMESRV_ADDR=127.0.0.1:9876
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer   

在这里插入图片描述
消费者消费消息

# 设置 Namesrv 服务器的地址
export NAMESRV_ADDR=127.0.0.1:9876

# 执行消费者 Consumer 消费测试消息
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer

在这里插入图片描述

9. 查看dashboard情况

  • 查看驾驶舱:驾驶舱消息当前数量和最近的趋势,如图左侧为当前消息总数量,右侧为消息数量趋势。

在这里插入图片描述

图1(左上):按broker实例为类目(比如说集群中有3个broker实例)展示当前的消息数为1000条
图2(左下):按topic为类目(比如说当前所有broker中存在10个topic)展示当前的消息数

  • 查看主题
    在这里插入图片描述

可以看到消息的Topic都相同,但属于不同的队列中

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐