ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
[TOC] # 概念 熔断: 比如用电高,熔断设备保护,不至于引发火灾 隔离: cpu,内存有大小,不隔离,一个使用完,其他人就用不了 限流: 当大流量来的时候,要限流,比如一秒100请求,大了不行,这时候要限流 降级: 当系统发生故障,我们要降级,不至于故障恶化 # NetFlix Hystrix断路器原理 ![](https://box.kancloud.cn/9ca0e3d2aa902bc7eb534422232f1592_1865x805.png) 我们用了这个之后,我们会把调用封装在Construct Hystrix里面,那么它就有这些功能 调用模式:有同步,异步,响应式(异步), 请求来的话,先电路判断(circuit open?),电路是不通直接短路(short-circuit),马上返回,并调用降级函数(如果提供的话), 有降级函数(getFallback())先调用降级函数,没有直接抛异常(Exception Thrown) 降级函数也有可能会出错的,出错就再次抛出异常 如果电路是通的,他会判断,这个线程资源是否ok,队列资源是否ok,如果不满足,会限流,会拒绝你的请求,走上面一样的路径,也是走降级 如果通过前面,电路同并且资源满足,就运行,运行时如果超时,也会走降级流程, 如果走到最后(Success?)成功的话,他会获取正确的Response,回到调用端, 如果这步出错也是走降级这个路 任何环节都会以(Metric形式)反馈给(Calculate Circuit Health)计算电路健康组件,最后他会统计这些,反馈给内部的熔断器电路判断组件(Circuit open?),来判断,下次是打开电路还是直接熔断电路