美文网首页我爱编程
分布式弹力设计之重试机制

分布式弹力设计之重试机制

作者: Doit8 | 来源:发表于2018-04-07 21:04 被阅读0次

重试机制的使用场景

重试的前提是认为故障是暂时的,不是永久的,所以重试才有意义。

使用重试机制是必须要明确哪些错误可以重试,常见的可重试的错误有 接口超时 接受方返回的可以重试的错误类型,如业务繁忙,流控中等等。

重试机制的策略

指数退避算法,重试的间隔时间以指数形式增长,例如失败后2秒重试第一次,4秒后第二次,8秒后第三次。除了间隔时间,同时还会设置最大重试次数。

Spring retry 项目封装了大量的重试策略,可以通过注解的方式使用,对原有的业务代码没有侵入。

重试机制的设计重点

1 确定可重试的错误类型

2 重试策略的选择,重试次数和时间的设置

3 接受方幂等设计

4 涉及事务的场景,避免阻塞线程,可以将重试的数据入库,通过异步定时任务,或者延迟队列来重试。

相关文章

  • 分布式弹力设计之重试机制

    重试机制的使用场景 重试的前提是认为故障是暂时的,不是永久的,所以重试才有意义。 使用重试机制是必须要明确哪些错误...

  • 弹力设计之重试设计

    关于重试,这个模式应该是一个很普遍的设计模式了。当我们把单体应用服务化,尤其是微服务化,本来在一个进程内的函数调用...

  • 分布式弹力设计之熔断

    前言 熔断机制的灵感来源于保险丝,我们知道家里的电路中有个保险丝,当用电过载或是短路时,保险丝熔断,切断电路,避免...

  • 分布式弹力设计之降级

    当系统遇到大的流量,为了能让系统健康的运行,我们会采取一些措施,上节课讲到的限流是一种方式,拒绝掉一些流量,今天讲...

  • RocketMQ(九)高级特性-消息重试机制

    rocketMq具有消息重试的机制,重试也分为两种重试:producer重试和consumer重试。 produc...

  • 分布式弹力设计之服务状态

    今天我们来谈一谈服务的状态,服务的状态指的是请求是否与不同的服务实例相关。分为两种,有状态和无状态。 无状态服务重...

  • 分布式弹力设计之异步通信

    讲到异步通信,不得不先提同步通信,如果把打电话比做同步,那短信就是异步。同步操作有个优点,实时性好,但存在以下问题...

  • 分布式弹力设计总结

    分布式弹力设计的目的 保证服务的弹力,从两个方面体现,一是出现故障时能够自恢复,另一方面是在无法自愈的情况下,将范...

  • Java实现几种简单的重试机制

    背景 当业务执行失败之后,进行重试是一个非常常见的场景,那么如何在业务代码中优雅的实现重试机制呢? 设计 我们的目...

  • RocketMQ 与 Spring Boot整合(四、消费重试)

    RocketMQ 提供消费重试的机制。在消息消费失败的时候,RocketMQ 会通过消费重试机制,重新投递该消息给...

网友评论

    本文标题:分布式弹力设计之重试机制

    本文链接:https://www.haomeiwen.com/subject/xvhuhftx.html