ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Sentinel配置

2021-08-08 11:35:05  阅读:265  来源: 互联网

标签:降级 请求 阈值 配置 访问 限流 Sentinel 每秒


安装Sentinel

  • 下载sentinel-dashboard-1.8.2.jar
  • 安装有jdk环境,8080端口未被占用
  • 在jar包所在目录打开cmd,输入命令启动:java -jar sentinel-dashboard-1.8.2.jar
  • 浏览器访问sentinel的web控制台,用户名和密码是sentinel:http://localhost:8080/

限流:流控模式

  1. 直接
    当我们监控到请求后,在请求下面,点击流控规则 --> 新增流控规则;资源名为接口映射路径

    以上选择QPS+单机阈值表示每秒钟请求超过阈值后,直接失败;若选择线程数+单机阈值表示当线程数达到阈值时限流;区别:选择QPS,达到阈值后就不能请求了,选择线程数,达到阈值后依然可以请求,但请求会一直堵着

  2. 关联:
    A请求关联B请求,当B请求达到阈值后会限制A请求

  3. 链路:
    业务层有一个方法getOrder,控制层有两个方法test1、test2都调用了getOrder方法,当getOrder请求数达到阈值,限制test1的请求,test2依然可请求

    详情可参考:https://blog.csdn.net/Ezerbel/article/details/107919230

限流:流控效果

  1. 快速失败:请求数超过阈值后,返回错误信息
  2. Warm Up(预热):

    单机阈值/3=初始时每秒的处理数量;以上表示最初每秒能处理3条请求,经过预热时长5秒后每秒能处理10条
  3. 排队:
    指定每秒能处理的请求数,超出阈值后的请求将继续等待,等待时间为 <超时时间ms>

降级

  1. 平均响应时间:
    序号1表示选择平均响应时间策略,序号2表示阈值,序号3表示熔断时间

    以上表示:访问testD请求,平均响应时间表示1秒处理5个请求,序号2表示200ms处理5条,导致处理不了;且每秒访问testD请求超过5条,两个条件同时满足时,会触发服务降级熔断1秒;1秒过后,关闭降级

    Sentinel 1.7.0才有平均响应时间(DEGRADE_GRADE_RT),Sentinel 1.8.0的没有这项,取而代之的是慢调用比例

  2. 异常比例:
    访问testD请求,每秒请求数大于5条,且每秒出现异常的比例大于0.2,则触发降级


    若在一秒内发送一条请求,这条请求会出异常,这时每秒请求数小于5,异常比例100%超出阈值,就不会触发降级,而是返回一个错误页面

  3. 异常数:
    每分钟访问的请求中,出现异常的数量超过阈值5则触发降级

  • 降级是请求超时或出现异常时能返回提示信息或有执行备用的方法,返回Blocked by Sentinel (flow limiting)是sentinel默认提示信息

热点参数限流

  • 统计某个请求访问时传入的参数,当该参数达到阈值则进行限流

  • 热点key限流案例:
    编写方法接口/testHotKey,@SentinelResource中指定资源名和兜底的方法

    在sentinel请求下面,点击热点规则 --> 新增热点限流规则;参数索引0表示该请求的第一个参数p1

    以上表示访问/testHotkey同时传入参数p1,每秒访问次数超过阈值1则执行兜底的方法

    以上表示:访问该请求且传入第一个参数,访问次数超过阈值则执行兜底的方法,如果第一个参数的值等于5,每秒访问达到200才执行兜底的方法
    只有sentinel页面配置的限流规则才能触发降级,方法本身的异常不能触发降级

系统规则:


系统规则是限流系统所有的请求访问,例如访问系统的请求总数不能超过阈值,或系统的cup使用率不能超过指定值

标签:降级,请求,阈值,配置,访问,限流,Sentinel,每秒
来源: https://www.cnblogs.com/chniny/p/15109846.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有