首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >轻量级熔断降级框架 alibaba sentinel 应用

轻量级熔断降级框架 alibaba sentinel 应用

作者头像
WindWant
发布2020-09-11 15:00:02
6240
发布2020-09-11 15:00:02
举报
文章被收录于专栏:后端码事后端码事后端码事

一、简介:

wiki:https://github.com/alibaba/Sentinel/wiki

选择:

♥ 开源,成熟(功能完备、实际应用),活跃(功能维护及拓展)

♥ 更轻量:依赖资源少;api方式或者注解方式资源定义;提供扩展入口(自定义slot规则)

♥ 性能损耗小:只有在业务单机量级超过 25W QPS 的时候才会有一些显著的影响(5% - 10% 左右)

♥♥ 资源,规则分离:埋点资源,按需配置应用规则

核心:资源 + 规则

资源:万物皆资源,通过API定义的任何代码

规则:系统保护、限流,熔断降级等规则

总体框架:

资源Entry对象 + slot chain

熔断降级:

隔离方式:信号量,控制并发线程数(规避线程池隔离方式弊端:预设线程池资源 +上下文切换)

降级策略:

♦ 平均响应时间 (DEGRADE_GRADE_RT=0):秒级,passCount>=5

♦ 异常比例 (DEGRADE_GRADE_EXCEPTION_RATIO=1):秒级,qps >= 5

♦ 异常数 (DEGRADE_GRADE_EXCEPTION_COUNT=2):分钟级

怎么使用:

定义埋点资源

+

配置规则:动态

二、Sentinel 配置:

1、引入依赖:

2、添加配置:

3、规则数据源配置:

a)自定义pull型规则动态数据源:服务每秒拉取配置,有变更则更新规则应用

数据源定义:

规则配置:uc:rules:degrade

[{

"resource": "xxxResource", //应用资源名称

"count": 0.5, //根据 grade 设置,代表 响应时间阈值 | 异常比例(异常数占总数比例)| 异常阈值

"grade": 1, //降级策略 0 平均响应时间 1 异常比例 2 异常数

"limitApp": "default",

"timeWindow": 4 //时间窗口,单位 s,触发规则后,在接下的时间窗口之内,对这个方法的调用都会自动地熔断

} ]

b)apollo动态配置源

依赖:

配置:

配置文件:yml文件

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-01-13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、简介:
  • 二、Sentinel 配置:
    • 1、引入依赖:
      • 2、添加配置:
        • 3、规则数据源配置:
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档