一文搞懂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版的基础消息收发功能,涵盖实例创建、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月前
|
消息中间件 Java 网络架构
|
26天前
|
消息中间件 监控 Java
如何将Spring Boot + RabbitMQ应用程序部署到Pivotal Cloud Foundry (PCF)
如何将Spring Boot + RabbitMQ应用程序部署到Pivotal Cloud Foundry (PCF)
32 6
|
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 - 附源代码 + 在线客服聊天架构图
997 3
|
4月前
|
消息中间件 Java Maven
|
4月前
|
消息中间件 Java RocketMQ
微服务架构师的福音:深度解析Spring Cloud RocketMQ,打造高可靠消息驱动系统的不二之选!
【8月更文挑战第29天】Spring Cloud RocketMQ结合了Spring Cloud生态与RocketMQ消息中间件的优势,简化了RocketMQ在微服务中的集成,使开发者能更专注业务逻辑。通过配置依赖和连接信息,可轻松搭建消息生产和消费流程,支持消息过滤、转换及分布式事务等功能,确保微服务间解耦的同时,提升了系统的稳定性和效率。掌握其应用,有助于构建复杂分布式系统。
75 0
|
5月前
|
消息中间件 Java 测试技术
【RocketMQ系列八】SpringBoot集成RocketMQ-实现普通消息和事务消息
【RocketMQ系列八】SpringBoot集成RocketMQ-实现普通消息和事务消息
393 1
|
5月前
|
消息中间件 Java 数据安全/隐私保护
Spring Boot与RabbitMQ的集成
Spring Boot与RabbitMQ的集成
|
5月前
|
消息中间件 Java RocketMQ
Spring Boot与RocketMQ的集成
Spring Boot与RocketMQ的集成
|
2月前
|
消息中间件 JSON Java
开发者如何使用轻量消息队列MNS
【10月更文挑战第19天】开发者如何使用轻量消息队列MNS
107 7