springcloud alibaba nacos+sentinel

Nacos 数据模型(领域模型)

Namespace:命名空间,对不同的环境进行隔离,比如隔离开发环境、测试环境和生产环境
概念 描述
Group:分组,将若干个服务或者若干个配置集归为一组,通常习惯一个系统归为一个组(拉勾招聘、拉勾猎头、拉勾教育)
Service:某一个服务,比如商品微服务
DataId:配置集或者可以认为是一个配置文件
Namespace + Group + Service 如同 Maven 中的GAV坐标,GAV坐标是为了锁定Jar,而这里是为了锁定服务
Namespace + Group + DataId 如同 Maven 中的GAV坐标,GAV坐标是为了锁定Jar,而这里是为了锁定配置文件
最佳实践
Nacos抽象出了Namespace、Group、Service、DataId等概念,具体代表什么取决于怎么用(非常灵活),推荐用法如下
Namespace 代表不同的环境,如开发dev、测试test、生产环境prod
Group 代表某项目,比如拉勾云项目
Service 某个项目中具体xxx服务
DataId 某个项目中具体的xxx配置文件

 

Sentinel 关键概念

 

Sentinel 流量规则模块

流控模式之关联限流

关联的资源调⽤达到阈值时候限流⾃⼰,⽐如⽤户注册接⼝,需要调⽤身份证校验接⼝(往往身份证校验接⼝),如果身份证校验接⼝请求达到阈值,使⽤关联,可以对⽤户注册接⼝进⾏限流。

流控模式之链路限流

链路指的是请求链路(调用链:A-->B--C,D-->E-->C)
链路模式下会控制该资源所在的调用链路入口的流量。需要在规则中配置入口资源,即该调用链路入口的上下文名称。

 

 上图中来⾃⼊⼝ Entrance1 和 Entrance2 的请求都调⽤到了资源 NodeA ,Sentinel 允许只根据某个调⽤⼊⼝的统计信息对资源限流。⽐如链路模式下设置⼊⼝资源为 Entrance1 来表示只有从⼊⼝ Entrance1 的调⽤才会记录到 NodeA 的限流统计当中,⽽不关⼼经 Entrance2 到来的调⽤。

流控效果之Warm up

当系统长期处于空闲的情况下,当流量突然增加时,直接把系统拉升到高水位可能瞬间把系统压垮,比如电商网站的秒杀模块。
通过 Warm Up 模式(预热模式),让通过的流量缓慢增加,经过设置的预热时间以后,到达系统处理请求速率的设定值。
Warm Up 模式默认会从设置的 QPS 阈值的 1/3 开始慢慢往上增加至 QPS 设置值。

流控效果之排队等待

排队等待模式下会严格控制请求通过的间隔时间,即请求会匀速通过,允许部分请求排队等待,通常用于消息队列削峰填谷等场景。需设置具体的超时时间,当计算的等待时间超过超时时间时请求就会被拒绝。
很多流量过来了,并不是直接拒绝请求,而是请求进行排队,一个一个匀速通过(处理),请求能等就等着被处理,不能等(等待时间>超时时间)就会被拒绝
例如,QPS 配置为 5,则代表请求每 200 ms 才能通过一个,多出的请求将排队等待通过。超时时间代表最大排队时间,超出最大排队时间的请求将会直接被拒绝。排队等待模式下,QPS 设置值不要超过 1000(请求间隔 1 ms)。

 

Sentinel 降级规则模块

流控是对外部来的大流量进行控制,熔断降级的视角是对内部问题进行处理。
Sentinel 降级会在调用链路中某个资源出现不稳定状态时(例如调用超时或异常比例升高),对这个资源的调用进行限制,让请求快速失败,避免影响到其它的资源而导致级联错误。当资源被降级后,在接下来的降级时间窗口之内,对该资源的调用都自动熔断,这里的降级其实是Hystrix中的熔断。

RT(平均响应时间 )

当 1s 内持续进⼊ >=5 个请求,平均响应时间超过阈值(以 ms 为单位),那么在接下的时间窗⼝(以 s 为单位)之内,对这个⽅法的调⽤都会⾃动地熔断(抛出 DegradeException)。注意 Sentinel 默认统计的 RT 上限是 4900 ms,超出此阈值的都会算作 4900 ms,若需要变更此上限可以通过启动配置项 -Dcsp.sentinel.statistic.max.rt=xxx 来配置。

异常⽐例

当资源的每秒请求量 >= 5,并且每秒异常总数占通过量的⽐值超过阈值之后,资源进⼊降级状态,即在接下的时间窗⼝(以 s 为单位)之内,对这个⽅法的调⽤都会⾃动地返回。异常⽐率的阈值范围是 [0.0, 1.0] ,代表 0% - 100%。

异常数

当资源近 1 分钟的异常数⽬超过阈值之后会进⾏熔断。注意由于统计时间窗⼝是分钟级别的,若 timeWindow ⼩于 60s,则结束熔断状态后仍可能再进⼊熔断状态。时间窗⼝ >= 60s

 

posted @ 2022-12-09 15:54  muzinan110  阅读(66)  评论(0编辑  收藏  举报