RocketMQTemplate 实战指南:从基础到高级应用

1. RocketMQTemplate入门指南

RocketMQTemplate是Spring生态为RocketMQ提供的消息发送模板工具,它封装了原生客户端的复杂操作,让消息发送变得像调用普通方法一样简单。我第一次接触这个工具是在一个电商项目中,当时需要实现订单创建后的异步通知功能,RocketMQTemplate的简洁API让我印象深刻。

1.1 环境搭建实战

在开始之前,我们需要完成基础环境配置。这里我推荐使用Spring Boot 2.7.x版本,它与RocketMQ的兼容性最好。Maven依赖配置如下:

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

配置文件application.yml的典型配置示例:

rocketmq:
  name-server: 127.0.0.1:9876
  producer:
    group: my-producer-group
    send-message-timeout: 3000
    retry-times-when-send-failed: 2

这里有个实际项目中的经验:当生产环境有多个NameServer时,建议用分号分隔地址,比如192.168.1.100:9876;192.168.1.101:9876。我曾经遇到过单NameServer节点故障导致消息发送失败的情况,多节点配置可以提高可用性。

1.2 基础消息发送三剑客

RocketMQTemplate提供了三种基础发送模式,我习惯称它们为"消息三剑客":

  1. 同步发送:最常用的方式,发送后会等待Broker返回结果
public SendResult sendOrderNotification(Order order) {
    return rocketMQTemplate.syncSend("order-topic", order);
}
  1. 异步发送:适合对实时性要求不高的场景
public void asyncSendLog(String logContent) {
    rocketMQTemplate.asyncSend("log-topic", logContent, new SendCallback() {
        @Override
        public void onSuccess(SendResult sendResult) {
            log.info("日志发送成功:{}", sendResult.getMsgId());
        }
        @Override
        public void onException(Throwable e) {
            log.error("日志发送失败", e);
        }
    });
}
  1. 单向发送:适用于不关心发送结果的场景,比如日志收集
public void sendLoginTrace(User user) {
    rocketMQTemplate.sendOneWay("logi
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值