**1.rocket mq的 ①what ②why ③where ④how
①rocket mq 是阿里参照kafka思想设计的用java代码来实现的一套消息中间件产品 主要是用于分布式场景下的服务之间的通信
② 因为rocket mq是异步通信 适用于那些只需发送请求而不需要响应的服务之间的通信 这样可以提高效率
③主要是用于分布式场景下 服务之间做异步通信时来使用的
④因为rocket可以由springboot来集成的 所以它基于注解 使用简单
2.rocket mq如何保证消息发送成功
一般都是用数据库配合着redis来解决的
首先就是把发送的id记录到数据库中 然后设置一个状态字段 0代表消息正在发送 1代表消费成功 为了防止突发情况的发生我们可以定义一个定时器 每隔5分钟去数据库跑批(批处理) 然后把状态为0的数据 再重新发送一遍消息 直到消费成功为止
3.RocketMQ消费消息失败的处理办法
首先定义一个ConsumeConcurrentlyStatus类
无法返回CONSUME_SUCCESS状态,消费失败的消息肯定需要放到另一个Topic中,让它一个人等着被再次消费 所以这时会有一个重试队列,用于暂时保存因为各种异常而导致Consumer端无法消费的消息,重试队列的名称是在原队列的名称前加上%RETRY%(这个Topic的重试队列是针对消费组,而不是针对每个Topic设置的)
RocketMQ对于重试消息的处理是先保存至Topic名称为“SCHEDULE_TOPIC_XXXX”的延迟队列中,后台定时任务按照对应的时间进行Delay后重新保存至“%RETRY%+consumerGroup”的重试队列中
整个消费失败流程如图所示

rocket mq的相关话术
最新推荐文章于 2025-06-23 23:01:17 发布
本文详细介绍了RocketMQ的基础概念、为何及如何使用,同时深入探讨了RocketMQ确保消息发送成功的机制及消费失败时的处理方法。
1171

被折叠的 条评论
为什么被折叠?



