一文搞懂Spring Boot整合RocketMQ

简介: 一文搞懂Spring Boot整合RocketMQ

8 Spring Boot整合RocketMQ

8.1 Maven依赖

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

8.2 配置文件

server:
  port: 0
rocketmq:
  name-server: 127.0.0.1:9876
  producer:
    group: my_mq_one  # 指定组名 必要参数
8.3 生产者代码
/**
 * @desc: 消息生产者
 * @author: YanMingXin
 * @create: 2021/9/15-12:20
 **/
@Service
public class MessageProvider {
    /**
     * 注入RocketMQTemplate
     */
    @Autowired
    private RocketMQTemplate rocketMQTemplate;
    /**
     * 发送普通消息
     *
     * @param message
     * @return
     */
    public boolean sendMessage(String message) {
        rocketMQTemplate.convertAndSend("Topic1:TagA", message);
        return true;
    }
    /**
     * 发送Spring的消息
     *
     * @param message
     * @return
     */
    public boolean sendSpringMessage(String message) {
        rocketMQTemplate.send("Topic1:TagA", MessageBuilder.withPayload(message).build());
        return true;
    }
    /**
     * 发送异步消息
     *
     * @param message
     * @return
     */
    public boolean sendAsyncMessage(String message) {
        //发送异步消息
        rocketMQTemplate.asyncSend("Topic1:TagA", message, new SendCallback() {
            @Override
            public void onSuccess(SendResult sendResult) {
                //发送成功
                return;
            }
            @Override
            public void onException(Throwable throwable) {
                //发送失败
                return;
            }
        });
        return true;
    }
    /**
     * 发送顺序消息
     * 注:需要加上synchronized,消费者多线程下会不保证顺序
     *
     * @param list
     * @return
     */
    public synchronized boolean sendAscMessage(List<String> list) {
        for (String str : list) {
            //发送顺序消息
            rocketMQTemplate.syncSendOrderly("Topic1", str, str + "hash");
        }
        return true;
    }
}
8.4 消费者代码
/**
 * @desc: 消息消费者
 * @author: YanMingXin
 * @create: 2021/9/15-12:20
 **/
@RocketMQMessageListener(topic = "Topic1", consumerGroup = "my_mq_consumer_one")
public class MessageConsumer implements RocketMQListener<String> {
    @Override
    public void onMessage(String s) {
        System.out.println("Get message is " + s);
    }
}

8.5 测试

@SpringBootTest
class RocketmqSpringBootApplicationTests {
    @Autowired
    private MessageProvider provider;
    @Test
    void contextLoads() {
        provider.sendMessage("Hello World");
        provider.sendSpringMessage("Hello World By Spring");
        provider.sendAsyncMessage("Hello World Async Message");
        List<String> strings = Arrays.asList("A", "B", "C");
        provider.sendAscMessage(strings);
    }
}

测试结果:

相关实践学习
快速体验阿里云云消息队列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
相关文章
|
7月前
|
消息中间件 Ubuntu Java
SpringBoot整合MQTT实战:基于EMQX实现双向设备通信
本教程指导在Ubuntu上部署EMQX 5.9.0并集成Spring Boot实现MQTT双向通信,涵盖服务器搭建、客户端配置及生产实践,助您快速构建企业级物联网消息系统。
2547 1
|
7月前
|
消息中间件 Java Kafka
消息队列比较:Spring 微服务中的 Kafka 与 RabbitMQ
本文深入解析了 Kafka 和 RabbitMQ 两大主流消息队列在 Spring 微服务中的应用与对比。内容涵盖消息队列的基本原理、Kafka 与 RabbitMQ 的核心概念、各自优势及典型用例,并结合 Spring 生态的集成方式,帮助开发者根据实际需求选择合适的消息中间件,提升系统解耦、可扩展性与可靠性。
485 1
消息队列比较:Spring 微服务中的 Kafka 与 RabbitMQ
|
7月前
|
消息中间件 存储 Java
RabbitMQ 和 Spring Cloud Stream 实现异步通信
本文介绍了在微服务架构中,如何利用 RabbitMQ 作为消息代理,并结合 Spring Cloud Stream 实现高效的异步通信。内容涵盖异步通信的优势、RabbitMQ 的核心概念与特性、Spring Cloud Stream 的功能及其与 RabbitMQ 的集成方式。通过这种组合,开发者可以构建出具备高可用性、可扩展性和弹性的分布式系统,满足现代应用对快速响应和可靠消息传递的需求。
393 2
RabbitMQ 和 Spring Cloud Stream 实现异步通信
|
11月前
|
消息中间件 缓存 NoSQL
基于Spring Data Redis与RabbitMQ实现字符串缓存和计数功能(数据同步)
总的来说,借助Spring Data Redis和RabbitMQ,我们可以轻松实现字符串缓存和计数的功能。而关键的部分不过是一些"厨房的套路",一旦你掌握了这些套路,那么你就像厨师一样可以准备出一道道饕餮美食了。通过这种方式促进数据处理效率无疑将大大提高我们的生产力。
339 32
|
10月前
|
监控 安全 Java
Java 开发中基于 Spring Boot 3.2 框架集成 MQTT 5.0 协议实现消息推送与订阅功能的技术方案解析
本文介绍基于Spring Boot 3.2集成MQTT 5.0的消息推送与订阅技术方案,涵盖核心技术栈选型(Spring Boot、Eclipse Paho、HiveMQ)、项目搭建与配置、消息发布与订阅服务实现,以及在智能家居控制系统中的应用实例。同时,详细探讨了安全增强(TLS/SSL)、性能优化(异步处理与背压控制)、测试监控及生产环境部署方案,为构建高可用、高性能的消息通信系统提供全面指导。附资源下载链接:[https://pan.quark.cn/s/14fcf913bae6](https://pan.quark.cn/s/14fcf913bae6)。
2109 0
|
消息中间件 监控 Java
如何将Spring Boot + RabbitMQ应用程序部署到Pivotal Cloud Foundry (PCF)
如何将Spring Boot + RabbitMQ应用程序部署到Pivotal Cloud Foundry (PCF)
378 6
|
消息中间件 Java 测试技术
消息中间件RabbitMQ---SpringBoot整合RabbitMQ【三】
这篇文章是关于如何在SpringBoot应用中整合RabbitMQ的消息中间件。内容包括了在SpringBoot项目中添加RabbitMQ的依赖、配置文件设置、启动类注解,以及如何通过单元测试来创建交换器、队列、绑定,并发送和接收消息。文章还介绍了如何配置消息转换器以支持对象的序列化和反序列化,以及如何使用注解`@RabbitListener`来接收消息。
消息中间件RabbitMQ---SpringBoot整合RabbitMQ【三】
|
消息中间件 Java Maven