上云无忧 > 文档中心 > 腾讯云微服务引擎 TSE Apollo 实战教程 - 基于Apollo配置中心的Sentinel流控规则配置(一)
微服务引擎 TSE
腾讯云微服务引擎 TSE Apollo 实战教程 - 基于Apollo配置中心的Sentinel流控规则配置(一)

文档简介:
介绍: 随着微服务的流行,服务和服务之间的稳定性变得越来越重要。 Sentinel以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。
*此产品及展示信息均由腾讯云官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠
  • 架构图



  • 介绍

随着微服务的流行,服务和服务之间的稳定性变得越来越重要。 Sentinel以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。

Sentinel具有以下特征:

·        丰富的应用场景: Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、实时熔断下游不可用应用等。

·        完备的实时监控: Sentinel 同时提供实时的监控功能。您可以在控制台中看到接入应用的单台机器秒级数据,甚至 500 台以下规模的集群的汇总运行情况。

·        广泛的开源生态: Sentinel 提供开箱即用的与其它开源框架/库的整合模块,例如与 Spring Cloud、Dubbo、gRPC 的整合。您只需要引入相应的依赖并进行简单的配置即可快速地接入 Sentinel。

·        完善的 SPI 扩展点:Sentinel 提供简单易用、完善的 SPI 扩展点。您可以通过实现扩展点,快速的定制逻辑。例如定制规则管理、适配数据源等。

 

  • 规则的种类

Sentinel 的所有规则都可以在内存态中动态地查询及修改,修改之后立即生效。同时 Sentinel 也提供相关 API,供您来定制自己的规则策略。

Sentinel 支持以下几种规则:

流量控制规则熔断降级规则系统保护规则授权规则 和 热点参数规则

流量控制规则(FLowRule)

流量规则的定义

重要属性:

Field

说明

默认值

resource

资源名,资源名是限流规则的作用对象


count

限流阈值


grade

限流阈值类型,QPS 或线程数模式

QPS 模式

limitApp

流控针对的调用来源

default,代表不区分调用来源

strategy

判断的根据是资源自身,还是根据其它关联资源 (refResource),还是根据链路入口

根据资源本身

controlBehavior

流控效果(直接拒绝 / 排队等待 / 慢启动模式)

直接拒绝

同一个资源可以同时有多个限流规则。

熔断降级规则 (DegradeRule)

熔断降级规则包含下面几个重要的属性:

Field

说明

默认值

resource

资源名,即限流规则的作用对象


count

阈值


grade

降级模式,根据 RT 降级还是根据异常比例降级

RT

timeWindow

降级的时间


同一个资源可以同时有多个降级规则。

系统保护规则 (SystemRule)

规则包含下面几个重要的属性:

Field

说明

默认值

highestSystemLoad

最大的 load1,参考值

-1 (不生效)

avgRt

所有入口流量的平均响应时间

-1 (不生效)

maxThread

入口流量的最大并发数

-1 (不生效)

qps

所有入口资源的 QPS

-1 (不生效)

理解上面规则的定义之后,我们可以通过调用 SystemRuleManager.loadRules()方法来用硬编码的方式定义流量控制规则。

授权规则 (AuthorityRule)

很多时候,我们需要根据调用方来限制资源是否通过,这时候可以使用 Sentinel 的黑白名单控制的功能。黑白名单根据资源的请求来源(origin)限制资源是否通过,若配置白名单则只有请求来源位于白名单内时才可通过;若配置黑名单则请求来源位于黑名单时不通过,其余的请求通过。

授权规则,即黑白名单规则(AuthorityRule)非常简单,主要有以下配置项:

  • resource:资源名,即限流规则的作用对象

  • limitApp:对应的黑名单/白名单,不同 origin 用 ,分隔,如     appA,appB

  • strategy:限制模式,AUTHORITY_WHITE为白名单模式,AUTHORITY_BLACK为黑名单模式,默认为白名单模式

更多详情可以参考 黑白名单控制。

热点规则 (ParamFlowRule)

热点参数规则

热点参数规则(ParamFlowRule)类似于流量控制规则(FlowRule):

属性

说明

默认值

resource

资源名,必填


count

限流阈值,必填


grade

限流模式

QPS 模式

paramIdx

热点参数的索引,必填,对应 SphU.entry(xxx, args)中的参数索引位置


paramFlowItemList

参数例外项,可以针对指定的参数值单独设置限流阈值,不受前面  count阈值的限制。仅支持基本类型  


可以通过 ParamFlowRuleManager的 loadRules方法更新热点参数规则

 

详情可以参考 热点参数限流。


  • 实现功能

       1.限流规则配置在配置中心进行配置

       2.应用端实现从配置中心获取限流规则和相关参数

    3.Sentinel控制台可以看到限流参数配置(来自配置中心的数据)配置中心修改限流参数,控制台刷新后变为最新参数


  • 配置中心

 

  • Sentinel控制台


  • 应用端配置

相似文档
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部