开发者学堂课程【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(“消费者启动成功”);
以上编写完成后进行启动,控制台如图
显示消费者收到很多消息,是因为之前发送了很多消息,现在清除掉,再让生产者重新发送消息,结果如图
以上就是 Springboot 集成消费者的过程。
总结:
对于 Springboot 集成 RocketMQ 消费者,总体上也是四个操作,添加依赖基本与生产者相同,但是需要加入web模块。
编写配置文件基本与生产者相同。再编写启动类,最后编写消息监听器,使用监听器监听消息进行处理。
监听器监听什么主题的消息使用到 RocketMQMessageListener 注解去进行配置,此处消费者组名可以指定。
然后注册到 Springboot 容器中。完成后就可以启动启动类,启动类一旦启动,消息监听器就开始监听,一旦生产者发出消息,消费者就可以监听到。