范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

RocketMQ如何用死信队列解决消费者异常

  如果消费者系统的数据库宕机,会怎么样?
  假设我们的MQ使用都没有问题,但是如果消费者系统的数据库挂了呢?因为我们一直都是假设了一个场景,就是生产者在处理完自己的逻辑之后会推消息到MQ,然后下游消费者系统从MQ里获取消息去执行后续的处理。
  那么如果这个时候,消费者系统的数据库宕机了,同样会使消费者从MQ里获取到消息之后,消费线程就会挂掉,没办法继续进行处理。
  所以针对这样的场景,消费者系统要怎么处理?应该如何重试? 数据库宕机的时候,你还可以返回CONSUME_SUCCESS吗?
  在下面代码片段中,我们注册了一个监听器回调函数,当consumer获取到消息之后,就会调用这个函数进行处理 consumer.registerMessageListener( 	new MessageListenerConcurrently() {         @Override         public ConsumeConcurrentlyStatus consumeMessage(         	List msgs, ConsumeConcurrentlyContext context) {             // 在这里对获取到的msgs订单消息进行处理             // 比如增加积分、发送优惠券、通知发货,等等             return ConsumeConcurrentlyStatus.CONSUME_SUCCESS;         }     } );
  我们可以在这个回调函数中对消息进行处理,处理完之后,就可以告诉RocketMQ Consumer这批消息的处理结果。
  比如,如果返回的是CONSUME_SUCCESS,那么Consumer就知道这批消息处理完成了,就会提交这批消息的offset到broker上去,然后下次就会继续从broker上获取下一批消息来处理。
  但是如果此时我们在上面的回调函数中,对一批消息进行处理的时候,因为数据库宕机了,导致处理逻辑无法完成,此时我们还能返回CONSUME_SUCCESS吗?如果你返回的话,下次就会处理下一批消息,但是这批消息其实没有处理成功,此时必然就导致这批消息丢失了。 如果对消息的处理有异常,返回RECONSUME_LATER状态
  如果因为数据库宕机,导致对这批消息处理是异常的,就应该返回一个RECONSUME_LATER状态。
  告诉RocketMQ这批消息处理有异常,过段时间再次给我这批消息让我重新试一下。
  所以我们的代码应该改成下面这样: consumer.registerMessageListener( 	new MessageListenerConcurrently() {         @Override         public ConsumeConcurrentlyStatus consumeMessage(         	List msgs, ConsumeConcurrentlyContext context) {             try {                 // 在这里对获取到的msgs订单消息进行处理                 // 比如增加积分、发送优惠券、通知发货,等等                 return ConsumeConcurrentlyStatus.CONSUME_SUCCESS;             } catch (Exception e) {                 // 如果因为数据库宕机等问题,对消息处理失败了                 // 此时返回一个稍后重试的状态                 return ConsumeConcurrentlyStatus.RECONSUME_LATER;             }                      }     } );RocketMQ是如何让你进行消费重试的
  那么RocketMQ在收到你返回的RECONSUME_LATER状态之后,是如何让你进行消费重试的呢?
  RocketMQ有一个针对这个ConsumerGroup的重试队列,如果返回了RECONSUME_LATER状态,他会把你这批消息放到这个消费组的重试队列中去。
  比如你的消费者组的名称是"VoucherConsumerGroup",那么他会有一个"%RETRY%VoucherConsumerGroup"这个名字的重试队列。
  重试队列中的消息会按照配置的时间再次给消费者,让消费者进行处理,如果再次失败,那么会再过一段时间让消费者进行处理,默认最多是重试16次,每次重试之间的间隔时间是可以配置的: messageDelayLevel=1s 5s 10s 30s 1m 2m 3m 4m 5m 6m 7m 8m 9m 10m 20m 30m 1h 2h如果连续重试16次还是无法处理消息,然后怎么办?
  那么如果在16次重试范围内消息处理成功了,自然就没问题了,但是如果你对一批消息重试了16次还是无法处理成功呢?这个时候会把消息放到死信队列中。
  其实就是一批消息交给消费者去处理,消费者重试了16次还一直没有处理成功,就不要继续重试这批消息了,就可以认为他们死掉了就可以了,然后这批消息会自动进入死信队列。
  死信队列的名字是"%DLQ%VoucherConsumerGroup"

降薪裁员转型校外培训正在凉凉降薪裁员转型K12(基础教育)校外培训行业正在迎来时代的剧变,离开或坚持,是一道成年人的选择题。资料图王妮娜摄降薪裁员行业风暴来临之前,一切都有端倪,但很多人,包括资本和行业企业老字节跳动申请头条商标,二审结果出炉字节跳动旗下的今日头条,已经成为新闻资讯类中的头号软件,为了保护自己软件的名誉,字节跳动注册了今日头条头条等商标护城河,以此来防止其他企业有蹭名牌的行为,虽然今日头条商标容易注册,马云是否会清理门户?马云喜好武侠,一直有一个江湖梦,在他一手打造的阿里巴巴帝国里,人人都是江湖人士,都有自己的绰号。虽然这个绰号,不是江湖人士送的,是自己起的,并且还要审核通过,但依然不影响马老师的江快递送上门是奢求吗?如何解决这个大难题?虽说现在快递员都直接对接快递驿站,方便了不少用户,但仍然还有一些用户对于快递送上门存在执念。现在快递都被送到快递驿站代收,让用户感到不满。前阵子行业内某一快递代收平台开始试点自主选赛鲁班ROMTOKCN100影音稳定,小型会议室开会必备伴随着数字经济兴起,云视频远程办公凭借着即时通信异地协同等优势实现了爆发式增长,针对性定制化远程办公解决方案不断涌现。那么,面对这一不可逆转的未来办公趋势,企业乃至个人的远程办公设是打印机也是天猫精灵,汉印A4打印机U100上手体验前言自从家里的孩子上了学之后,不管是从小学到大学都是需要打印很多的资料或者是试卷,需要打印成为了刚需的一个问题。当然,我作为一个大学生,常常需要打印一些材料资料,需要从宿舍跑到几公随身wifi值得买吗,购买随身wifi真的有用吗?随身wifi值不值得买,有没有用,这个要分场景分人群,凡事,存在即合理,既然推出了随身wifi,说明它是有需求的。购买随身wifi真的有用吗?什么样的人群最需要随身wifi,比如1区块链网站被黑客偷走价值6亿美元加密货币区块链网站PolyNetwork周二表示,黑客利用了其系统中的一个漏洞,偷走了数千枚数字代币,包括以太坊等,总计价值约6亿美元。这可能是有史以来最大的加密货币盗窃案之一。该公司在推特斯拉Cybertruck将在ModelY之后量产,上市时间推迟到2022年特斯拉已经宣布Cybertruck将不会按原计划在今年投产。这款电动pickup要到2022年才会上市,该公司在线上确认了这一推迟信息。(喜欢的朋友点赞加关注,跪求,())在202发生地震住在高层楼房,往上跑还是往下跑呢?对于发生地震时应该怎样跑,根据小编学习的一些逃生经验来做以下分析。1在发生较为强烈的地震时,如果住在高层,建议不要跑出去逃生,因为地震最厉害的时候不一定发生什么状况,万一倒塌会更复微信语音聊天往上滑,原来还隐藏了这3个实用功能,涨知识了分享生活小妙招,共享科技新生活!大家好,欢迎来到今天的知识分享!我是你们的好朋友小俊!很多人呢只知道微信中有非常实用的小技巧,却不知道微信语音聊天往上滑也有3个隐藏的实用技能,具体
魅族16官方渲染图曝光,美呆了!只是电池容量有点小了在众多网友吐槽魅族16再不发布就要凉凉的时候,魅族官方终于有了运作。先是7月23日向媒体发出快递。究竟是什么东西呢?今天媒体纷纷晒出了收到的快递两张纸。26号会是什么呢?今天魅族1京东自有品牌,京造JZLITE电动牙刷开箱简评前言提到电动牙刷,飞利浦和OralB是个绕不过的两个品牌。虽然这两年冒出了不少国产电动牙刷品牌,但基本上都只是在抢占低端市场。京造品牌定位和网易严选差不多,致力于实现高端商品更优价OPPO与夏普结束全球诉讼,网友实力硬底气才能足10月8日,在国庆假期结束后,OPPO宣布和夏普达成了专利交叉许可协议及合作,并且结束了自2020年以来在多个国家及地区的专利诉讼和争议,受到了许多业内外人士的关注。这次,OPPO众筹爆款的全球首款360全声场三分频蓝牙音箱柏谱自由M3评测要是看过我之前的晒单文章以声取胜这才是我想要的蓝牙音箱bopro柏谱HiresMuseHub,应该知道我其实是先在京东众筹了柏谱自由M3才发现换代的HiresMuseHub,只是自中国手机市场谁卖得最好?截止第三季度的零售数据曝光随着手机市场的复苏,今年的中国手机市场竞争更加激烈,各大厂商都各出奇招,吸引用户购买。根据网络的数据来看,截止到2021年第三季度,华为下跌较多,其它品牌都有不同的增幅。其中,在国华为P30Pro摄像头专利曝光,采用潜望镜式设计网上曝光了华为2018年3月申请的一份实用性专利技术。从说明中可以看出,这个摄像头结构采用了一颗广角彩色镜头广角黑白镜头长焦镜头组件,镜头模组成L型。组件就是指潜望结构,能实现5倍苹果又被超越,这些年苹果的处境真的太难了!中国表示很无辜苹果手机频频失利,早已不是一天两天。从以前的手机信号差,到现在的断流电池容量小,可气的是还没快充,借网友说的话来讲,苹果手机除了系统外其他的方面被国产打的体无完肤。可是苹果却不这么OPPO屏下摄像头真机曝光?全面屏看起来也太爽了吧全面屏的口号已经喊了好几年了,然而从近几年推出的全面屏解决方案来看,诸如水滴屏机械屏挖孔屏刘海屏等,很明显都不够令消费者和手机厂商满意,归根结底是前置摄像头的镶嵌方式令真正的全面屏什么样的自拍才是适合年轻人的?vivoS10Pro上手体验揭秘目前,vivoS10Pro是一款相当红火的自拍机型,因超高的颜值和出色的自拍能力受到了许多用户的欢迎。和一般的自拍手机不同,vivoS10Pro不仅有着出色的自拍硬件和暗光自拍能力vivoT1今晚开启预售,新系列能带来怎样的新体验?10月20日,vivo的全新系列机型vivoT1正式登场,有着骁龙778G处理器5000mAh大电池等亮点,在今晚20点正式开启预售,预售最高省200元,吸引了众多用户的关注。作为小米11T系列戴壳渲染图曝光,国行或许是RedmiK40S,期待吗?作为独属于海外的系列机型,小米的数字T系列一直做得非常不错。尽管小米的数字T系列没有直接在国内开过发布会,但是大家注意到,很多时候小米会用其它型号在国内进行发布,所以即将发布的小米