Spring Retry 为 Spring 应用程序提供了声明性重试支持。它用于 Spring 批处理、Spring 集成、Apache Hadoop (等等)。它主要是针对可能抛出异常的一些调用操作,进行有策略的重试。
Guava retryer 工具与 spring-retry 类似,都是通过定义重试者角色来包装正常逻辑重试,但是 Guava retryer 有更优的策略定义,在支持重试次数和重试频度控制基础上,能够兼容支持多个异常或者自定义实体对象的重试源定义,让重试功能有更多的灵活性。
spring-retry 和 guava-retry 工具都是线程安全的重试,能够支持并发业务场景的重试逻辑正确性。两者都很好的将正常方法和重试方法进行了解耦,可以设置超时时间、重试次数、间隔时间、监听结果、都是不错的框架。
但是明显感觉得到,guava-retry 在使用上更便捷,更灵活,能根据方法返回值来判断是否重试,而 Spring-retry 只能根据抛出的异常来进行重试。