继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

整合Sentinel(1)

fox鑫
关注TA
已关注
手记 19
粉丝 0
获赞 1

导入依赖

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>


下载sentinel

sentinel-dashboard-1.6.2

用Dos命令行启动sentinel服务

java  -Dserver.port=8080 -Dcsp.sentinel.dashboard.server=127.0.0.1:8080 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard-1.6.2.jar

在内容中心content-certer配置文件中配置sentinel地址

sentinel:
  transport:
    dashboard: 127.0.0.1:8080 #指定sentinel控制台的地址

打开sentinel开始画界面

http://127.0.0.1:8080/#/login

流控规则

资源名不一定是路径,只是唯一的名称

针对来源:针对的是哪个微服务

流控模式

    直接:当该API达到阈值就会直接触发流控效果

    关联:

http://img3.sycdn.imooc.com/60ed1cb200019b8c08730701.jpg

当关联资源中的API达到阈值,资源名中的API就会触发流控效果,当关联资源达到阈值,就限流自己

    链路:

只记录指定链路上的流量

新建一个service

@SentinelResource("common")

http://img1.sycdn.imooc.com/60ed1dab0001642a10950487.jpg

控制器中调用该service

http://img2.sycdn.imooc.com/60ed1e0300019a8713630793.jpg

点击test-a中的common进行流控

http://img1.sycdn.imooc.com/60ed1e5f0001381d17450782.jpg

入口资源写test-a

http://img1.sycdn.imooc.com/60ed1e890001665909670717.jpg

当test-a达到阈值就会别限流触发流控效果,而test-b不会。


流控效果:

    快速失败:直接失败,抛异常

    Warm UP(预热):根据codeFactor(默认3)的值,从阈值/codeFactor,经过预热时长,才达到设定好的QPS阈值。eg:(阈值=100;预热时长=10s)=>最初的阈值为100/3,经过十秒后慢慢爬升到100;适用于秒杀场景,允许通过的流量缓慢增加。

    排队等待:匀速排队,让请求以均匀的速度通过,阈值类型必须是QPS,

                    eg:(阈值=100,超时时间=500),当API达到阈值一秒被访问100次后,后面的请求会进行排队等待,等待时间为500s,超过500s,这次排队的请求就会挂掉。


服务降级

降级即“断路器模式”


 RT默认最大是4900ms,可以通过Dcsp.sentinel.statistic.max.rt=xxx修改最大RT
 (RT=1,时间窗口=5):这个API秒级统计大于1毫秒,并且在5秒内通过的请求大于等于五次,触发断路器。

   

时间统计为60s,如果时间窗口小于60s,就会出现时间窗口关闭后因为异常数是分钟级别的
所以会重新进入断路器,直到60s后


热点规则

热点规则是比服务降级更加细分到请求参数上

在内容中心编写

@GetMapping("/test-hot")
@SentinelResource("hot")
public String testHot(@RequestParam(required = false)String a,
@RequestParam(required = false) String b){
        return a+" "+b;
}

在sentinel控制台中配置

http://img.mukewang.com/60ee6cc00001615413600734.jpg

当请求端点/share/1的第一个参数(参数索引对应的请求参数的下标索引)的在统计窗口时长(这里是1S)内QPS达到阈值(这里是1)


http://img.mukewang.com/60ee6e2f0001f80e09640826.jpg

在编辑热点中,可以设置该参数为何值的阈值,这里是当参数为5的时候阈值为10000,在配置热点参数规则中,参数必须是八大基本类型或string


系统规则

授权规则

该端点只允许test访问(白名单),不允许访问(黑名单)

http://img.mukewang.com/60eef4db0001507a12580567.jpg




打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP