Hystix熔断、Feign以及ZUUL网关(学习总结)

Hystix熔断、Feign以及ZUUL网关

Hystix(熔断器)

  1. Hystix是Netflix开源的一个延迟和容错库,用于隔离访问远程服务、第三方库,防止出现级联失败。
  2. 熔断器是容错管理工具,作用是通过隔离、控制服务从而对延迟 和故障提供更强大的的容错能力,避免拖垮整个系统。
  3. 复杂分布式架构通常都具有很多依赖,当一个应用高度耦合其他服务时非常危险且容易导致失败,这种失败很容易伤害服务的调用者,最后导致一个接一个的连续错误,应用本身就处在被拖垮的风险中,最后失去控制。
  4. 例如一个高流量的网站中,某个单一的后端一旦发生延迟,将会在数秒内导致所有应用资源被耗尽。当系统高峰期时期,大量对微服务的调用可能会堵塞远程服务器的线程池,如果这个线程池没有和主应用服务器的线程池隔离,就可能导致整个服务器挂机。
  5. Hystix使用自己的线程池,这样和主应用服务器线程池隔离,如果调用花费好长时间(请求提供者超时没回应),会停止调用,不同的命名或者命令组能够被配置使用它们各自的线程池,可以隔离不同的服务。
  6. 家里老式的电闸,当家里电路发生短路,或者使用超大规模用电器超标,保险丝会熔断,熔断器和老式电闸这种很像,区别是Hystix可以实现自动重连,也就是可以实现弹性容错。
  7. 当服务繁忙时,如果服务出现异常,不是粗暴的直接报错,而是返回一个友好的提示,“服务器忙,请您稍后再试!谢谢合作。。。。。。”,“服务器升级中。。。”,感觉像是在排队,请求转其他的服务(也可以降级服务)。
  8. 服务熔断原理,熔断器三种状态,关闭状态、打开状态、半开状态。

关闭状态:一切正常,没出现啥大问题

打开状态:超负载,或者服务发生错误,超时等,就会降级服务。

半开状态:允许定量服务请求,如果全部调用成功就关闭熔断器,反之,打开熔断器;几秒后(5s),重新检测该触发条件,判断是要打开熔断器,还是要关闭熔断器。

 

 

 

Feign

  1. 以前使用Ribbon的负载均衡功能,简化了远程调用(RPC)时的代码.

String url = "http://user-service/findById?id=" + id ;

Map<String,String> result = restTemplate.getForObject(url, Map.class);

return result ;

 

  1. 使用Ribbon实际代码编程,会有大量的重复代码(代码格式基本相同、就是参数不同),Fegin来干嘛呢?这家
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值