sentinel.md 2.9 KB

sentinel

分布式流量防卫兵


sentinel是什么?

  • sentinel是处理高并发的利器,它主要有三大作用:熔断、降级、限流
    • 熔断:A服务调用B服务时发现:“卧槽小老弟你这失败概率有点高啊,我调用你十次得有五次发生异常,你老是这样我没法向上面交代啊,你先歇会吧(熔断),等五分种后我再来看看你好了没”
    • 降级:A服务调用B服务时发现:“卧槽我都等了半分钟了你还没响应,不行不行用户等不及了,我先自己模拟个假值返回给用户算了(降级处理)”; 为了降低系统整体负荷也可以考虑服务降级
    • 限流:秒杀活动开始了,卧槽没想到大家这么热情,一瞬间海量请求涌了过来,我势单力薄处理不过来怎么办?限定一下qps100吧(限制流量),超出qps的请求一律返回: 服务器繁忙请稍后再试 (qps指每秒访问量)

如何使用?

  • sentinel有两种使用方式,一是通过代码配置防卫策略,二是通过sentinel-dashboard控制台配置防卫策略
  • 由于sentinel-dashboard控制台方式更加灵活更加自动化,在此仅演示sentinel-dashboard控制台方式,对代码配置感兴趣的同学可自行搜索相关资料
  • 以针对秒杀活动的限流策略举例:

搭建步骤

1. 下载

2. 启动

进入cmd,运行以下命令

	java -Dserver.port=8002 -Dsentinel.dashboard.auth.username=sentinel -Dsentinel.dashboard.auth.password=sentinel -jar sentinel-dashboard.jar

3. 访问

  • 浏览器访问: http://127.0.0.1:8002
  • 账号: sentinel
  • 密码: sentinel
  • 登录成功如图所示:

sentinel首页

4. 配置限流策略

  • 浏览器访问: http://127.0.0.1:8080/sp-admin/test
  • 一直使劲刷新,此时此接口是可以畅通无阻的
  • 打开sentinel控制台,按照如图所示,配置qps

配置qps限流

  • 再次使劲刷新接口,会看到如图所示

测试qps限流

防卫配置持久化

  • 普通状态下,服务重启后,限流配置信息将会丢失,而如果将sentinel的配置信息储存到nacos中,将可以持久化
  • 打开模块sp-nacos查看bootstrap.properties,与nacos的集成信息已经配置完毕,开发者无须修改,正常启动项目即可