这里写自定义目录标题
一、安装
1、本体
-
前往官方网站下载最新版本
-
解压后配置环境变量


-
跳转至bin目录下,双击运行“mqnamesrv.cmd”来启动“nameserver”服务

-
在当前目录下使用命令启动“broker”服务,“autoCreateTopicEnable=true”使其可以自动注册主题,否则需要手动创建。如果没有自动创建,而且发送时没有对应的主题,则会报错无法发送信息
start mqbroker.cmd -n nameserver地址:9876 autoCreateTopicEnable=true
2、可视化控制台
- 前往gitHub下载控制台代码地址
- 解压缩后进入到“rocketmq-console”项目的配置文件路径下
rocketmq-externals\rocketmq-console\src\main\resources
- 修改配置文件,控制台端口号和“nameserver”的地址。其中“nameserver”地址可以不写,在启动控制台后再配置

- 跳转到“rocketmq-console”项目的根目录,执行“maven”的打包命里
mvn clean package -Dmaven.test.skip=true
- 跳转到根目录下的“target”目录,运行打包好的jar包
- 打开网页查看控制台

二、Springboot项目
1、普通消息
消息发送端
- 添加依赖,版本号可以到maven仓库中查找

- 添加配置

- 普通使用

消息接收端
- 添加依赖

- 编写配置

- 创建普通监听类

2、带有事务的消息
流程

发送端/服务端
- 使用“sendMessageInTransaction”方法发送消息

- 创建本地事务执行类

1)类需要实现“RocketMQLocalTransactionListener”接口,并重写两个方法。添加“@RocketMQTransactionListener”注解。
2)“RocketMQLocalTransactionState”有三个值,为COMMIT(发送)、ROLLBACK(回滚)、UNKONW(不清楚),当返回值为“COMMIT”时,消息才会发送给客户端
3)回调方法在对应流程中的第五步
接收端/客户端
和正常的一样,无任何变化
3、使用stream发送
1)默认模式发送(单通道)
发送端
- 添加依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-stream-rocketmq</artifactId>
</dependency>
-
书写配置

-
添加注解:注解中的Class类为“Source”

-
编写发送代码

消费端
- 引入依赖,和发送端的相同
- 书写配置

- 添加注解:注解中的Class类为“Sink”

- 编写消费代码:消费类需要添加“@Component”和“@StreamListener”注解
“@StreamListener”的“value”值得含义为,“channel”通道名

2)自定义通道发送
发送端
- 引入依赖和默认相同
- 创建自定义通道,发送端的注解为“@Output”

- 编写配置

- 添加注解

- 编写发送代码,引用你的通道类,通过该通道发送消息

消费端
- 引入依赖,相同
- 创建消费端的通道类,消费端的注解为“@Input”

- 编写配置,多个消费端的通道的组名不能相同

- 添加注解

- 创建消费类

生产端和消费端的差别
- 生产端的组在配置文件中添加,消费端的组在类的注解中添加
- 如果发送带有事务的消息,生产端需要额外编写本地事务的处理代码,消费端不需要任何改变
stream发送
- 发送端的默认类为“Source”,消费端的默认类为“Sink”
- 发送端的固定搭配为
@Output(通道名)
MessageChannel output()
- 消费端的固定搭配为
@Input(通道名)
SubScribableChannel input()
- 如何分辨“input”和“output”,以服务为主体,向外发送消息时使用“output”,接收消息使用“input”
- 发送端配置中无需添加组名,消费端的组名一定要有
RocketMQ 实战:从安装到SpringBoot应用
本文详细介绍了RocketMQ的安装过程,包括下载、配置环境变量、启动服务等步骤,并提供了可视化控制台的搭建指南。接着,讲解了SpringBoot项目中使用RocketMQ发送和接收普通消息、事务消息以及使用Stream发送消息的方法,包括配置、依赖添加及代码示例。此外,还对比了生产端和消费端的差异,以及Stream发送的默认模式和自定义通道的使用。
4472

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



