限流与熔断:Sentinel在项目中的最佳实践

1、Sentinel通讯与降级背后的技术原理

2、Sentinel限流降级的规则配置

3、Sentinel熔断降级的规则配置

Sentinel Dashboard 是Sentinel的控制端,是新的限流与熔断规则的创建者

当内置在微服务的Sentinel Core(客户端)接收到新的限流、熔断规则后,微服务便会自动启用相应的保护措施

执行流程

1、Sentinel Core 与 Sentinel Dashboard建立连接

2、Sentinel Dashboard 向 Sentinel Core 下发新的保护规则

3、Sentinel Core 应用新的保护规则,实施限流、熔断等动作

 

 * 前3个Slot为前置处理,用于收集、统计、分析必要的数据 

 * 后4个Slot为规则检验

* NodeSelectorSlot 负责收集资源的路径,并将这些资源的调用路径,以树状结构存储起来,用于根据调用路径来限流降级

* ClusterBuildSlot 用于存储资源的统计信息以及调用者信息

* StaticSlot用于记录、统计不同维度的runtime信息

* SystemSlot则通过系统的状态,例如CPU、内存的情况,来控制总的入口流量

* AuthoritySlot则根据黑白名单,来做黑白名单控制

* FlowSlot则用于根据预设的限流规则,以及前面Slot统计的状态,来进行限流

* DegradeSlot则通过统计信息,以及预设的规则,来做熔断降级

Sentinel限流降级的规则配置

实现限流降级的核心是如何统计单位时间某个接口的访问量

常见的算法:1、计数器算法;2、漏桶算法;3、令牌桶算法;4、滑动窗口算法; Sentinel采用滑动窗口算法来统计访问量

 滑动窗口算法的理念是 将整段时间均分后独立计数再汇总统计

限流控制的界面操作

注:如果找不到URI,需要先访问一下,就会出现,原因是懒加载模式

资源名:要流控的URI,在Sentinel中URI被称为“资源” 

针对来源:默认为default代表所有来源,可以针对某个微服务或者调用者单独设置

阈值类型:是按每秒访问量(QPS)还有并发数(线程数)进行流控

单机阈值:具体限流的数值是多少

 

 

 

链路模式 是check接口与list接口必须是在同一个调用链路中才会被限流 

 关联模式 是任意两个资源只要设置关联就可以进行限流

流控效果

指在达到流控条件后,对当前请求如何进行处理。快速失败、排队等等、Warm Up(预热)

 

 

假设现在有100个请求瞬间进入

1、单机QPS阈值=1,代表每1秒只能放行1个请求,其它请求队列等待,共需100秒处理完毕

2、单机QPS阈值=4,代表250毫秒匀速放心1个请求,其它请求队列等待,共需25秒处理完毕

3、单机QPS阈值=200,代表5毫秒匀速放行1个请求, 其它请求队列等待,共需0.5秒处理完毕

4、如果某个请求在队列中处于等待状态超过2000毫秒,则直接抛出BlockExcetion

 

Sentinel熔断降级的规则配置

当事务的状态达到某种“不可接受”的状况时,变回触发“熔断”。

如股市熔断:

        熔断条件 就是大盘跌幅超过5%

        熔断的措施 便是强制停止交易15分钟

微服务熔断:在某个服务接口在执行过程中频繁出现故障的情况,这种状态是“不可接受”的,立即对当前接口实施熔断。

 熔断模式:慢调用比例、异常比例、异常数。

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值