在web应用中,由于网络原因或其他不可预测的原因,应用间会出现调用失败的情形,通过配置重试策略可以有效解决外在原因导致的系统故障。,构建Retryer,使用Retryer让业务代码拥有重试能力,前两次执行时模拟返回false,则会执行重试;当第3次时,正常执行业务代码并返回true,结束重试。,模拟前3次出现异常,则会执行重试;当第3次时,正常执行业务代码,结束重试。,模拟前5此出现异常,由于Retryer配置重试次数为5,则最终业务代码不会执行。,
,执行流程
,通过RetryerBuilder构建Retryer,调用Retryer#call,封装业务代码为其回调函数。,构建Retryer主要通过RetryerBuilder.newBuilder()实现,其相关配置如下:,AttemptTimeLimiter中的FixedAttemptTimeLimit依赖于guava中的SimpleTimeLimiter,但是在guava高版本中该类已经成了私有类。,Guava Retrying模块能够通过简单的将代码实现业务逻辑重试的功能,并且其配置中包含了重试的次数、时长控制、重试阻塞、终止策略等等, 在项目中是非常常用的一项技术。,
© 版权声明
文章版权归作者所有,未经允许请勿转载。