尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
顺序消息的异常与重试机制
顺序消息的重试和并发消息有很大不同异常处理情况 处理方式消费失败业务异常 返回 SUSPEND_CURRENT_QUEUE_A_MOMENT暂停当前 Queue 的消费等待重试重试次数 ≤ 最大重试次数 消息被重新投递再次消费重试次数 最大重试次数 投递到死信队列DLQ不再消费是否是否消费消息消费成功✅ 返回 SUCCESS继续下一条返回 SUSPEND_CURRENT_QUEUE_A_MOMENT暂停该 Queue 消费进入等待默认 1 秒重新投递该消息重试次数≤ 最大重试次数投递到死信队列跳过该消息继续后续消息顺序消息重试的关键特点阻塞后续消息一条消息消费失败该 Queue 后面的消息都会被阻塞直到这条消息被成功消费或进入 DLQ影响吞吐量因为阻塞机制顺序消息的吞吐量对单条消息的处理时间非常敏感最大重试次数默认 10 次并发消费默认 16 次可通过 consumer.setMaxReconsumeTimes() 调整顺序消息与并发消息的性能对比对比维度 并发消息 顺序消息线程模型 多线程并行 每个 Queue 单线程吞吐量 高充分利用 CPU 中受限于单线程串行延迟 低 中高单条失败会阻塞后续适用场景 大多数业务 需要严格顺序的场景推荐 Queue 数 Consumer 数量的 2-3 倍 尽量多提高并行度顺序消息吞吐量Queue 0单线程 中吞吐Queue 1单线程Queue 2单线程单条消息处理慢了整个 Queue 被拖慢并发消息吞吐量Queue 0线程池 高吞吐Queue 1Queue 2Queue 3性能差距量化在相同硬件条件下并发消息的 TPS 通常比顺序消息高 3-5 倍顺序消息中单条消息的处理时间直接影响整个 Queue 的吞吐量顺序消息的常见踩坑与规避踩坑 后果 规避措施使用默认的轮询队列选择器 相同业务 Key 的消息落到不同 Queue顺序被打乱 必须使用 MessageQueueSelector按 Key 哈希选 QueueConsumer 数量超过 Queue 数量 部分 Consumer 空闲浪费资源 Consumer 数 ≤ Queue 数建议 Consumer 数 Queue 数单条消息处理时间过长 整个 Queue 被阻塞吞吐量骤降 优化业务逻辑尽量缩短单条消息的处理时间如果必须长耗时考虑拆分或异步化消费异常返回 RECONSUME_LATER 阻塞后续消息影响效率 谨慎使用重试尽可能在业务层解决异常避免依赖重试Rebalance 频繁触发 顺序可能被短暂打断消息重复 稳定 Consumer 实例避免频繁上下线使用 AllocateMessageQueueAveragely 策略将顺序消息和并发消息混在同一 Group Rebalance 混乱顺序无法保证 分离 Group顺序消息使用独立的 Group解决方案常见踩坑❌ 队列选择器用错→ 顺序乱❌ Consumer Queue→ 资源浪费❌ 单条消息耗时过长→ 整体阻塞❌ 频繁 Rebalance→ 顺序中断✅ 用 MessageQueueSelector按 Key 哈希✅ Consumer 数 ≤ Queue 数✅ 优化业务逻辑异步化长任务✅ 稳定实例合理配置 Rebalance 参数十、延迟消息与定时消息延迟消息的概念与业务场景延迟消息是生产者发送消息时指定一个延迟时间消息在到达该时间后才被 Consumer 消费。它和普通消息的区别在于消息不是立即投递而是“预约”投递。典型业务场景场景 延迟时间 说明订单超时自动取消 30 分钟 下单后 30 分钟未支付自动取消订单定时提醒 1 天 预约明天上午 10 点的提醒重试调度 1s, 5s, 10s… 消费失败后延迟重试RocketMQ 内部已实现定时任务调度 固定时间 每天凌晨 2 点执行数据统计RocketMQ 延迟消息的等级机制18 个等级在 RocketMQ 4.x 及 5.x 早期版本中延迟消息基于预定义等级实现不支持任意时间延迟等级 1 2 3 4 5 6 7 8 9延迟 1s 5s 10s 30s 1m 2m 3m 4m 5m等级 10 11 12 13 14 15 16 17 18延迟 6m 7m 8m 9m 10m 20m 30m 1h 2h发送延迟消息Message msg new Message(“order_topic”, “订单内容”.getBytes());// 设置延迟等级为 3表示延迟 10 秒msg.setDelayTimeLevel(3);producer.send(msg);为什么使用等级机制内部通过 SCHEDULE_TOPIC_XXXX 的 18 个 Queue 来分别存储不同延迟等级的消息后台定时任务 ScheduleMessageService 扫描这些 Queue到时间后重新投递等级机制实现简单性能好但不够灵活延迟消息的存储与调度原理消费阶段调度阶段索引构建发送阶段设置 delayTimeLevel3写入ReputMessageService根据延迟等级定时扫描到达投递时间ProducerBrokerCommitLogConsumeQueueSCHEDULE_TOPIC_XXXXQueue 3ScheduleMessageService每个等级一个定时线程重新写入目标 Topic目标 Topic 的 ConsumeQueueConsumer 消费核心调度逻辑ScheduleMessageService 为每个延迟等级启动一个定时线程定时线程每隔固定时间默认 1 秒扫描对应的 Queue检查 ConsumeQueue 中的消息如果当前时间 ≥ 投递时间则从 CommitLog 中读取完整消息清除延迟属性重新写入目标 Topic 的 CommitLog 和 ConsumeQueue这样 Consumer 就能正常消费到这条消息延迟消息的消息重投与消费延迟消息的消费重试和普通消息完全一样基于 %RETRY% 重试队列。但有一个特殊点重试不会重置延迟。即消息第一次被消费失败后进入重试队列的重试延迟是独立的由重试队列的延迟等级决定和消息本身的延迟等级无关。
RELATED

相关推荐

基于C++的图像处理框架设计:从数据模型到高性能滤镜实现

基于C++的图像处理框架设计:从数据模型到高性能滤镜实现

1. 项目概述:为什么我们要自己造一个“小Photoshop”?做图像处理的朋友,尤其是用C做底层开发或者性能优化的,估计都想过一个问题:Photoshop这类商业软件功能强大,但它的内部到底是怎么运作的?那…

📅 2026/9/19 20:07:24
STM32实现高精度多通道PWM信号发生器设计

STM32实现高精度多通道PWM信号发生器设计

1. 项目背景与核心需求PWM(脉冲宽度调制)技术在现代电子系统中扮演着至关重要的角色。从电机调速到LED调光,从电源管理到音频合成,这项技术的应用几乎无处不在。传统专用PWM芯片如SG3525虽然简单易用,但在灵活性和功能…

📅 2026/9/12 15:03:56
Python流程判断核心技巧与工程实践

Python流程判断核心技巧与工程实践

1. Python流程判断基础解析在Python编程中,流程判断是控制程序执行路径的核心机制。作为一门解释型语言,Python通过简洁明了的语法结构实现了强大的逻辑控制能力。不同于其他语言使用大括号或end关键字来划分代码块,Python独创性地采用缩进来…

📅 2026/10/6 18:19:07
MORE NEWS

更多资讯

📰

电工证下板城有吗证全国通用吗

下板城有电工证吗?郑州报考避坑指南:从零到上岗全攻略 急需特种作业证才能上岗找工作,但“电工证下板城有吗”这个问题,成了不少想进入建筑、制造行业的打工人的最大心病。尤其是在郑州,劳务市场对电工证的要求越来越高,没有证连面试机会都没有。本文结…

📰

眉山如何考电工证良心建议:学历不高怕报不上名?别慌,照着做就能过!

眉山如何考电工证良心建议:学历不高怕报不上名?别慌,照着做就能过! 你是不是也担心自己学历不高,考不了电工证?其实真不是那么回事,别慌, 眉山如何考电工证 ,咱们一步步来, 良心建议 在这里,带你理清流程,避开坑。…

📰

建筑电工证培训题目怎么考?学历不高怕报不上名?官方报名入口全解析

建筑电工证培训题目怎么考?学历不高怕报不上名?官方报名入口全解析 你是不是也觉得, 学历不高怕报不上名 ?其实,建筑电工证考试并没有你想象得那么难,关键在于 找对官方报名入口…

📰

南昌高压电工证费用千万别踩坑 证书过期了不知道怎么复审延期

南昌高压电工证费用千万别踩坑 证书过期了不知道怎么复审延期 证书过期了不知道怎么复审延期?这事儿真的别踩坑,尤其是像高压电工证这种必须年年审核的证书,一旦过期就可能被认定为无证上岗,直接面临停工、罚款,甚至被吊销从业资格。咱们今天就从南昌高…

📰

电工证和机修证值不值得考?外省证怎么转过来

电工证和机修证值不值得考?外省证怎么转过来 之前考的证在外省能不能转过来?你是不是也在纠结电工证和机修证到底值不值得考?其实,这两个证在建筑、制造业、水利、电力等多个行业中是刚需,尤其是像郑州金水区这类水利工程从业者,证书更是找工作、升职加…

📰

长治报考电工证去哪里多久拿证全流程避坑指南

长治报考电工证去哪里多久拿证全流程避坑指南 你是不是也在为“长治报考电工证去哪里”这个问题头疼?报名渠道五花八门,线上线下的培训机构、中介、代办机构让人眼花缭乱,一不小心就可能被坑,不仅多花钱,还可能拿到假证,耽误了工作安排。最怕的是,…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬