在体验soul网关的各种限流熔断插件之前先整体梳理下比较主流的技术实现
一、熔断限流组件是什么
什么是熔断组件?
熔断组件是一种应用系统自我保护工具,当应用接口流量陡增超过负载时,该接口的错误率也会递增,此时及时将该接口的流量熔断掉(就像保险丝熔断保护家用电器),以达到保护应用系统的目的。
比较有代表性的熔断组件:Hystrix、Resilience4J等。
什么是限流组件?
限流组件也是一种应用系统自我保护工具,主要是从流量的角度切入,从限流、降级、热点防护、系统负载等维度来保障应用系统的稳定性。
比较有代表性的限流组件:Sentinel。
二、熔断限流组件:Hystrix/Resilience4J/Sentinel
- Hystrix 注重隔离:底层是RxJava异步编程的函数库,通过活动窗口与令牌桶这种指标度量的方式进而实现了两种隔离方式:线程池模式(默认使用)、信号量模式
- 请求流程图 (蓝色的代表我们用户请求线程、黄色的线H