来
2018-05-25
重试的场景:
1、服务timeout超时异常
2、服务不存在,配置问题,服务流控
3、对error错误不重试,如无权限、参数错误
重试的策略:
1、数据库中保存重试需要的上下文,目前通过json来保存,指定最大重试次数、当前重试次数,下次运行时间
重试需要注意的地方:
1、服务幂等性,在重试时需证调用服务的幂等性
2、重试数据的监控,邮件,短信及时通知
3、重试数据的结转,防止表数据量过大
展开
12
shufang
2018-03-13
spring真的是只有想不到没有做不到~
1
3
小沫
2018-03-13
你好,对于重试是否可以不让当前线程休眠呢。如果当前线程休眠 此时这个线程的利用率就不高,我觉得应该放到线程池里面是否好一些呢?
2
诤
2018-04-03
server error不是不应该重试,属于服务端内部错误,不是暂时性的
1
NonStatic
2018-03-18
用过.net core上的Polly:http://www.thepollyproject.org/ 推荐给用C#的兄弟姐妹们。
1
道道
2018-03-14
之前做的重试策略是:异常发生的时候,数据库记录当前上下文,依据重试次数来确定重试时间,推送给延迟消息队列控制重试
1
1
幻想
2018-03-13
又一篇好文。感恩。。。
1
知行合一
2020-01-05
重试依赖被调用方做了良好的幂等设计和接口返回码规范,知道什么情况下应该重试,什么情况下直接报故障。重试也需要做避让设计,防止被调用方压力过大,压垮系统。spring重试项目可以做到注解方式定义重试,防止代码注入。server mess还需要多了解了解。
blackpiglet
2019-12-31
总结:使用重试策略有个前提,就是问题不是永久性的,如果问题一直无法解决就没有必要再重试了。很有必要根据出错原因来判断是否有必要进行重试。重试策略主要分为以下几种:不退避、固定退避时长、随机时间退避、指数退避、随即指数退避。
应用重试机制需要注意以下几点:是否需要进行重试、使用什么重试策略以及重试几次、熔断和恢复策略、重试需要有幂等的支持、重试策略可以复用、复杂操作,比如有事务需要有特殊设计。
文刂 氵共 超
2019-12-24
坚持学习,学习笔记 https://mubu.com/colla/3HCUwf3_nJM
edisonhuang
2019-07-09
重试策略的设计需要考虑重试的场景,重试的次数自己相应时间的限制。由于单机的服务变成了分布式的微服务,由于网络,流量等等未知原因,重试不可避免,应该考虑在代码设计中。对于事物性的操作,还需要考虑服务调用的幂等性,保证服务最终状态不出错
godtrue
2019-01-30
我们的系统比较靠后,提供的接口中会标识出当请求失败时是否建议调用方重试,具体重师与否有调用方自己选择。
一般超时才建议重试。
Geek_fb3db2
2018-11-18
一个重试机制都有如此优雅的设计模式,想问下,重试是同步还是异步进行的,还是需要看业务呢
徐
2018-06-30
503 502 都需要重试吧 老师 500 400 403 401 可以不用重试吧
neohope
2018-06-21
有一个很小白的错误,我记得n年前一个同事写过一个很简单的服务,轮询需要处理的数据,每次取出m条,然后处理。测试时发现,有数据的时候,没任何问题,一旦数据处理完毕,系统CPU负载就飙升。最后看了一下,当没有重试数据的时候,就不断的轮询,不断的轮询,导致CPU飙升。后面对于批量处理数据的代码,都要重点看下有没有必要的延时。。。
另外,对于很特殊的数据,比如会引起服务挂掉的特殊数据(本文中的SERVER_ERROR),必须要特殊处理一下,不要继续重试,否则就滚雪球直接崩盘了。
秋天
2018-03-19
好文
Kennedy
2018-03-13
503是服务过载,短暂不可用,可以重试吧?陈老师
1
我们在线,来聊聊吧
✕
您好,当前有专业客服人员在线,让我们来帮助您吧。
我们在线,来聊聊吧