springboot集成RocketMQ过程及使用示例详解

2023-08-06 0 700

目录

1、 说明

Springboot集成RocketMQ时需要特别注意版本问题,否则会出现各类启动报错问题,这里使用的springboot 版本:2.2.7.RELEASE, RocketMq版本:2.2.3

2、集成过程

pom文件引用

这里网上有单独在引用rocketmq-client依赖包的,是不需要的,已经包含在rocketmq-spring-boot-starter依赖包中。

 <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.7.RELEASE</version>
    </parent>
 <dependency>
      <groupId>org.apache.rocketmq</groupId>
      <artifactId>rocketmq-spring-boot-starter</artifactId>
      <version>2.1.1</version>
 </dependency>

yml文件配置

spring:
  # 数据库信息
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/longfamily?useUnicode=true&characterEncoding=utf-8&userSSL=false
    username: root
    password: 123456
##RocketMq配置
rocketmq:
  #nameservice服务器地址(多个以英文逗号隔开)
 # 注意高版本下使用的是name-server,低版本使用的是 nameServer。
  name-server: 10.0.164.31:9876
  producer:
    group: test

这里把spring配置也贴出来,是想说明rocketMq与spring在yaml文件中是同一级别(容易当成spring节点下面的子节点)。否则会启动报错。

消费者

@Component
@RocketMQMessageListener(consumerGroup = \"H\", topic = RocketMQTopic.TOPIC_ORDER)
public class TestMQListener implements RocketMQListener<String> {
    @Override
    public void onMessage(String message) {
        System.out.println(\"消费者收到信息:===\"+message);
    }
}

消费者是通过RocketMQMessageListener来监听Topc, 通过实现RocketMQListener <T>接口实现其onMessage(T t)方法来处理接收到的消息

生产者

这里同意封装了RocketMQ发送消息的工具类。

@Slf4j
@Component
public class RocketMQUtils {
    @Resource
    private RocketMQTemplate rocketMQTemplate;
    /**
     * 异步发送MQ消息
     */
    public void sendMessage(Long id, final String topic, final String context, Boolean isExternal) {
        try {
            log.debug(\"Sending message to MQ topic {}, context {}\", topic, context);
            SendCallback callback = new SendCallback() {
                @Override
                public void onSuccess(SendResult sendResult) {
                    //打印msgId用来以备查验,外部消息发送mq成功则任务置为成功
                    log.info(\"Success sending message to MQ: {}, context: {}, msgId: {}\", topic, context, sendResult.getMsgId());
                }
                @Override
                public void onException(Throwable e) {
                    log.error(\"Failed to send message to MQ {}, msg {}, cause {}\", topic, context, Throwables.getStackTraceAsString(e));
                }
            };
            rocketMQTemplate.asyncSend(topic, context, callback);
        } catch (Exception e) {
            log.error(\"Failed to send message to MQ! message: {}, stackTrace: {}\", context, Throwables.getStackTraceAsString(e));
        }
    }
}

测试发送消息接口

@RestController
@RequestMapping(\"/api/test\")
public class CommonTestController {
    @Autowired
    private RocketMQUtils rocketMQUtils;
    // mq
    @PostMapping(\"/mq/send\")
    public void operateRocketMQ(){
        rocketMQUtils.sendMessage(1L, RocketMQTopic.TOPIC_ORDER,\"firstContext\",true);
    }

运行结果

[2023-02-27 10:17:30.741] [DEBUG] [T:http-nio-8061-exec-3][tid=][Class:c.g.c.u.RocketMQUtils -> sendMessage]|Sending message to MQ topic topic-order, context firstContext
[2023-02-27 10:17:30.760] [INFO] [T:NettyClientPublicExecutor_2][tid=][Class:c.g.c.u.RocketMQUtils -> onSuccess]|Success sending message to MQ: topic-order, context: firstContext, msgId: 0000010169EE18B4AAC2881AB17B0001
消费者收到信息:===firstContext

以上就是springboot集成RocketMQ过程及使用示例详解的详细内容,更多关于springboot集成RocketMQ的资料请关注其它相关文章!

资源下载此资源下载价格为1小猪币,终身VIP免费,请先
由于本站资源来源于互联网,以研究交流为目的,所有仅供大家参考、学习,不存在任何商业目的与商业用途,如资源存在BUG以及其他任何问题,请自行解决,本站不提供技术服务! 由于资源为虚拟可复制性,下载后不予退积分和退款,谢谢您的支持!如遇到失效或错误的下载链接请联系客服QQ:442469558

:本文采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可, 转载请附上原文出处链接。
1、本站提供的源码不保证资源的完整性以及安全性,不附带任何技术服务!
2、本站提供的模板、软件工具等其他资源,均不包含技术服务,请大家谅解!
3、本站提供的资源仅供下载者参考学习,请勿用于任何商业用途,请24小时内删除!
4、如需商用,请购买正版,由于未及时购买正版发生的侵权行为,与本站无关。
5、本站部分资源存放于百度网盘或其他网盘中,请提前注册好百度网盘账号,下载安装百度网盘客户端或其他网盘客户端进行下载;
6、本站部分资源文件是经压缩后的,请下载后安装解压软件,推荐使用WinRAR和7-Zip解压软件。
7、如果本站提供的资源侵犯到了您的权益,请邮件联系: 442469558@qq.com 进行处理!

猪小侠源码-最新源码下载平台 Java教程 springboot集成RocketMQ过程及使用示例详解 http://www.20zxx.cn/806544/xuexijiaocheng/javajc.html

猪小侠源码,优质资源分享网

常见问题
  • 本站所有资源版权均属于原作者所有,均只能用于参考学习,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担
查看详情
  • 最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,建议提前注册好百度网盘账号,使用百度网盘客户端下载
查看详情

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务