RocketMQ入坑指南(五):SpringBoot集成RocketMQ和具体使用方式

前言

经过前面几部分的教程,大家应该已经对RocketMQ有了一个全面的认识,建议仔细阅读前几章的内容,可以更好的理解这次的内容,接下来,我们通过代码来演示一下SpringBoot如何集成并使用RocketMQ发送消息

一、SpringBoot集成RocketMQ

集成很简单,只需要导入RocketMQ的starter包即可

<dependency>
  <groupId>org.apache.rocketmq</groupId>
  <artifactId>rocketmq-spring-boot-starter</artifactId>
  <version>2.2.1</version>
</dependency>
// 工具类方便打印信息
<dependency>
  <groupId>cn.hutool</groupId>
  <artifactId>hutool-all</artifactId>
  <version>5.8.12</version>
</dependency>

在配置文件中配置相关参数

生产者

# 应用服务 WEB 访问端口
server:
  port: 8088
rocketmq:
# 多个nameserver用分号隔开
  name-server: 192.168.0.8:9876
  #生产者
  producer:
    # 生产者组名
    group: producer_group
    # 异步发送消息的重试次数
    retry-times-when-send-async-failed: 5

消费者:

# 应用服务 WEB 访问端口
server:
  port: 8081
rocketmq:
# 多个nameserver用分号隔开
  name-server: 192.168.0.8:9876
  # 消费者
  consumer:
    # 组名
    group: consumer_group
    # 消息模式 集群模式
    message-model: CLUSTERING
spring:
  application:
    name: consumer

二、发送普通消息

1.同步发送消息

同步消息是指消息发送方发出一条消息后,会在收到服务端返回响应之后才发下一条消息的通讯方式。

2.异步发送消息

异步消息是指发送方发出一条消息后,不等服务端返回响应,接着发送下一条消息的通讯方式。RocketMQ 异步发送,需要实现异步发送回调接口(SendCallback)。消息发送方在发送了一条消息后,不需要等待服务端响应即可发送第二条消息,发送方通过回调接口接收服务端响应,并处理响应结果。

3.单步发送消息

发送⽅只负责发送消息,不等待服务端返回响应且没有回调函数触发,即只发送请求不等待应答。

具体代码如下:

生产者:

import cn.hutool.core.date.DateUtil;
import org.apache.rocketmq.client.producer.SendCallback;
import org.apache.rocketmq.client.producer.SendResult;
import org.apache.rocketmq.spring.core.RocketMQTemplate;
import org.springframework.messaging.support.MessageBuilder;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;
import java.util.Date;

@RestController
@RequestMapping("/rocketmq")
public class ProducerController {

    @Resource
    private RocketMQTemplate rocketMQTemplate;

    /**
     * 发送普通消息
     * @return
     */
    @RequestMapping("/testNormalMessage")
    public String testNormalMessage() throws Exception{
        //发送10条消息
        for (int i = 1; i <= 10; i++) {
            String msg = "这是第"+i+"个订单";
            //普通同步消息
            rocketMQTemplate.syncSend("TopicOrder",MessageBuilder.withPayload("同步消息
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员的小黑板

请作者喝一杯咖啡吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值