2024年最全五分钟带你玩转rocketMQ(八)提升消息稳定性——重试,做了5年Java

最后

我还为大家准备了一套体系化的架构师学习资料包以及BAT面试资料,供大家参考及学习

已经将知识体系整理好(源码,笔记,PPT,学习视频)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

消费端模拟重试代码

@Component

public class MQConsumeMsgListenerProcessor implements MessageListenerConcurrently {

private static final Logger logger = LoggerFactory.getLogger(MQConsumeMsgListenerProcessor.class);

/**

  • 默认msgs里只有一条消息,可以通过设置consumeMessageBatchMaxSize参数来批量接收消息

  • 不要抛异常,如果没有return CONSUME_SUCCESS ,consumer会重新消费该消息,直到return CONSUME_SUCCESS

*/

@Override

public ConsumeConcurrentlyStatus consumeMessage(List msgs, ConsumeConcurrentlyContext context) {

if(CollectionUtils.isEmpty(msgs)){

logger.info(“接受到的消息为空,不处理,直接返回成功”);

return ConsumeConcurrentlyStatus.CONSUME_SUCCESS;

}

MessageExt messageExt = msgs.get(0);

logger.info(“接受到的消息为:”+messageExt.toString());

if(messageExt.getTopic().equals(“NewMessage”)){

if(messageExt.getTags().equals(“TagA”)){

//TODO 判断该消息是否重复消费(RocketMQ不保证消息不重复,如果你的业务需要保证严格的不重复消息,需要你自己在业务端去重)

SimpleDateFormat df = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);

System.out.printf(df.format(new Date()) + “, %s Receive New Messages: %s %n”, Thread.currentThread().getName(), msgs);

int reconsume = messageExt.getReconsumeTimes();

System.out.println(“重试的次数为”+reconsume);

return ConsumeConcurrentlyStatus.RECONSUME_LATER;

//TODO 获取该消息重试次数

//int reconsume = messageExt.getReconsumeTimes();

//if(reconsume ==3){//消息已经重试了3次,如果不需要再次消费,则返回成功

// //记录日志

// return ConsumeConcurrentlyStatus.CONSUME_SUCCESS;

//}

//TODO 处理对应的业务逻辑

最后

2020年在匆匆忙忙慌慌乱乱中就这么度过了,我们迎来了新一年,互联网的发展如此之快,技术日新月异,更新迭代成为了这个时代的代名词,坚持下来的技术体系会越来越健壮,JVM作为如今是跳槽大厂必备的技能,如果你还没掌握,更别提之后更新的新技术了。

更多JVM面试整理:

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

a57acb)收录**

需要这份系统化的资料的朋友,可以点击这里获取

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值