Sentinel的一些知识一

4.Sentinel快速开始

第一种方式 使用API写

第一步 引入依赖

使用API写 缺点:规则不灵活,如需修改,需要在原代码上修改

第二种方式 使用注解来实现

第一步 引入依赖

第二步 写一个配置类  任务:生成一个sentinelResourceAspect()

第三步  写一个报错时执行的函数

SphU.entry 做一个限流

第四步 整合SpringBoot

①引入依赖

②没有注解

③增加配置

默认8719 dashboard 控制台8080

④下载安装Sentinel控制台

流控 降级 热点 授权

流控规则

机器列表

簇点链路  通过QPS 拒绝QPS 线程数 平均RT 分钟通过 分钟拒绝


写一个组件 处理block时的系统返回信息  所有的异常都在这里处理

实现 BlockExceptionHandler  重写 handle方法 传入request 和 response 和 BlockException 三个参数

BlockException包括流控异常 降级异常 对应 热点规则 系统规则 授权规则 集群流控

11222212

继续完善用一个类处理所有的异常   5种不同的异常 

FlowException 接口限流

DegradeException 服务降级

ParamFlowException 热点参数限流

SystemBlockException 触发系统限流

简单测试限流 设置了2秒的睡眠  请求的过快就会被限流  但是稍微等一会 就又可以访问了

流控规则 高级选项 默认 直接快速失败

关联流控模式

11222233

测试关联流控

配置关联规则 当write达到阈值5时,对read进行限流

链路流控  两个Controller同时访问一个Service

注意 需要添加配置 将web-context-unity参数设置为false,才可以根据不同的URL进行链路限流,如果不配置将无法生效。

接下来讲流控效果

包括三个 快速失败(默认) Warm up (预热)排队等待

测试热启动  首先到3,最大的        QPS的三分之一,然后到10

接下来是排队等待

11230954

预热

第一步

排队等待

请求以均匀的速度通过,QPS是每秒通过的请求数,排队等待的做法就是,一秒除以QPS等于t秒,t小于等于1秒,每隔t秒处理一个请求。存在问题:系统内部转化成毫秒进行计算,最小时间单位是毫秒,所以使用排队等待,最大的QPS只有1000个。

第二步 压力测试

设置超时时间 500毫秒

使用jmeter进行压测

测试效果如下所示

下一个知识点 降级规则 

调用别的模块,别的模块响应时间过长

以什么规则进行熔断降级呢?Sentinel提供三个方法。

第一个 慢调用比例

熔断时间两秒

熔断规则

下一个熔断规则 异常比例

异常是异常 ,慢调用是慢调用。基本条件,在一秒内,最小请求数大于5,异常的比例阈值达到0.4时,熔断2秒

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值