springboot 整合rocketMQ,实现发送提醒消息

简介: springboot 整合rocketMQ,实现发送提醒消息

下面是如何在Spring Boot项目中整合RocketMQ并实现发送提醒消息的详细过程和关键代码。这个过程包括配置RocketMQ客户端,编写消息发送和接收的代码,以及一些基本的Spring Boot配置。

一、环境准备

  1. 下载并启动RocketMQ
  • 下载并解压RocketMQ的安装包。
  • 启动Name Server和Broker。
1. nohup sh mqnamesrv &
2. nohup sh mqbroker -n localhost:9876 &

 

添加Maven依赖: 在pom.xml文件中添加RocketMQ的依赖。

<dependencies>
    <dependency>
        <groupId>org.apache.rocketmq</groupId>
        <artifactId>rocketmq-spring-boot-starter</artifactId>
        <version>2.2.0</version>
    </dependency>
</dependencies>

二、配置文件

application.yml文件中添加RocketMQ的配置。

rocketmq:
  name-server: 127.0.0.1:9876
  producer:
    group: springboot-producer-group
  consumer:
    group: springboot-consumer-group
    topic: ReminderTopic

三、生产者代码

通过上述步骤,我们已经成功在Spring Boot项目中整合了RocketMQ,并实现了发送和接收提醒消息的功能。这个示例可以根据实际需求进一步扩展和优化,比如增加消息重试机制、消息过滤等功能。

创建消息发送服务

package com.example.rocketmq.producer;
 
import org.apache.rocketmq.spring.core.RocketMQTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
 
@Service
public class ReminderProducer {
 
    @Autowired
    private RocketMQTemplate rocketMQTemplate;
 
    public void sendReminder(String message) {
        rocketMQTemplate.convertAndSend("ReminderTopic", message);
    }
}

调用消息发送服务

package com.example.rocketmq.controller;
 
import com.example.rocketmq.producer.ReminderProducer;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
 
@RestController
public class ReminderController {
 
    @Autowired
    private ReminderProducer reminderProducer;
 
    @GetMapping("/sendReminder")
    public String sendReminder(@RequestParam String message) {
        reminderProducer.sendReminder(message);
        return "Reminder sent: " + message;
    }
}

四、消费者代码

创建消息接收服务

package com.example.rocketmq.consumer;
 
import org.apache.rocketmq.spring.annotation.MessageModel;
import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
import org.apache.rocketmq.spring.core.RocketMQListener;
import org.springframework.stereotype.Service;
 
@Service
@RocketMQMessageListener(topic = "ReminderTopic", consumerGroup = "springboot-consumer-group", messageModel = MessageModel.CLUSTERING)
public class ReminderConsumer implements RocketMQListener<String> {
 
    @Override
    public void onMessage(String message) {
        System.out.println("Received reminder: " + message);
        // 在这里处理接收到的提醒消息
    }
}

五、启动项目

通过Spring Boot的主程序启动项目

package com.example.rocketmq;
 
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
 
@SpringBootApplication
public class RocketMqApplication {
 
    public static void main(String[] args) {
        SpringApplication.run(RocketMqApplication.class, args);
    }
}

六、测试

  1. 启动Spring Boot应用。
  2. 访问http://localhost:8080/sendReminder?message=HelloRocketMQ发送提醒消息。
  3. 检查控制台输出,确认消费者接收到消息。

七、详细解析


配置文件:

rocketmq.name-server:指定RocketMQ Name Server的地址。

rocketmq.producer.group:指定生产者组的名称。

rocketmq.consumer.group:指定消费者组的名称。

rocketmq.consumer.topic:指定要消费的Topic。


消息发送服务:

RocketMQTemplate:Spring提供的RocketMQ模板类,用于发送消息。

convertAndSend方法:用于将消息对象转换为字符串并发送到指定的Topic。


消息接收服务:

RocketMQMessageListener注解:用于标记一个类为RocketMQ消息监听器。

onMessage方法:用于处理接收到的消息。

通过上述步骤,我们已经成功在Spring Boot项目中整合了RocketMQ,并实现了发送和接收提醒消息的功能。这个示例可以根据实际需求进一步扩展和优化,比如增加消息重试机制、消息过滤等功能。


相关实践学习
消息队列RocketMQ版:基础消息收发功能体验
本实验场景介绍消息队列RocketMQ版的基础消息收发功能,涵盖实例创建、Topic、Group资源创建以及消息收发体验等基础功能模块。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
4月前
|
前端开发 JavaScript Java
【实操】SpringBoot监听Iphone15邮件提醒,Selenium+Python自动化抢购脚本
本文介绍了一个结合SpringBoot和Python的实用功能,旨在监控iPhone 15的库存状态并通过邮件提醒用户。系统采用SpringBoot监听苹果官网API,解析JSON数据判断是否有货,并展示最近的库存记录。此外,还能自动触发Selenium+Python脚本实现自动化购买。文中详细介绍了技术栈、接口分析、邮件配置及自动化脚本的设置方法。该项目不仅适用于熟悉后端开发的人员,也适合回顾Layui和Jquery等前端技术。
55 0
【实操】SpringBoot监听Iphone15邮件提醒,Selenium+Python自动化抢购脚本
|
4月前
|
消息中间件 Java 网络架构
|
6月前
|
消息中间件 Java RocketMQ
消息队列 MQ产品使用合集之当SpringBoot应用因网络不通而启动失败时,该如何解决
消息队列(MQ)是一种用于异步通信和解耦的应用程序间消息传递的服务,广泛应用于分布式系统中。针对不同的MQ产品,如阿里云的RocketMQ、RabbitMQ等,它们在实现上述场景时可能会有不同的特性和优势,比如RocketMQ强调高吞吐量、低延迟和高可用性,适合大规模分布式系统;而RabbitMQ则以其灵活的路由规则和丰富的协议支持受到青睐。下面是一些常见的消息队列MQ产品的使用场景合集,这些场景涵盖了多种行业和业务需求。
|
4月前
|
消息中间件 Java 测试技术
消息中间件RabbitMQ---SpringBoot整合RabbitMQ【三】
这篇文章是关于如何在SpringBoot应用中整合RabbitMQ的消息中间件。内容包括了在SpringBoot项目中添加RabbitMQ的依赖、配置文件设置、启动类注解,以及如何通过单元测试来创建交换器、队列、绑定,并发送和接收消息。文章还介绍了如何配置消息转换器以支持对象的序列化和反序列化,以及如何使用注解`@RabbitListener`来接收消息。
消息中间件RabbitMQ---SpringBoot整合RabbitMQ【三】
|
4月前
|
网络协议 Java 物联网
MQTT(EMQX) - SpringBoot 整合MQTT 连接池 Demo - 附源代码 + 在线客服聊天架构图
MQTT(EMQX) - SpringBoot 整合MQTT 连接池 Demo - 附源代码 + 在线客服聊天架构图
870 2
|
4月前
|
小程序 Java API
springboot 微信小程序整合websocket,实现发送提醒消息
springboot 微信小程序整合websocket,实现发送提醒消息
|
4月前
|
消息中间件 Java Kafka
|
5月前
|
消息中间件 Java 测试技术
【RocketMQ系列八】SpringBoot集成RocketMQ-实现普通消息和事务消息
【RocketMQ系列八】SpringBoot集成RocketMQ-实现普通消息和事务消息
341 1
|
5月前
|
消息中间件 Java 数据安全/隐私保护
Spring Boot与RabbitMQ的集成
Spring Boot与RabbitMQ的集成
|
5月前
|
消息中间件 Java RocketMQ
Spring Boot与RocketMQ的集成
Spring Boot与RocketMQ的集成