一、请求限流
1.介绍
处理并发量大时资源耗尽问题
Sentinel的请求限流功能主要体现在对QPS(每秒查询率)和线程数的控制上。当某个API接口或服务的请求量达到设定的QPS阈值时,Sentinel会触发限流规则,对这些超出阈值的请求进行限制,防止过量的请求影响系统的稳定性。此外,Sentinel还可以通过控制调用该API的线程数来进行限流,确保系统在高并发情况下仍能稳定运行。
2.使用
进入Sentinel的控制台,找到要限流的服务,进入簇点链路对要限流的请求进行设置
点击流控,阈值为QPS
单机阈值数主要涉及到QPS(每秒请求数)和线程数两个核心指标。当某个API或服务的请求量(即QPS)达到设置的单机阈值时,Sentinel将触发限流规则,超出阈值的请求可能会被直接拒绝或进入排队等待处理。这种机制有助于防止因瞬间流量剧增导致的服务崩溃。类似地,线程数的控制也是为了保证系统在高并发情况下的稳定性,通过限制针对某个资源的并发线程数量,确保系统不会因过多的线程并发处理而耗尽资源。
二、线程隔离
1.介绍
当一个服务出现阻塞或者故障时,调用这个服务的服务就会因此而被拖慢甚至资源耗尽,所以应该限制这个业务的可用线程数,实现线程隔离
Sentinel的线程隔离主要通过两种方式实现:线程池隔离和信号量隔离。线程池隔离为每个服务调用分配一个单独的线程池,这样,即使某个服务出现问题并耗尽其线程池中的所有线程,也不会影响其他服务。而信号量隔离则不创建线程池,而是采用计数器模式,记录当前正在处理的请求数量。当请求数达到设定的信号量上限时,新的请求将会被阻塞,直到有请求处理完毕并释放信号量为止。
2.应用
进入Sentinel的控制台,找到要限流的服务,进入簇点链路对要限流的请求进行设置
配置五个并发线程
三、服务熔断 fallback
1.介绍
熔断是解决雪崩问题的重要手段。思路是由断路器统计服务调用的异常比例、慢请求比例,如果超出阈值则会熔断该服务。即拦截访问该服务的一切请求;而当服务恢复时,断路器会放行访问该服务的请求。
熔断降级是解决雪崩问题的重要手段。思路是由断路器统计服务调用的异常比例、慢请求比例,如果超出阈值则会熔断该服务。即拦截访问该服务的一切请求;而当服务恢复时,断路器会放行访问该服务的请求。
2.应用
进入Sentinel的控制台,找到要限流的服务,进入簇点链路对要限流的请求进行设置