目录
1、Hystrix与Rhino对比
项目 | Hystrix | Rhino |
---|---|---|
接入方式 | 提供了注解和API两种接入方式,都提供了fallback机制 | 一致 |
熔断降级 | 默认错误超过50%且10秒内超过20个请求进行中断拦截 当熔断器开关关闭时, 请求被允许通过熔断器. 如果当前健康状况高于设定阈值, 开关继续保持关闭. 如果当前健康状况低于设定阈值, 开关则切换为打开状态. 当熔断器开关打开时, 请求被禁止通过. | 触发条件: 1、请求总数达到阈值,默认20 2、请求失败率达到阈值,默认1% 3、请求失败数达到阈值,默认2 |
降级恢复 | 当熔断器开关处于打开状态, 经过一段时间后, 熔断器会自动进入半开状态, 这时熔断器只允许一个请求通过. 当该请求调用成功时, 熔断器恢复到关闭状态. 若该请求失败, 熔断器继续保持打开状态, 接下来的请求被禁止通过. | 接⼝口熔断之后,如果试探请求成功,则开始恢复正常请求,Rhino提供了四种恢复策略,分别是:
|
资源隔离 | 提供了线程池隔离和信号量隔离 | 提供线程池隔离 |
失败降级 | 提供了fallback机制,调用设定的fallback方法 | 提供了fallback机制,调用设定的fallback方法 |
限流 | 无 | Rhino提供了三种限流器,分别是:
|
故障演练 | 无 | Rhino提供了4种故障演练方式
|
查询缓存 | 支持,存本机 | 支持,存redis 读缓存触发情况 如果方法执行中发生异常、超时,或者熔断、手动降级的情况下,如果开启熔断前异常策略为降级时,都会读缓存 |
请求合并 | 支持 | 不支持 |
2、触发fallback方法情况
项目 | Rhino | Hystrix |
---|---|---|
超时 | Y | Y |
异常 | Y | Y |
熔断器打开 | Y | Y |
线程池拒绝 | Y | Y |
信号量拒绝 | N | Y |
限流 | Y | N |