栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

springCloudAlibaba使用sentinel入门,流控

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

springCloudAlibaba使用sentinel入门,流控

部署sentinel控制台

先上一波github文档
https://github.com/alibaba/Sentinel/wiki/%E6%8E%A7%E5%88%B6%E5%8F%B0
下载jar包直接启动就行,官方文档里挺详细的

sentinel控制台没有指定账密的话默认都是sentinel

使用sentinel(先上依赖)

默认已经引入了springCloud和springCloudAlibaba的依赖,要注意sentinel服务端的版本,可以在引入这个依赖后查看sentinel的版本,从而确定server端版本


    com.alibaba.cloud
    spring-cloud-starter-alibaba-sentinel

yml配置完就ok了

spring:
	cloud:
		sentinel:
		  transport:
		    # 指定sentinel控制台地址
		    dashboard: localhost:8080
		    # 指定和控制台通信的IP,若不配置,会自动选择一个IP注册
		    client-ip: 127.0.0.1
		    # 指定和控制台通信的端口哦,默认值8719
		    # 若不配置,会自动扫猫从8719开始扫猫,依次+1,知道值找到未被占用的端口
		    port: 8719
		    # 心跳发送周期,默认值null
		    # 但在SimpleHttpHeartbeatSender会用默认值10秒
		    heartbeat-interval-ms: 10000
如果想查看actuator/sentinel的信息

需要引入actuator的依赖

 
    org.springframework.boot
    spring-boot-starter-actuator

然后在yml中配置

management:
  endpoints:
    web:
      exposure:
        include: '*'

接着访问配置上述yml的微服务,注意不是访问sentinel服务端.是访问上面配置的yml的tomcat应用

http://localhost:9005/actuator/sentinel

sentinel的流控规则介绍

规则介绍

资源名:唯一名称,默认请求路径,有可能不是路径因为其就只是一个名称而已针对来源:Sentinel可以针对调用者进行限流,填写微服务名,默认default(不区分来源)阈值类型/单机阈值:
QPS(每秒钟的请求数量):当调用该api的QPS达到阈值的时候,进行限流
线程数:当调用该api的线程数达到阈值的时候,进行限流是否集群:不需要集群,暂不研究流控模式:
直接:api达到限流条件时,直接限流 .(直接生效限流操作)
关联:当关联的资源达到阈值时,就限流自己
链路:只记录指定链路上的流量(指定资源从入口资源进来的流量,如果达到阈值,就进行限流)【api级别的针对来源】流控效果:
快速失败:直接失败,抛异常
Warm Up:根据codeFactor(冷加载因子,默认3)的值,从阈值/codeFactor,经过预热时长,才达到设置的QPS阈值.就是让请求逐步增长,这个时候高并发下实际请求会大于通过的请求,剩下的实际请求还是会失败的.可以看下面的warmUp的demo.
排队等待:匀速排队,让请求以匀速的速度通过,阈值类型必须设置为QPS,否则无效 针对单个api设置QPS直接快速失败(流控模式直接)


比如设置QPS的域名为2,即每秒最大请求次数2次,用postman模拟后可以看到前2次都成功了,后面的几次都失败了

针对某个api流控模式关联demo

当某个服务已经满载的时候这个时候就限流自己,防止把对面的服务搞挂了.起到保护关联资源的效果.

链路demo

可以针对调用同一个@SentinelResource注解声明的服务(方法)的多个api进行来源限流,细化到了api级别


流控效果–warmUp

在设置订预热时长内让系统慢慢的将阈值升至给定值,

流控效果—排队等待

阈值类型必需设置成QPS,否则无效

降级规则

当单位统计时长(statIntervalMs默认1000ms)内请求数目大于设置的最小请求数目,并且慢调用的比例大于阈值,则接下来的熔断时长内请求会自动被熔断。经过熔断时长后熔断器会进入探测恢复状态(HALF-OPEN 状态),若接下来的一个请求响应时间小于设置的慢调用 RT 则结束熔断,若大于设置的慢调用 RT 则会再次被熔断,然后就又要保持熔断时间,在熔断期间的所有请求都是进不来的,都会被拒绝。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/731662.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号