applyHystrixSemantics.call()
toObservable()
executeCommandAndObserve()
主线程
getExecutionObservable
circuitBreaker.attemptExecution()判断断路器是否通过?
信号量不足
get()
new HystrixCommand<T>()
getFallBack()
no:执行快速失败
toFuture()
getUserExecutionObservable()准备执行业务方法
executeCommandWithSpecifiedIsolation()验证线程池模式
yes:requestCache.get(cacheKey);
toBlocking()
execute()
getExecutionSemaphore()executionSemaphore.tryAcquire()验证信号量
requestCacheEnabled是否缓存有值?
queue()
run()
Observable.just(run());
Future
no