Springboot 集成 Rocketmq 消费者|学习笔记

简介: 快速学习 Springboot 集成 Rocketmq 消费者

开发者学堂课程【RocketMQ 知识精讲与项目实战(第二阶段)Springboot 集成 Rocketmq 消费者】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/703/detail/12398


Springboot 集成 Rocketmq 消费者


内容介绍:

一、添加依赖

二、配置文件

三、启动类

四、消息监听器

本节继续开发 Rocketmq 的消费者。

开发消费者的步骤与生产者类似:添加依赖(此处依赖基本与生产者相同)、配置文件、启动类、消息监听器(对于消费者,不是发送而是消费消息,所以通过监听器进行消息监听进行消费)。

此处已经创建了一个消费者工程

springboot-rocketmq-consumer


一、添加依赖

先来添加依赖,三个依赖与生产者相同

<dependencies>

<!--添加web起步依赖>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-web</artifactId>

<dependency>

<groupId>org.apache.rocketmq</groupId>

<artifactId>rocketmq-spring-boot-starter</artifactId>

<version>${rocketmq-spring-boot-starter-version}</version>

</ dependency>

<dependency>

<groupId>org.projectlombok</groupId>

<artifactId>lombok</artifactId>

<version>1.18.6</version>

</ dependency>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-test</artifactId>

<scope>test</scope>

</dependency>

</dependencies>

对于消息的消费者,消费时应用不能停止即消费者的应用在启动后就一直处于运行状态,所以在依赖中还需要加入外部启动器。


二、配置文件

接着配置配置文件,创建 application.properties,配置属性:

# nameserver

rocketmq.name-server=192.168.25.135:9876;192.168.25.138:9876

#消费者组名

rocketmq. consumer.group=my-group


三、启动类

接着创建启动类

com.itheima.shop.springboot.rocketmq.Consumer

添加注释@SpringBootApplication

在代码public class ConsumerApplication{}中加入

public static void main(string[] args) {

springApplication.run(ConsumerApplication.class,args);

}


四、消息监听器

入口类写好后再创建消息监听器。

先来创建一个类 listener.Consumer,让该类变成监听器,要实现 RocketMQListener

修改代码

public class Consumer implements

RocketMQListener<String>{}

然后重写代码,在代码中输入

@Override

public void onMessage(String s){//onMessage参数类型就是上述指定的String

}

要让监听器起作用还需要在上方配置 RocketMQListener 注解:@RocketMQListener(topic=”springboot-rocketmq”,consumerGroup=”${rocketmq. consumer.group}”)

参数中还存在 consumeMode=consumeMode.CONCURRENTLY,但是暂时不需要修改,只需要使用默认。

至此就可以接收到主题 springboot-rocketmq 的消息,就可以进行打印

在代码

public class Consumer implements

RocketMQListener<String>{}中再添加

System.out.println(“接收到消息”+s);

编写完成后还有最后一步:当前监听器应该注册到容器中所以需要再加入注解@Component

注册完后打印日志当应用启动好后进行输出:

在 ConsumerApplication.java 中加入注解@Slf4j,并在代码 public static void main (String[] args){}中添加Log.info(“消费者启动成功”);

以上编写完成后进行启动,控制台如图

image.png

显示消费者收到很多消息,是因为之前发送了很多消息,现在清除掉,再让生产者重新发送消息,结果如图

image.png

以上就是 Springboot 集成消费者的过程。

总结:

对于 Springboot 集成 RocketMQ 消费者,总体上也是四个操作,添加依赖基本与生产者相同,但是需要加入web模块。

编写配置文件基本与生产者相同。再编写启动类,最后编写消息监听器,使用监听器监听消息进行处理。

监听器监听什么主题的消息使用到 RocketMQMessageListener 注解去进行配置,此处消费者组名可以指定。

然后注册到 Springboot 容器中。完成后就可以启动启动类,启动类一旦启动,消息监听器就开始监听,一旦生产者发出消息,消费者就可以监听到。

相关实践学习
RocketMQ一站式入门使用
从源码编译、部署broker、部署namesrv,使用java客户端首发消息等一站式入门RocketMQ。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
10天前
|
消息中间件 Java Kafka
Springboot集成高低版本kafka
Springboot集成高低版本kafka
|
17天前
|
NoSQL Java Redis
SpringBoot集成Redis解决表单重复提交接口幂等(亲测可用)
SpringBoot集成Redis解决表单重复提交接口幂等(亲测可用)
50 0
|
22天前
|
NoSQL Java Redis
SpringBoot集成Redis
SpringBoot集成Redis
159 0
|
29天前
|
NoSQL Java Redis
小白版的springboot中集成mqtt服务(超级无敌详细),实现不了掐我头!!!
小白版的springboot中集成mqtt服务(超级无敌详细),实现不了掐我头!!!
228 1
|
1月前
|
存储 安全 Java
Spring Boot整合Spring Security--学习笔记
Spring Boot整合Spring Security--学习笔记
52 0
|
1月前
|
XML Java 关系型数据库
【SpringBoot系列】SpringBoot集成Fast Mybatis
【SpringBoot系列】SpringBoot集成Fast Mybatis
|
1月前
|
消息中间件 Java
springboot整合消息队列——RabbitMQ
springboot整合消息队列——RabbitMQ
74 0
|
4天前
|
消息中间件 供应链 Java
RabbitMQ入门指南(九):消费者可靠性
RabbitMQ是一个高效、可靠的开源消息队列系统,广泛用于软件开发、数据传输、微服务等领域。本文主要介绍了消费者确认机制、失败重试机制、失败处理策略、业务幂等性等内容。
RabbitMQ入门指南(九):消费者可靠性
|
18天前
|
NoSQL Java Redis
SpringBoot集成Redis
SpringBoot集成Redis
41 1
|
21天前
|
消息中间件 Java RocketMQ
【深度挖掘 RocketMQ底层源码】「底层源码挖掘系列」抽丝剥茧贯穿RocketMQ的消费者端的运行核心的流程(Pull模式-下)
【深度挖掘 RocketMQ底层源码】「底层源码挖掘系列」抽丝剥茧贯穿RocketMQ的消费者端的运行核心的流程(Pull模式-下)
12 1