首先我们为sentinel准备好两个资源 ,分别是hello和sentinel
创新互联是一家专业提供永顺企业网站建设,专注与成都网站设计、网站建设、H5页面制作、小程序制作等业务。10年已为永顺众多企业、政府机构等服务。创新互联专业网站制作公司优惠进行中。流控qps即Query Per Second,每秒的请求数
线程数顾名思义就是对该处理该资源时创建的线程数
default代表所有来源
单机阈值,超出阈值的请求将会被sentinel流控,如下
高级选项流控模式:
1. 直接
即该规则对当前资源(接口生效)
2.关联(此处为反向关联)
如上,假设我针对/hello资源设置qps阈值为1的流控规则,其关联的资源为sentinel
如果按照传统思维我们可能以为以下的设置是指: 当/hello的qps超过1时,将会对/sentinel进行限流
但这里的关联实际为反向关联,即当/sentinel的qps超过1,sentinel将会对/hello进行限流,当我以超过阈值的qps请求/sentinel资源时,我们去访问/hello资源,效果如下
3.链路
首先需要注意
Sentinel默认会将Controller方法做context整合,导致链路模式的流控失效,需要修改application.yml,添加配置关闭context的整合
spring.cloud.sentinel.web-context-unify=false
示例:新建一个service,其中有一个方法testService(),用@SentinelResource注解将其标注为sentinel的资源,否则sentinel默认只会将controller中的接口作为资源,
再hello和sentinel中均调用此方法
service
controller
在sentinel dashboard中查看簇点链路
此时我们对于testService资源来说,调用它的链路有两条,分别是
/hello ->testService
/sentinel ->testService
我们新增如下的流控规则,即代表如果从/hello链路调用testService将会受到sentinel的qps阈值为1的流控规则,而其他链路(如/sentinel)链路调用则不受影响
流控效果(流控效果均只针对于qps模式)1.快速失败
即由sentinel直接返回失败结果
2. Warm up(冷启动,预热)
即让请求的qps阈值根据设定的时长缓慢增加至大的阈值,如下图即让qps阈值从5秒内缓慢增加至10(初始值由sentinel决定)
3.排队等待
顾名思义,让进来的请求排队依次通过,但不可能让请求一直排队,因此我们可以设置请求的超时时间,如果超过等待时间则直接失败。
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧