目录
[验证 RocketMQ 功能](#验证 RocketMQ 功能)
[RocketMq Dashboard](#RocketMq Dashboard)

简介
RocketMQ是阿里巴巴开源的分布式消息中间件,基于Java开发,支持高并发、低延迟的消息处理,适用于电商、金融等高要求场景。
- 高吞吐量:单机支持十万级消息吞吐。
- 低延迟:99.6%的消息延迟在1毫秒内。
- 高可靠性:支持事务消息、顺序消息,避免数据丢失。
- 多场景支持:涵盖实时日志、分布式事务、消息推送等。
| 特性 | ActiveMQ | RabbitMQ | RocketMQ | Kafka |
|---|---|---|---|---|
| 吞吐量 | 万级 | 万级 | 十万级 | 十万级 |
| 延迟性 | ms级 | us级 | ms级 | ms级以内 |
| 功能丰富度 | 一般 | 丰富 | 最丰富 | 单一 |
下载
RocketMQ5.1.4
地址:https://rocketmq.apache.org/zh/download/

由于RocketMQ默认预设的JVM内存是2G,这是RocketMQ给我们的最佳配置。如果需要调整下JVM内存大小。修改的方式是直接修改runserver

配置环境变量
变量名: ROCKETMQ_HOME
变量值: E:\cloud\rocketmq
JVM参数调整
runserver
set "JAVA_OPT=%JAVA_OPT% -server -Xms256m -Xmx256m -Xmn256m"
runbroker
set "JAVA_OPT=%JAVA_OPT% -server -Xms512m -Xmx512m"
启动
启动NameServer
start mqnamesrv.cmd
启动Broker
start mqbroker.cmd -n 127.0.0.1:9876 autoCreateTopicEnable=true
autoCreateTopicEnable=true自动创建Topic
或者修改broker.conf资源配置文件,允许自动创建Topic与添加namesrvAddr地址,建议线下开启,线上关闭
PS:
1、中途断网或者中断会导致一些文件损坏。
如果不是第一次运行rocketmq,则将C:\Users\Administrator\store文件夹下的文件全部删除,再次输入命令,则可以正常启动。
2、或者切换到cmd窗口跳转到对应bin目录执行相应命令
# /conf/broker.conf
autoCreateTopicEnable=true
namesrvAddr=localhost:9876
listenPort=10911
| 服务 | 默认端口 | 修改参数 |
|---|---|---|
| NameServer | 9876 | -n 127.0.0.1:9877 |
| Broker | 10911 | -p 10912 |
验证

验证 RocketMQ 功能
RocketMQ 自带了发送与接收消息的脚本 tools.cmd,用来验证 RocketMQ 的功能是否正常。执行以下命令启动消费者
set NAMESRV_ADDR=127.0.0.1:9876
tools.cmd org.apache.rocketmq.example.quickstart.Consumer

启动生产者
set NAMESRV_ADDR=127.0.0.1:9876
tools.cmd org.apache.rocketmq.example.quickstart.Producer
如有"the broker's disk is full"则是Broker磁盘已满,需要提升内存配置
启动成功后,生产者会发送1000个消息,然后自动退出。


验证成功!
RocketMq Dashboard
下载或者克隆:https://github.com/apache/rocketmq-dashboard
打开项目,找到 application.yml 文件

启动项目,访问:http://localhost:8080/#/


RocketMQ Dashboard的横向菜单分为八个部分,分别是OPS(运维)、Dashboard(驾驶舱)、Cluster(集群)、Topic(主题)、Consumer(消费者)、Broker(代理)、Config(配置)和Admin(管理员)
新增主题

项目集成
pom
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-spring-boot-starter</artifactId>
<version>2.2.3</version>
</dependency>
yml文件
rocketmq:
name-server: 127.0.0.1:9876 # NameServer地址
producer:
send-message-timeout: 3000
retry-times-when-send-failed: 2
# 生产者组名
group: my-producer-group
生产者
import org.apache.rocketmq.spring.core.RocketMQTemplate;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
/**
* @author admin
* @desc 测试
* @date 2026/2/2 22:11
*/
@RestController
public class DemoController {
@Resource
private RocketMQTemplate rocketMqTemplate;
@RequestMapping("/test")
public String test() {
rocketMqTemplate.convertAndSend("TopicTest", "test-message,发送了一条消息");
return "ok";
}
}
消费者
import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
import org.apache.rocketmq.spring.core.RocketMQListener;
import org.springframework.stereotype.Service;
/**
* @author admin
* @date 2026/2/2 22:28
*/
@Service
@RocketMQMessageListener(
topic = "TopicTest",
consumerGroup = "TopicTestGroup"
)
public class MQConsumerService implements RocketMQListener<String> {
/**
* 接收消息
*
* @param message message
*/
@Override
public void onMessage(String message) {
System.out.println("收到消息: " + message);
}
}
测试

组件版本清单
当前Spring Cloud 微服务组件版本清单
- JDK: 1.8
- MySQL: 8.0.33
- Nacos 2.2
- Spring Boot2.7.18
- Spring Cloud2021.0.9
- Spring Cloud Alibaba 2021.0.5.0
- Hutool5.8.25
- Lombok 1.18.26
- XxlJob2.5.0
- Hutool5.8.25
- Lombok 1.18.26
- RocketMQ 5.1.4