当前位置: 首页 > news >正文

RocketMQ延迟消息机制

架构设计

延迟级别(Delay Level) 

RocketMQ 通过预定义的延迟级别来实现延迟消息。每个延迟级别对应一个固定的延迟时间。

 

消息存储和处理

  • 当消息到达 broker 后,如果设置了延迟级别,broker 将不会立即将消息投递到消费队列中,而是将其存储在特定的延迟队列中。
  • RocketMQ 的 broker 定时任务会检查延迟队列中消息的时间,当消息到达指定的延迟时间后,broker 会将消息存入实际的消费队列中以供消费者消费。

示例代码

import org.apache.rocketmq.client.producer.DefaultMQProducer;
import org.apache.rocketmq.common.message.Message;public class DelayedMessageProducer {public static void main(String[] args) throws Exception {// 创建生产者实例DefaultMQProducer producer = new DefaultMQProducer("example_producer_group");producer.setNamesrvAddr("localhost:9876");// 启动生产者producer.start();// 创建消息,并指定主题Message msg = new Message("TopicTest", "TagA", "OrderID001", "Hello RocketMQ".getBytes());// 设置延迟级别msg.setDelayTimeLevel(3); // 表示延迟 10 秒 (根据 delay level 3)// 发送消息producer.send(msg);// 关闭生产者producer.shutdown();}
}


http://www.mrgr.cn/news/68471.html

相关文章:

  • 深入理解 Git 及其工具的用途、使用方法与区别
  • Java中的远程方法调用——RPC详解
  • 多个服务器共享同一个Redis Cluster集群,并且可以使用Redisson分布式锁
  • 【日志】力扣125.验证回文串
  • go 集成go-redis 缓存操作
  • 数据结构(C语言版)-1.线性表
  • 【Android 系统中使用CallStack类来追踪获取和操作调用栈信息】
  • windows server和sqlserver的版本更新
  • 扩展坞映射名称
  • MySQL DATETIME 和 DATE
  • linux基础理解和使用 iptables 防火墙
  • AssertionError: weight model.layers.0.self_attn.q_proj.weight does not exist
  • 十七:Spring Boot (2)-- spring-boot-starter-web 依赖详解
  • godot--自定义边框/选中时样式 StyleBoxTexture
  • 项目管理必备的5款项目管理软件
  • 海南华志亿星电子商务有限公司赋能抖音商家成长
  • 一款绘制3D架构图的在线神器,iCraft Editor
  • redis 原理篇 21 网络模型 IO多路复用 poll
  • 探索呼叫中心的奥秘:从基础到前沿进展
  • redis 原理篇 25 网络模型 信号驱动IO 及 异步IO
  • wordpress搬家迁移后怎么修改数据库用户名
  • TEMU测评:在挑战与机遇中寻求突破
  • 2024 信友队 noip 冲刺 10.8
  • Instagram 青少年账户:安全新升级
  • 第七部分:1. STM32之ADC实验--单通道实验(滑动变阻器调节电压)
  • ChronoUnit.DAYS.between()计算两个日期或时间之间的天数差