10springboot整合rocketmq实现延迟消息(代码片段)

java1234_小锋 java1234_小锋     2023-01-01     327

关键词:

延迟消息
对于消息中间件来说,producer 将消息发送到mq的服务器上,但并不希望这条消息马上被消费,而是推迟到当前时间节点之后的某个时间点,再将消息投递到 queue 中让 consumer 进行消费。

​ 延迟消息的使用场景很多,一种比较常见的场景就是在电商系统中,订单创建后,会有一个等待用户支付的时间窗口,一般为30分钟,30分钟后 customer 会收到这条订单消息,然后程序去订单表中检查当前这条订单的支付状态,如果是未支付的状态,则自动清理掉,这样就不需要使用定时任务的方式去处理了。

Rocket的延迟消息
RocketMQ 支持定时的延迟消息,但是不支持任意时间精度,仅支持特定的 level,例如定时 5s, 10s, 1m 等。其中,level=0 级表示不延时,level=1 表示 1 级延时,level=2 表示 2 级延时,以此类推。

messageDelayLevel=1s 5s 10s 30s 1m 2m 3m 4m 5m 6m 7m 8m 9m 10m 20m 30m 1h 2h

我们会发现,所有消息发送方法都有一个带int类型的delayLevel参数重载方法,这个就是设置延迟消息级别的参数。

同时注意,每个带delayLevel参数的方法,也同时带有long类型的timeout参数,这个是设置消息发送超时时间,默认是3秒,我们也可以自行设置;

同时还有 Message参数,如果发送这种类型的消息,可以携带具体的消息数据;

我们给下实例:

/**
 * 发送延迟消息
 */
public void sendDelayMessage()
	rocketMQTemplate.syncSend("java1234-rocketmq",MessageBuilder.withPayload("rocketmq延迟1秒消息").build(),3000,1);
	rocketMQTemplate.syncSend("java1234-rocketmq",MessageBuilder.withPayload("rocketmq延迟5秒消息").build(),3000,2);
	rocketMQTemplate.syncSend("java1234-rocketmq",MessageBuilder.withPayload("rocketmq延迟10秒消息").build(),3000,3);

运行测试:

说明:这个是锋哥的RocketMQ备课笔记,等备课完,会发布配套的视频教程,如有需要,可以先加锋哥WX:java1239 欢迎白嫖
没问题!

微信搜一搜公众号【java1234】关注这个放荡不羁的程序员,关注后回复【资料】有我准备的一线大厂笔试面试资料以及简历模板。

springboot整合rocketmq

...tMQ(2)---Docker部署RocketMQ集群这篇在上篇搭建好的基础上,将SpringBoot整合RocketMQ实现生产消费。GitHub地址: https://github.com/yudiandemingzi/spring-boot-study一、搭建步骤先说下技术大致架构SpringBoot2.1.6+Mav 查看详情

4springboot整合rocketmq实现消息发送和接收(代码片段)

我们使用主流的SpringBoot框架整合RocketMQ来讲解,使用方便快捷;最终项目结构如下:具体步骤如下:第一步:新建SpringBoot项目rocketmq-test,引入rocketmq依赖,以及项目配置<dependency> <groupId>org.apac... 查看详情

11springboot整合rocketmq实现事务消息(代码片段)

事务消息是RocketMQ提供的非常重要的一个特性,在4.x版本之后开源,可以利用事务消息轻松地实现分布式事务。RocketMQ在其消息定义的基础上,对事务消息扩展了两个相关的概念:Half(Prepare)Message——半消息(预处理... 查看详情

springboot实战项目整合阿里云rocketmq消息队列实现发送普通消息,延时消息(代码片段)

原文地址:Springboot实战项目整合阿里云RocketMQ消息队列实现发送普通消息,延时消息--附代码-学不会丶-博客园一.为什么选择RocketMQ消息队列?(可跳过看三的整合代码实例)首先RocketMQ是阿里巴巴自研出来的&#... 查看详情

9springboot整合rocketmq实现顺序消息(代码片段)

rocketmq默认发送的消息是进入多个消息队列,然后消费端多线程并发消费,所以默认情况,不是顺序消费消息的;有时候,我们需要实现顺序消费一批消息,比如电商系统,订单创建,支付,完... 查看详情

springboot整合rocketmq

参考技术A运行脚本org.apache.rocketmq.common.message.MessageExt属性说明: 查看详情

rocketmq(20)——整合springboot(代码片段)

整合SpringBootApacheRocketMQ提供了对SpringBoot的支持,目前最新的整合版本使用的是RocketMQ4.5.1版本,使用SpringBoot是2.0.5版本。整合SpringBoot需要引入rocketmq-spring-boot-starter依赖,目前最新版本是2.0.3。<dependency><groupId>org.apache.rock... 查看详情

rocketmq(20)——整合springboot(代码片段)

整合SpringBootApacheRocketMQ提供了对SpringBoot的支持,目前最新的整合版本使用的是RocketMQ4.5.1版本,使用SpringBoot是2.0.5版本。整合SpringBoot需要引入rocketmq-spring-boot-starter依赖,目前最新版本是2.0.3。<dependency><groupId>org.apache.ro 查看详情

12springboot整合rocketmq实现过滤消息-根据tag方式过滤消息(代码片段)

消息发送端只能设置一个tag,消息接收端可以设置多个tag。接收消息端通过‘||’设置多个tag,如下:tag1||tag2||tag3||…上实例,生产端发送三个消息,TAG分别是TAG1,TAG2,TAG3/***发送带Tag消息,测试根据Tag过滤消息*/... 查看详情

13springboot整合rocketmq实现过滤消息-根据sql表达式过滤消息(代码片段)

SQL表达式方式可以根据发送消息时输入的属性进行一些计算。RocketMQ的SQL表达式语法只定义了一些基本的语法功能。数字比较,如>,>=,<,<=,BETWEEN,=;字符比较,如:=&#x... 查看详情

rocketmq(二十四)整合springboot(代码片段)

1、官网RocketMQ为SpringBoot提供了整合方案,官网地址如下,上面提供了详细的整合步骤及案例。https://github.com/apache/rocketmq-spring官方详细文档(可以切换不同的版本)https://github.com/apache/rocketmq-spring/blob/release-2.0.1 查看详情

springboot整合rocketmq(代码片段)

项目环境jdk:1.8rocketmq:4.5.1springboot:2.6.3引入依赖<dependency><groupId>org.apache.rocketmq</groupId><artifactId>rocketmq-spring-boot-starter</artifactId>& 查看详情

7springboot整合rocketmq发送单向消息(代码片段)

发送单向消息是指producer向broker发送消息,执行API时直接返回,不等待broker服务器的结果。这种方式主要用在不特别关心发送结果的场景,举例:日志发送;RocketMQTemplate给我们提供了sendOneWay方法(有多个重载)&#... 查看详情

springboot实战项目整合阿里云rocketmq消息队列实现发送普通消息,延时消息(代码片段)

原文地址:Springboot实战项目整合阿里云RocketMQ消息队列实现发送普通消息,延时消息--附代码-学不会丶-博客园一.为什么选择RocketMQ消息队列?(可跳过看三的整合代码实例)首先RocketMQ是阿里巴巴自研出来的&#... 查看详情

8springboot整合rocketmq实现消费者广播模式和负载均衡模式(代码片段)

如上图,假如我们有多个消费者,消息生产者发送的消息,是每一个消费者都消费一次呢?还是通过一些机制,比如轮询机制,每个消息只被某一个消费者消费一次呢?这里涉及到消费者的消费模式... 查看详情

springboot2.x整合rocketmq4.x

开发生产者代码第一步:创建很普通的SpringBoot项目第二步:加入相关依赖<dependency><groupId>org.apache.rocketmq</groupId><artifactId>rocketmq-client</artifactId><version>4.3.0</version></ 查看详情

springboot整合rocketmq的各种消息类型,生产者,消费者(代码片段)

文章目录Springboot整合使用pom依赖yml整合使用同步消息消费者异步消息消费者单向消息消费者延时消息消费者顺序消息消费者sql92过滤消息消费者事物消息消费者@RocketMQMessageListener参数解释我的rocketmq各种集群方案安装Springboot... 查看详情

[原创]springboot整合rocketmq消息队列

参考技术A什么情况下的异步操作需要使用消息队列而不是多线程?StartNameServerStartBrokerWindows下安装RocketMq:https://www.jianshu.com/p/4a275e779afaRocketMq名词解释:https://my.oschina.net/javamaster/blog/2051703解释Push与Pull区别:https://www.jianshu.com/p/f0... 查看详情