RetryContext:
RetryContextCache:一个类似于Map的数据结构,Stateful Retry Policies用其存储和查找RetryContext对象;
RetryCallback:一个可以使用RetryOperations提供的方法被重试的操作的回调接口;将需要重试的业务操作用RetryCallback包裹一下,然后将RetryCallback传递给RetryOperations间接执行业务操作,此时的业务操作就具有了重试语义;
RecoveryCallback:在重试次数耗尽完之后,会调用此接口的提供的回调方法的逻辑;
RetryState:有状态的重试(Stateful retry)的特点是必须识别出正在被处理的item;此接口主要用来在重试时提供缓存正在被处理的item的能力;在尝试重试的过程中,如果程序抛出的Exception经过check之后,发现不需要rollback,则可以将有状态的重试切换成无状态的重试(stateless retry),以优化RetryOperations的操作,RetryState可以提供当前程序抛出的Exception是否需要rollback的信息;
RetryOperations:提供两个有状态的重试方法,两个无状态的重试方法;
RetryPolicy:RetryPolicy负责分配和管理RetryOperations需要的资源;分为Stateless RetryPolicy,比如SimpleRetryPolicy和TimeoutRetryPolicy;这个资源也就是RetryContext对象;RetryPolicy允许RetryOperations;
RetryListener:可以为一次重试增加额外的行为;RetryOperations的实现,可以在重试的生命周期内,回调RetryListener的对应的方法;
Classifier:DefaultRetryState中用来判断一个Throwable是否是需要rollback的类型;
RetryStatistics:获取统计信息;统计信息是StatisticsListener生成的,StatisticsRepository用于保存统计信息;

BackOffContext:一次失败的重试之后,通常不会立即进行下一次重试,这样通常毫无意义;比较合适的做法是等待一段时间;BackOffContext持有的是计算这个等待时间有多长的信息及计算的逻辑;
Sleeper:阻塞当前线程一段时间的操作
BackOffPolicy:BackOffPolicy使用BackOffContext提供的等待时间,使用其持有的Sleeper接口的实现,阻塞当前重试线程;

Spring Retry相关推荐

  1. foxmail邮件加载失败重试_java retry(重试) spring retry, guava retrying 详解

    系列说明 java retry 的一步步实现机制. java-retry 源码地址 情景导入 简单的需求 产品经理:实现一个按条件,查询用户信息的服务. 小明:好的.没问题. 代码 UserServi ...

  2. java retry(重试) spring retry, guava retrying 详解

    转载 自 http://blog.51cto.com/9250070/2156431 系列说明 java retry 的一步步实现机制. java-retry 源码地址 情景导入 简单的需求 产品经理 ...

  3. 针对Spring的Spring Retry 我发现了这样一个大家都不知道的技巧!

    外部服务对于调用者来说一般都是不可靠的,尤其是在网络环境比较差的情况下,网络抖动很容易导致请求超时等异常情况,这时候就需要使用失败重试策略重新调用 API 接口来获取.重试策略在服务治理方面也有很广泛 ...

  4. Spring Retry 重试机制实现及原理

    概要 Spring实现了一套重试机制,功能简单实用.Spring Retry是从Spring Batch独立出来的一个功能,已经广泛应用于Spring Batch,Spring Integration ...

  5. java retry 设置上限_java-如何设置Spring Retry模板重试最大尝试次数:无限

    我想用Spring Retry修改数据库连接的创建,以便在应用程序启动时数据库关闭时再试一次.我不想限制重试次数.我应该如何配置策略来做到这一点. 我当前的代码(我知道在这种状态下它限制为100): ...

  6. 高级JAVA - 手写简单的重试组件学习Spring Retry

    目录 一 . 定义注解 二 . 利用cglib代理扩展重试业务 三 . 编写代理类 , 使用自定义的XRetryInterceptor作为拦截器 四 . 编写相关业务方法 , 测试代码 五 . 测试结 ...

  7. Spring异常重试框架Spring Retry

    在调用第三方接口或者使用mq时,会出现网络抖动,连接超时等网络异常,所以需要重试.为了使处理更加健壮并且不太容易出现故障,后续的尝试操作,有时候会帮助失败的操作最后执行成功.例如,由于网络故障或数据库 ...

  8. Spring retry重试框架

    spring retry是从spring batch独立出来的一个能功能,主要实现了重试和熔断.对于重试是有场景限制的,不是什么场景都适合重试,比如参数校验不合法.写操作等(要考虑写是否幂等)都不适合 ...

  9. Spring Retry # Stateful Retry

    Spring Retry中的重试,分为无状态的重试和有状态的重试: 简述 有状态重试通常是用在message-driven 的应用中,从消息中间件比如RabbitMQ等接收到的消息,如果应用处理失败, ...

  10. 重试框架Spring retry实践

    spring retry是从spring batch独立出来的一个能功能,主要实现了重试和熔断.对于重试是有场景限制的,不是什么场景都适合重试,比如参数校验不合法.写操作等(要考虑写是否幂等)都不适合 ...

最新文章

  1. 技术图文:如何利用C#爬取CSDN的博客文章?
  2. zabbix安装配置详解(一)
  3. python爬虫原理-python爬虫之认识爬虫和爬虫原理
  4. Mybatsi注解开发-基础操作
  5. 信息掩码游戏地图掩码相关(msk)
  6. unique函数_unique函数使用场景(一)
  7. 作为测试人员,这些工具不会真不行
  8. 大数据分析平台的核心价值
  9. MyBatis官方文档——SQL语句构建及日志部分
  10. redis的持久化相关操纵
  11. 支持flv视频播放的h5播放器-xgplayer
  12. 实验:配置Trunk
  13. 【数学史】大富翁的概率
  14. The Innovation | Volume 3 Issue 3 Live Now
  15. 【翻译】智能制造中EDA 应用及益处系列之四:精密故障检测与分类(FDC)
  16. Java Web3J概述
  17. c语言 求e的近似值
  18. 2023第十届大唐杯省赛心得体会总结
  19. 计算机专业的单招大学排名,全国单招学校排名 单招哪个学校比较好
  20. 云上未来,数智导航:阿里云研究院报告合集

热门文章

  1. Java项目:JSP大学生思想建设与心理健康网站
  2. 简析股票交易系统接口
  3. 还有这种书,程序开发心理学(豆瓣) - 豆瓣读书,转载自:https://book.douban.com/subject/1141154/...
  4. 【Android TV 开发】-->Leanback 中的 VerticalGridView
  5. 论脑电波、磁场、鬼三者之关系
  6. 混检在什么条件下是可行的?
  7. 【精辟版】通俗地说清Kruskal与Prim算法的区别
  8. c# 中添加数据到数据库中的三种方法
  9. 高级知识点:excel4j实现java操作excel文件的读写
  10. windows 虚拟磁盘 将其设为开机启动