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

rocketMQTemplate.syncSend()发送一个11分钟的延迟消息

使用 rocketMQTemplate.syncSend() 发送延迟消息很方便,但需要注意 RocketMQ 的延迟消息级别是固定的,并不直接支持任意时长。默认情况下,没有正好 11 分钟的级别,最接近的是 10 分钟(级别14)和 20 分钟(级别15)。不过,你可以通过修改 Broker 配置来自定义延迟级别。

下面是一个延迟级别和对应时间的表格,方便你直观了解:

延迟级别 (delayLevel)延迟时间对应队列ID
1 1秒 queue0
2 5秒 queue1
3 10秒 queue2
4 30秒 queue3
5 1分钟 queue4
6 2分钟 queue5
7 3分钟 queue6
8 4分钟 queue7
9 5分钟 queue8
10 6分钟 queue9
11 7分钟 queue10
12 8分钟 queue11
13 9分钟 queue12
14 10分钟 queue13
15 20分钟 queue14
16 30分钟 queue15
17 1小时 queue16
18 2小时 queue17
表:RocketMQ 默认延迟级别与时间对应关系123

🛠️ 实现11分钟延迟消息

要实现11分钟的延迟消息,你有以下两种方案。

方案一:使用最接近的默认级别(简单但不够精确)

如果对时间精度要求不是非常严格,可以选择最接近的级别。10分钟(级别14)或20分钟(级别15)是默认选项。发送10分钟延迟消息的代码如下:

// 设置消息目的地(Topic)和消息内容
String destination = "YourTopicName";
String message = "YourMessageContent";// 发送延迟消息(级别14对应10分钟)
SendResult sendResult = rocketMQTemplate.syncSend(destination,MessageBuilder.withPayload(message).build(),5000, // 发送超时时间,单位毫秒14   // 延迟级别:14 对应 10分钟
);

方案二:修改Broker配置自定义级别(精确但需运维)

若业务要求精确的11分钟,需要修改RocketMQ Broker的配置文件。

  1. 修改Broker配置文件:找到Broker的配置文件(通常是 broker.conf),修改或添加 messageDelayLevel 参数。例如,在原有级别中加入11m:

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

     

    注意:新级别的顺序很重要,它决定了对应的延迟级别数字。例如,11m 在上述配置中将是第15级4。

  2. 重启Broker服务:修改配置后必须重启Broker服务才能生效。

  3. 使用自定义的延迟级别:配置生效后,11分钟对应新的延迟级别(例如第15级),代码中只需传入对应的级别数字即可。

    // 假设11m是第15个级别
    SendResult sendResult = rocketMQTemplate.syncSend(destination,MessageBuilder.withPayload(message).build(),5000,15 // 使用自定义配置中11分钟对应的延迟级别
    );

     

  • 延迟时间非任意设置:RocketMQ不支持任意时间的延迟,只能使用预设的延迟级别34。

  • 延迟精度:延迟消息的实际投递时间可能存在几秒的误差4,这是由其扫描机制决定的。

  • 避免延迟时间为0:切勿将延迟级别设置为0,这可能导致消息类型校验失败并抛出异常7。

  • 消息大量堆积的影响:如果将大量延迟消息的定时时间设置为同一时刻,则到达该时刻后会有大量消息同时需要被处理,会造成系统压力过大,导致消息分发延迟,影响定时精度3。

  • 性能考量:高并发的延迟消息会增加Broker的CPU负载4。

💎 如何选择?

  • 如果业务要求不高,选择最接近的默认级别(10分钟)是最快最简单的方式。

  • 如果业务要求精确的11分钟,并且你有权限修改Broker配置,那么自定义延迟级别是合适的方案。记得测试修改配置后的Broker运行情况。

http://www.sczhlp.com/news/62378/

相关文章:

  • pc端网站建设电话无锡新闻最新消息今天
  • 南京做网站需要多少钱个人网站备案名字不同
  • 网站 logfiles凡科做的网站可以在百度搜到吗
  • 云服务器如何安装网站厦门做英文网站
  • 10 个你今天就应该开始使用的全新 Git 命令
  • 怎么自己给自己的网站做推广特产网站开发的好处
  • 昆山网页网站制作江苏建筑工程网
  • 淘宝客优惠券的网站是怎么做的沈阳有什么服务网站
  • 四川住房建设厅网站首页网站建设工作分工
  • 海天建设集团公司网站企业建站一条龙
  • 包头哪里做网站沙坪坝网站建设
  • 网站规划的原则有做网站视频一般上传到哪里
  • 建设部项目经理认证网站网站开发服务税率是多少
  • 创建全国文明城市工作方案wordpress站群 优化
  • 公司建立网站的意义广东网站备案
  • 网站建设托管模式网站开发需求分析包括什么
  • 做钢材的都用什么网站工作简历模板电子版免费
  • 台州网站seo外包保定模板建站定制网站
  • 有口碑的南通网站建设张家港网站推广优化
  • 做问卷赚钱的网站广告素材网
  • 微信群公告如何做网站链接住房城乡建设部执业资格注册中心网站
  • 怎样制作购物网站 微信转发天天seo站长工具
  • 美国政府禁止使用觉醒AI技术新规
  • 揭秘Anubis:深度解析FIN7最新Python后门的隐匿技术
  • 快速跑通YOLO入门项目——口罩检测
  • 回溯专题其五(棋盘篇)
  • 四川建设厅报名网站电脑培训班电脑培训学校
  • 建单页网站网站设计师接单
  • 做网站一般链接什么数据库电子商务公司图片
  • 棕色网站产品宣传短视频制作