当前位置: 首页 > news >正文

深圳龙岗做网站公司哪家好关键词云图

深圳龙岗做网站公司哪家好,关键词云图,全球知名设计公司,wordpress调整页面布局1、顺序消息的重试 对于顺序消息,当消费者消费消息失败后,消息队列 RocketMQ 会自动不断进行消息重试(每次间隔时间为 1 秒),这时,应用会出现消息消费被阻塞的情况。因此,在使用顺序消息时&…

1、顺序消息的重试

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

2、无序消息的重试

对于无序消息(普通、延时、事务消息),当消费者消费消息失败时,可以通过设置返回状态达到消息重试的结果。

无序消息的重试只针对集群消费方式生效;广播方式不提供失败重试特性,即消费失败后,失败消息不再重试,继续消费新的消息。

1)重试次数

消息队列 RocketMQ 默认允许每条消息最多重试 16 次,每次重试的间隔时间如下:

第几次重试与上次重试的间隔时间第几次重试与上次重试的间隔时间
110 秒97 分钟
230 秒108 分钟
31 分钟119 分钟
42 分钟1210 分钟
53 分钟1320 分钟
64 分钟1430 分钟
75 分钟151 小时
86 分钟162 小时

如果消息重试 16 次后仍然失败,消息将不再投递。如果严格按照上述重试时间间隔计算,某条消息在一直消费失败的前提下,将会在接下来的 4 小时 46 分钟之内进行 16 次重试,超过这个时间范围消息将不再重试投递。

注意: 一条消息无论重试多少次,这些重试消息的 Message ID 不会改变。

2)配置方式

消费失败后,重试配置方式

集群消费方式下,消息消费失败后期望消息重试,需要在消息监听器接口的实现中明确进行配置(三种方式任选一种):

  • 返回 Action.ReconsumeLater (推荐)
  • 返回 Null
  • 抛出异常
public class MessageListenerImpl implements MessageListener {@Overridepublic Action consume(Message message, ConsumeContext context) {//处理消息doConsumeMessage(message);if(exception){//方式1:返回 Action.ReconsumeLater,消息将重试return Action.ReconsumeLater;//方式2:返回 null,消息将重试return null;//方式3:直接抛出异常, 消息将重试throw new RuntimeException("Consumer Message exceotion");}}
}

消费失败后,不重试配置方式

集群消费方式下,消息失败后期望消息不重试,需要捕获消费逻辑中可能抛出的异常,最终返回 Action.CommitMessage,此后这条消息将不会再重试。

public class MessageListenerImpl implements MessageListener {@Overridepublic Action consume(Message message, ConsumeContext context) {try {doConsumeMessage(message);} catch (Throwable e) {//捕获消费逻辑中的所有异常,并返回 Action.CommitMessage;return Action.CommitMessage;}//消息处理正常,直接返回 Action.CommitMessage;return Action.CommitMessage;}
}

注意:在整合SpringBoot后,默认是当消费者处理抛出异常时就会自动重试,不需要手动编码进行处理。

自定义消息最大重试次数

消息队列 RocketMQ 允许 Consumer 启动的时候设置最大重试次数,重试时间间隔将按照如下策略:

  • 最大重试次数小于等于 16 次,则重试时间间隔同上表描述。
  • 最大重试次数大于 16 次,超过 16 次的重试时间间隔均为每次 2 小时。

原生方式:

Properties properties = new Properties();
//配置对应 Group ID 的最大消息重试次数为 20 次
properties.put(PropertyKeyConst.MaxReconsumeTimes,"20");
Consumer consumer =ONSFactory.createConsumer(properties);

整合SpringBoot方式:

// 通过设置监听器的 maxReconsumeTimes 属性设置,比如设置为20
@Component
@RocketMQMessageListener(maxReconsumeTimes = 20,topic = "xxx", consumerGroup = "xxx")
public class TestConsumer implements RocketMQListener<String> {}

注意:

  • 消息最大重试次数的设置对相同 Group ID 下的所有 Consumer 实例有效。
  • 如果只对相同 Group ID 下两个 Consumer 实例中的其中一个设置了 MaxReconsumeTimes,那么该配置对两个 Consumer 实例均生效。
  • 配置采用覆盖的方式生效,即最后启动的 Consumer 实例会覆盖之前的启动实例的配置

获取消息重试次数

消费者收到消息后,可按照如下方式获取消息的重试次数:

原生方式:

public class MessageListenerImpl implements MessageListener {@Overridepublic Action consume(Message message, ConsumeContext context) {//获取消息的重试次数System.out.println(message.getReconsumeTimes());return Action.CommitMessage;}
}

整合SpringBoot方式:

// 通过实现RocketMQListener<MessageExt>接口,丛MessageExt实体中获取
@Component
@RocketMQMessageListener(topic = "xxx", consumerGroup = "xxx")
public class ExConsumer implements RocketMQListener<MessageExt> {@Overridepublic void onMessage(MessageExt message) {// 重试次数message.getReconsumeTimes();}
}
http://www.wooajung.com/news/34471.html

相关文章:

  • 网站上传图片问题网络公关公司联系方式
  • 网站专题制作原则佣金高的推广平台
  • 网上做批发有哪些网站靠谱网站如何进行优化
  • 宜州设计公司百度网盘seo优化
  • 旅游网站 功能外链推广网站
  • 织梦后台怎么换网站模板百度竞价排名案例分析
  • 服务网络是什么意思天津seo优化
  • 使用webp的网站电脑优化软件推荐
  • 网站建设发好处广州新闻报道
  • 太平保险网站搜索引擎优化的作用
  • 网站建设是前端的吗郑州网络seo
  • 企业网站的开发背景武汉seo外包平台
  • 深圳装饰网站建设百度电脑版网址
  • 排版网站推荐如何发布自己的html网站
  • 又拍网站怎么做的国外引流推广软件
  • wordpress 图片等比例缩放如何做优化排名
  • 网站域名dns企业网络推广方法
  • 做app网站需要什么条件职业技能培训网上平台
  • 上海专业网站建设费百度搜索推广方案
  • 做网站对企业有什么好处全部列表支持安卓浏览器软件下载
  • 商洛市城乡建设局网站软文撰写公司
  • bootstrap网页模板源码seo快速排名上首页
  • behance设计网站 教程上海推广服务
  • 房地产网站广告销售怎么做推介网
  • 顺德网站建设价格教育培训网站设计
  • 徐州做网站企业seoshanghai net
  • 泸州本地网站建设资源搜索神器
  • 做婚恋网站的翻译好吗短视频培训课程
  • 专业模板建站哪家好百度关键词排名代做
  • 东莞定制建站网站推广公司优化设计答案六年级上册语文