系列文章目录
Sentinel ?预热加载
前言
一、概念解释?
Warm Up:根据coldFactor(冷加载因子,默认3)的值,从阈值/codeFacotor,经过预热时长,才达到设置的QPS阈值
官网手册地址:flow-control
概念:Warm Up方式,即预热/冷启动方式。该方式主要用于系统长期处于低水位的情况下,当流量突然增加时,直接把系统拉升到高水位可能瞬间把系统压垮。通过"冷启动",让通过的流量缓慢增加,在一定时间内逐渐增加到阈值上限,给冷系统一个预热的时间,避免冷系统被压垮的情况。
预热公式:初始阈值= 设定阈值/coldFactor(默认值为3),经过预热一段时间后才会达到设定的阈值。
?
二、使用步骤
1.引入库
?添加依赖 sentinel? package
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>
?application.yml
server:
port: 18088
spring:
application:
name: service-provider
cloud:
nacos:
discovery:
server-addr: 192.168.195.1:8848
sentinel:
transport:
dashboard: localhost:8080
management:
endpoints:
web:
exposure:
include: '*'
?Java 代码
@GetMapping("/echo/test")
public String echo() {
return "success";
}
2.dashboard 配置
?
资源名?? ?访问的请求路径 熔断策略?? ?熔断规则配置后,进行熔断的方式策略,本文主要分析慢调用比例 最大RT?? ?最大响应时间,单位:毫秒数,用于鉴定是否是慢调用 比例阈值?? ?值的是慢调用的比例阈值,是触发熔断的其中一个条件 熔断时长?? ?当条件满足后需要进行熔断的熔断时长,单位:秒 最小请求数?? ?在统计时长的时间内,请求数要大于该值,才会判断慢调用比例是否大于比例阈值, 所以最小请求数是触发熔断的另外一个条件 统计时长?? ?触发熔断需要统计请求数的时长,单位:毫秒
上面warm up表示说: 访问/echo/test资源时,?一开始阈值是 10(设定单机阈值)/3 (coldFactor默认3),经过5秒的预热后才能到达设定阈值10 的效果。 简单理解就是: 5秒钟内QPS是3,大于5秒后QPS为10.
总结
预热 可以用作秒杀业务,不会因为流量过大把系统瘫痪,会慢慢的预热最终达到QPS。
这个就和生活中的采暖期一样,一般来说采暖公司不会一下子把温度烧到很高,都是经过几次预热达到最高温度。
|