Sentinel是一个开源的分布式系统,用于实时监控和保护大规模分布式系统。它提供了流量控制、熔断器、限流、降级等功能,可以帮助我们构建高可用的分布式系统。下面我来具体解释一下Sentinel的基本概念和使用方式。
-
流量控制:通过配置限流规则,设置系统最大限制并对流量进行控制。当流量超出阈值时,Sentinel会自动进行限流,避免系统过载。
-
熔断器:当服务出现故障或异常情况时,Sentinel会自动开启熔断器,避免服务继续调用导致更严重的故障或系统崩溃。
-
限流:通过设置规则来限制某些请求的并发数或响应时间,来保证系统稳定和高效运行。
-
降级:当系统负载过高或服务出现故障时,通过快速切换至备用服务或者提供缓存数据来避免服务的故障和影响。
1、了解微服务雪崩问题以及解决方案
redis雪崩:指缓存中的数据集体失效。
微服务:微服务调用某个链路中的某个服务故障,引起整个链路中所有微服务都不可用。
由D引发A,又由A引发一系列故障,这就是微服务雪崩。
解决雪崩问题常见有四种方法:
(1)超时处理:设定超时时间,请求超过一定时间没有相应就返回错误信息,不会一直等待。
(2)舱壁模式 (线程池隔离):设置tomcat线程池限定每个业务能使用的线程数,避免耗尽整个Tomcat的资源。
(3)熔断降级:由断路器统计业务执行的异常比例,若果超出阈值就会熔断该业务。拦截访问该业务的一切请求。
(4)流量控制:限制业务访问的QPS,避免服务因流量的突增而故障。