Failsafe是一个轻量 零依赖的处理故障失败等问题的开源库包,目的是尽可能简单易用,用一种简洁的API来处理每天系统运行情况并灵活处理。
Failsafe的故障保护功能有:
1. Retries重试
2. Circuit breakers断路器
3.Fallback
4.执行上下文Execution context
5.Event listener事件监听器
6.异步API集成
7.CompletableFuture 和函数接口集成
8.Execution tracking执行故障跟踪
支持Java 6+以上版本。
Failsafe核心功能是重试,首先需要定义一个 RetryPolicy用来指定重试的情况:
|
下面是使用retryPolicy执行一个Runnable或Callable实现重试:
|
Java 6和7也支持:
|
断路器功能可使用在微服务架构中防止服务访问过载:
|
通过Runnable或Callable执行这个断路器:
|
当你配置了一个断路器的执行失败阀值时,一旦达到这个阀值,断路器就会打开,抛出circuitbreakeropenexception,一段延迟后,断路器处于半开状态,再次尝试执行,以确定当前断路器是应该再次关闭或打开,如果尝试执行满足了成功阀值,那么断路器就会再次关闭,通过其的业务执行恢复正常。
更多详细使用见:
jhalterman/failsafe: Simple, sophisticated failure
[该贴被banq于2016-07-28 10:55修改过]