Springboot整合Rocketmq系列教程
本教程是基于Springboot2.6.3整合Rocketmq5.0,其中涉及了Rocketmq的安装,消息的发送及消费的代码实现。
本文不会对rocketmq的一些概念、原理,及注意事项进行讲解,因为官网已经写的很清楚,又有中文版,详细访问https://rocketmq.apache.org/zh/docs/quickStart/01quickstart
1.安装
1.1window下启动rocketmq
window下启动rocketmq需要注意的地方有两个:
- 环境变量的配置
- jdk的版本,例如jdk版本太高了,怎么办
1.1.1下载最新版
打开rocketmq的官网:https://rocketmq.apache.org/,点击下载按钮

然后解压放到相应的目录
1.1.2启动mqnamesrv
来到解压的目录,打开E:\rocketmq-all-5.1.0\bin,找到mqnamesrv.cmd

在启动之前还有两个事情要做:
第一、配置rocketmq环境变量
我们打开它的启动文件,内容如下
if not exist "%ROCKETMQ_HOME%\bin\runserver.cmd" echo Please set the ROCKETMQ_HOME variable in your environment! & EXIT /B 1
call "%ROCKETMQ_HOME%\bin\runserver.cmd" -Drmq.logback.configurationFile=%ROCKETMQ_HOME%\conf\rmq.namesrv.logback.xml org.apache.rocketmq.namesrv.NamesrvStartup %*
IF %ERRORLEVEL% EQU 0 (
ECHO "Namesrv starts OK"
)
首先是配置ROCKETMQ_HOME环境变量,也就是rocketmq所在的目录。
从内容我们发现最终启动的是runserver.cmd,我们也看看它的内容
if not exist "%JAVA_HOME%\bin\java.exe" echo Please set the JAVA_HOME variable in your environment, We need java(x64)! & EXIT /B 1
set "JAVA=%JAVA_HOME%\bin\java.exe"
setlocal
set BASE_DIR=%~dp0
set BASE_DIR=%BASE_DIR:~0,-1%
for %%d in (%BASE_DIR%) do set BASE_DIR=%%~dpd
set CLASSPATH=.;%BASE_DIR%conf;%BASE_DIR%lib\*;%CLASSPATH%
set "JAVA_OPT=%JAVA_OPT% -server -Xms2g -Xmx2g -Xmn1g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
set "JAVA_OPT=%JAVA_OPT% -XX:+UseConcMarkSweepGC -XX:+UseCMSCompactAtFullCollection -XX:CMSInitiatingOccupancyFraction=70 -XX:+CMSParallelRemarkEnabled -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+CMSClassUnloadingEnabled -XX:SurvivorRatio=8 -XX:-UseParNewGC"
set "JAVA_OPT=%JAVA_OPT% -verbose:gc -Xloggc:"%USERPROFILE%\rmq_srv_gc.log" -XX:+PrintGCDetails -XX:+PrintGCDateStamps"
set "JAVA_OPT=%JAVA_OPT% -XX:-OmitStackTraceInFastThrow"
set "JAVA_OPT=%JAVA_OPT% -XX:-UseLargePages"
set "JAVA_OPT=%JAVA_OPT% %JAVA_OPT_EXT% -cp "%CLASSPATH%""
"%JAVA%" %JAVA_OPT% %*
这里需要配置JAVA_HOME环境变量,java所在的目录
第二、检查jdk版本
rocketmq推荐的版本是java8,而我本机配置的环境变量是jdk17的,如果用17去启动会报错,因此为了简单点,
if not exist "D:\Program Files\jdk1.8\bin\java.exe" echo Please set the JAVA_HOME variable in your environment, We need java(x64)! & EXIT /B 1
set "JAVA=D:\Program Files\jdk1.8\bin\java.exe"
然后打开cmd,运行
E:\rocketmq-all-5.1.0\bin>mqnamesrv.cmd
如果出现以下的信息,就说明启动成功
The Name Server boot success. serializeType=JSON, address 0.0.0.0:9876
1.1.3启动broker
同样的,在mqnamesrv.cmd所在的目录里面我们会发现有mqbroker.cmd和runbroker.cmd这个两个文件,我们只需注意ROCKETMQ_HOME和JAVA_HOME两个环境变量即可。
ROCKETMQ_HOME已经在上面一步完成了,接下来只需把涉及到JAVA_HOME的地方替换成“D:\Program Files\jdk1.8”即可
我们打开cmd,运行以下命令
E:\rocketmq-all-5.1.0\bin>mqbroker.cmd -n localhost:9876
The broker[DESKTOP-ED6R0PI, 198.18.0.1:10911] boot success. serializeType=JSON and name server is localhost:9876
说明broker也启动成功了
这样window下启动rocketmq就完成了
1.2linux下启动rocketmq
linux下启动rocketmq主要的问题也是两个:
- jdk版本,上面已经提到过了
- 内存大小的问题
1.2.1检查jdk版本
[root@centos7 ~]# java -version
java version "1.8.0_212"
Java(TM) SE Runtime Environment (build 1.8.0_212-b10)
Java HotSpot(TM) 64-Bit Server VM (build 25.212-b10, mixed mode)
jdk是1.8满足安装rocketmq的要求
1.2.2下载rocketmq
[root@centos7 ~]# cd /opt/software/
[root@centos7 software]# wget https://archive.apache.org/dist/rocketmq/5.1.0/rocketmq-all-5.1.0-bin-release.zip
我把下载的压缩包放到software目录下,然后解压到module目录下
[root@centos7 software]# unzip rocketmq-all-5.1.0-bin-release.zip -d /opt/module
[root@centos7 software]# cd /opt/module/
[root@centos7 module]# ll
drwxr-xr-x. 6 root root 120 4月 10 16:28 rocketmq-all-5.1.0-bin-release
1.2.3启动mqnamesrv
启动之前要修改一个文件,打开runserver.sh

因为虚拟机的内容没有那么大,上面是我修改后的值,改完之后使用以下命令启动
[root@centos7 rocketmq-all-5.1.0-bin-release]# nohup sh bin/mqnamesrv &
[1] 13155
[root@centos7 rocketmq-all-5.1.0-bin-release]# nohup: 忽略输入并把输出追加到"nohup.out"
1.2.4启动broker
同样,启动之前也要修改一个文件,打开runbroker.sh

同样的,框起来的值是我修改后的值
然后用以下命令启动
[root@centos7 rocketmq-all-5.1.0-bin-release]# nohup sh bin/mqbroker -n localhost:9876 &
[2] 13258
[root@centos7 rocketmq-all-5.1.0-bin-release]# nohup: 忽略输入并把输出追加到"nohup.out"
最后我们使用jps命令看看刚才的是否成功启动服务
[root@centos7 rocketmq-all-5.1.0-bin-release]# jps
13314 Jps
13289 BrokerStartup
13182 NamesrvStartup
可以看到服务已经启动成功
这样linux下启动rocketmq就完成了
1.3 RocketMQ仪表板
RocketMQ Dashboard是一个Web界面应用程序,用于管理和监控Apache RocketMQ消息中间件的运行状态。RocketMQ Dashboard提供了一系列的监控指标和管理功能,包括Broker配置、集群概览、主题状态、消费者状态、生产者状态和消息跟踪等。
使用RocketMQ Dashboard,用户可以方便地查看RocketMQ集群的整体状态和各个组件的运行情况,以及执行一些管理操作,如创建和删除主题、查看消费者组订阅信息、发送测试消息等。
打开https://rocketmq.apache.org/download#rocketmq-dashboard,直接下载源码到本地部署

用idea打开,修改配置文件application.yml
rocketmq:
config:
namesrvAddrs:
- 192.168.10.100:9876
- 192.168.10.100:9876
namesrvAddrs地址就是服务的地址,192.168.10.100是我虚拟主机的ip,如果是window环境下,改成localhost
然后启动程序,访问http://localhost:8080/#/

可以在上面添加主题,查看发送的消息
2.准备工作
2.1引入依赖
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-spring-boot-starter</artifactId>
<version>2.2.3</version>
</dependency>
2.2配置文件
server:
port: 9002
rocketmq:
# 服务地址,多个用逗号分开
name-server: 192.168.10.

本教程介绍了如何在Springboot2.6.3中整合Rocketmq5.0,包括Rocketmq的安装、消息的发送和消费。文中提供了Windows和Linux下的启动步骤,以及RocketMQ仪表板的使用。同时,展示了如何使用RocketMQTemplate发送普通消息、顺序消息、定时/延时消息和事务消息。


被折叠的 条评论
为什么被折叠?



