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版
本实验将带您快速体验使用云消息队列RocketMQ版Serverless系列实例进行获取接入点、创建Topic、创建订阅组、收发消息、查看消息轨迹和仪表盘。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
Java Maven Docker
gitlab-ci 集成 k3s 部署spring boot 应用
gitlab-ci 集成 k3s 部署spring boot 应用
|
消息中间件 Java 调度
消息队列 MQ使用问题之消费者自动掉线是什么导致的
消息队列(MQ)是一种用于异步通信和解耦的应用程序间消息传递的服务,广泛应用于分布式系统中。针对不同的MQ产品,如阿里云的RocketMQ、RabbitMQ等,它们在实现上述场景时可能会有不同的特性和优势,比如RocketMQ强调高吞吐量、低延迟和高可用性,适合大规模分布式系统;而RabbitMQ则以其灵活的路由规则和丰富的协议支持受到青睐。下面是一些常见的消息队列MQ产品的使用场景合集,这些场景涵盖了多种行业和业务需求。
|
消息中间件 监控 Java
您是否已集成 Spring Boot 与 ActiveMQ?
您是否已集成 Spring Boot 与 ActiveMQ?
405 0
|
消息中间件 存储 负载均衡
我服了,RocketMQ消费者负载均衡内核是这样设计的
文章为理解RocketMQ的负载均衡机制提供了深入的技术洞察,并对如何在实际应用中扩展和定制负载均衡策略提供了有价值的见解。
我服了,RocketMQ消费者负载均衡内核是这样设计的
|
消息中间件 Java Maven
|
消息中间件 存储 负载均衡
RocketMQ消费者消费消息核心原理(含长轮询机制)
这篇文章深入探讨了Apache RocketMQ消息队列中消费者消费消息的核心原理,特别是长轮询机制。文章从消费者和Broker的交互流程出发,详细分析了Push和Pull两种消费模式的内部实现,以及它们是如何通过长轮询机制来优化消息消费的效率。文章还对RocketMQ的消费者启动流程、消息拉取请求的发起、Broker端处理消息拉取请求的流程进行了深入的源码分析,并总结了RocketMQ在设计上的优点,如单一职责化和线程池的使用等。
RocketMQ消费者消费消息核心原理(含长轮询机制)
|
消息中间件 缓存 Java
RocketMQ - 消费者消费方式
RocketMQ - 消费者消费方式
641 0
|
消息中间件 RocketMQ
RocketMQ - 消费者进度保存机制
RocketMQ - 消费者进度保存机制
262 0
|
消息中间件 RocketMQ
RocketMQ - 消费者Rebalance机制
RocketMQ - 消费者Rebalance机制
346 0