Java教程

整合Sentinel

本文主要是介绍整合Sentinel,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

导入依赖

<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,这次排队的请求就会挂掉。

    

这篇关于整合Sentinel的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!