Spring Cloud Edgware对Hystrix回退的逻辑进行了一些改进。本文将信息探讨新旧版本的回退操作,并分析的原因及改进后的优势。
Dalston及更低版本
对于Dalston及更低版本,要想为Zuul提供回退,只需编写代码如下:
Edgware及更高版本
分析
由代码可知:
-
Dalston及更低版本通过实现
ZuulFallbackProvider
接口,从而实现回退;
-
Edgware及更高版本通过实现
FallbackProvider
接口,从而实现回退。
-
在Edgware中:
-
FallbackProvider是ZuulFallbackProvider的子接口。
-
ZuulFallbackProvider已经被标注
Deprecated
,很可能在未来的版本中被删除。
-
FallbackProvider接口比ZuulFallbackProvider多了一个
ClientHttpResponse
-
fallbackResponse(Throwablecause);
方法,使用该方法,
可获得造成回退的原因。