retry就是重试的意思,在我们的系统中,分布式或者是外部服务,存在其他服务异常,或者网络问题,需要我们重试的情况,但是重试可能还是错误的,总不能让系统一直报错,直到崩掉吧。所以熔断器的功能就是必须的啦,在重试的次数还是失败的时候,就终止,比如dubbo这样微服务的框架,一般都会配置重试次数。这些spring retry 都做了处理,还可以配置重试的异常类型和时间间隔等。
可以看看这个quickstart(https://github.com/spring-projects/spring-retry),然后创建一个spring boot 的项目。
然后在 pom 中加入相应的依赖
然后我们写一个启动类,区别就是加上 EnableRetry 的注解,这样重试会生效
然后我们看看我们实现的类中的方法,这里我们会捕获TypeOneException.class, TypeTwoException.class异常,然后maxAttempts是4
日志输出:
如果我们不用重试,那么会是以下的日志输出:
有什么讨论的内容,可以加我微信公众号:
来源:oschina
链接:https://my.oschina.net/u/2277632/blog/1858191