目录
百战程序员,全站22050+开发课程+文档 ,学习精选优质好课快人一步!观看视频 快捷键ALT+N

JAVA全系列 教程

3762个小节阅读:7088.3k

收藏
全部开发者教程

C语言快速入门

JAVA全系列 教程

面向对象的程序设计语言

Python全系列 教程

Python3.x版本,未来主流的版本

人工智能 教程

顺势而为,AI创新未来

大厂算法 教程

算法,程序员自我提升必经之路

C++ 教程

一门通用计算机编程语言

微服务 教程

目前业界流行的框架组合

web前端全系列 教程

通向WEB技术世界的钥匙

大数据全系列 教程

站在云端操控万千数据

AIGC全能工具班

A

A A

White Night

阅读(1k)
赞(0)

消息重试

生产端重试

例如由于网络原因导致生产者发送消息到MQ失败,即发送端没有收到Broker的ACK,导致最终Consumer无法消费消息,此时RocketMQ会自动进行重试。

消费端重试

同样的,由于网络原因,Broker发送消息给消费者后,没有受到消费端的ACK响应,所以Broker又会尝试将消息重新发送给Consumer,在实际开发过程中,我们更应该考虑的是消费端的重试。消费端的消息重试可以分为顺序消息的重试以及无序消息的重试。

  • 顺序消息重试

    对于顺序消息,当消费者消费消息失败后,消息队列 RocketMQ 会自动不断进行消息重试(每次间隔时间为 1 秒),这时,应用会出现消息消费被阻塞的情况。因此,在使用顺序消息时,务必保证应用能够及时监控并处理消费失败的情况,避免阻塞现象的发生

  • 无序消息重试

    对于无序消息(普通、定时、延时、事务消息),当消费者消费消息失败时,可以通过

    设置返回状态达到消息重试的结果。

    • 最大重试次数

      消息消费失败后,可被消息队列RocketMQ重复投递的最大次数。

      TCP协议无序消息重试时间间隔:

      第几次重试与上次重试的间隔时间第几次重试与上次重试的间隔时间
      110秒97分钟
      230秒108分钟
      31分钟119分钟
      42分钟1210分钟
      53分钟1320分钟
      64分钟1430分钟
      75分钟151小时
      86分钟162小时
    • 消费失败后重新配置方式

      需要在消息监听器接口的实现中明确进行配置(三种方式任选一种):

      • 返回 ConsumeConcurrentlyStatus.RECONSUME_LATER; (推荐)
      • 返回 Null
      • 抛出异常

实时效果反馈

1.下列不属于消息重试的配置方式是哪个?

A CONSUME_SUCCESS

B RECONSUME_LATER

C null

D throw new Exception("Consumer Message exceotion")

答案

1=>A

 

北京市昌平区回龙观镇南店村综合商业楼2楼226室

©2014-2023 百战卓越(北京)科技有限公司 All Rights Reserved.

京ICP备14032124号-2