Sentinel 介绍与下载使用( 二 )


注意:jdk1.8环境/8080端口不能被占用
启动命令:java -jar sentinel-dashboard-1.8.4.jar

Sentinel 介绍与下载使用

文章插图
访问地址:http://localhost:8080/
账号密码:sentinel/sentinel
Sentinel 介绍与下载使用

文章插图
到这里呢,我们的Sentinel就安装成功了,可能有点同学在界面上没有看到任何东西,并没有发现监控的服务,这是因为我们还没有启动项目,而Sentinel本身采用的是懒加载模式,所以我们需要先去访问服务对应的接口,Sentinel才会进行工作,接下来我们就来搭建我们的测试项目
搭建项目Sentinel官方参考文档:https://sentinelguard.io/zh-cn/docs/quick-start.html
注意: 这里我们使用到了Nacos,不会Nacos的小伙伴,可以看我之前的文章,里面有详细的介绍,其实只需要你启动一个端口为8848的Nacos就行
导入依赖:
<!-- Nacos客户端依赖 --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency><!-- sentinel依赖 --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-sentinel</artifactId></dependency>配置属性:
server:port: 8006spring:application:name: cloudalibaba-sentinel-servicecloud:nacos:discovery:server-addr: localhost:8848sentinel:transport:#配置Sentinel地址,就是我们的WEB界面dashboard: localhost:8080#Sentinel配置默认8719端口,被占用端口会自动从+1,直到找到未被占用的端口port: 8719management:endpoints:web:exposure:include: '*'测试类:
import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RestController;import java.util.concurrent.TimeUnit;@RestControllerpublic class TestController {@GetMapping("/playA")public String playA() {return "hello my name is playA ,wo shi boy";}@GetMapping("/playB")public String playB(){return "hi my name is playB,me girl";}}最后在我们的启动类上加上 :@EnableDiscoveryClient,点击启动,然后我们来访问我们的测试地址:
http://localhost:8006/playA
http://localhost:8006/playB
访问之后,我们就能在Sentinel上看到我们的监控信息了,如下所示:
Sentinel 介绍与下载使用

文章插图
Sentinel 流控规则首先我们先来看一张图:
Sentinel 介绍与下载使用

文章插图
上面这张图,就包含了,我们要讲解的全部内容,主要分为以下几点:
资源名:流控规则中唯一的名称,默认为我们的请求路径
针对来源:Sentinel 对调用者进行限流,填写我们的微服务名,默认为default,对来源不进行区分
阈值类型/单机阈值:
QPS(每秒请求数量),使用该类型时,QPS达到我们设置的单机阈值,进行限流线程数:当使用该类型时,线程数量达到我们设置的单机阈值,进行限流是否集群:默认否,如果是集群勾选
流控模式:
直接:API达到限流条件时,直接限流,如果我们设置QPS为1,如果大于这个数量,直接返回错误关联:当关联的资源达到阈值时,限流自己,比如A调用B,B达到了阈值,A进行限流链路:只记录链路上的流量,指定对应的链路路径,从入口开始,如果达到阈值,则进行限流
流控效果:
快速失败:直接抛异常Warm Up:根据冷加载因子codeFactor经过预热时长,才达到设置的QPS阈值排队等待:匀速排队,让请求以匀速速度进行请求,阈值类型,需要设置为QPS,否则无效

经验总结扩展阅读