Java远程调用失败时,如何实现有效的重试机制?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2163个文字,预计阅读时间需要9分钟。
目录+常规操作+注意事项+@Retryable+详解+总结+在日常工作开发过程中,我们经常会需要调用第三方组件或数据库。有时,可能会因为网络延迟或下游服务延迟,导致某些查询失败。
目录
- 常规做法
- 注解重试
- @Retryable 详解
- 总结
在日常开发的过程中我们经常会需要调用第三方组件或者数据库,有的时候可能会因为网络抖动或者下游服务抖动,导致我们某次查询失败。
这种时候我们往往就会进行重试,当重试几次后依旧还是失败的话才会向上抛出异常进行失败。接下来阿粉就给大家演示一下通常是如何做的,以及如何更优雅的进行重试。
常规做法
我们先来看一下常规做法,常规做法首先会设置一个重试次数,然后通过while循环的方式进行遍历,当循环次数没有达到重试次数的时候,直到有正确结果后就返回,如果重试依旧失败则会进行睡眠一段时间,再次重试,直到正常返回或者达到重试次数返回。
本文共计2163个文字,预计阅读时间需要9分钟。
目录+常规操作+注意事项+@Retryable+详解+总结+在日常工作开发过程中,我们经常会需要调用第三方组件或数据库。有时,可能会因为网络延迟或下游服务延迟,导致某些查询失败。
目录
- 常规做法
- 注解重试
- @Retryable 详解
- 总结
在日常开发的过程中我们经常会需要调用第三方组件或者数据库,有的时候可能会因为网络抖动或者下游服务抖动,导致我们某次查询失败。
这种时候我们往往就会进行重试,当重试几次后依旧还是失败的话才会向上抛出异常进行失败。接下来阿粉就给大家演示一下通常是如何做的,以及如何更优雅的进行重试。
常规做法
我们先来看一下常规做法,常规做法首先会设置一个重试次数,然后通过while循环的方式进行遍历,当循环次数没有达到重试次数的时候,直到有正确结果后就返回,如果重试依旧失败则会进行睡眠一段时间,再次重试,直到正常返回或者达到重试次数返回。

