【SpringCloudAlibaba系列】分布式限流框架Sentinel特性及组成| 8月更文挑战

229 阅读2分钟

分布式限流框架Sentinel

​ Sentinel是面向分布式服务架构的轻量级流量控制组件,主要以流量为关注点,从限流、网络流量整形、服务降级等多个方向维护微服务的稳定性。

服务熔断与降级

在微服务架构中,服务拆分粒度细,请求链路长,因此用户发起一个请求,需要调用多个微服务才能完成响应。

如某个服务因网络延迟或者请求超时等原因不可用,就会导致当前请求阻塞,如果某个链路上依赖服务不可用时,出现请求堆积情况,可能导致雪崩效应。所以服务熔断是用来解决这个问题的方案。

服务熔断:某个服务提供者无法正常为调用者提供服务,比如服务异常、请求超时等,为了防止系统出现雪崩效应,暂时把出现故障的接口隔离出来,断开与外部接口的联系,当触发熔断后,一段时间内该服务调用请求都会直接失败或者返回规定好的数据,直接到服务正常调用关闭熔断状态。

Sentinel的特性
  • 应用于秒杀、消息削峰填谷、集群流量控制等业务场景
  • 实时监控,在控制台能查看接入应用机器秒级数据
  • 开源生态支持:Sentinel提供开箱即用与其他开源框架整合,只需要引入相关的依赖并进行配置即可整合Sentinel
  • SPI扩展支持:可通过扩展点来定制化限流规则、动态数据源适配等需求
Sentinel组成

Sentinel分两部分组成

  • 控制台:基于SpringBoot开发,打包后可直接运行,不需要部署Tomcat应用容器
  • 核心库:不依赖任何框架,能够运行于所有Java运行时环境
Sentinel Dashboard的部署

Sentinel提供一个轻量级的开源控制台,支持机器发现,以及健康情况管理、监控、规则管理和推送的功能。

Sentinel源码地址:github.com/alibaba/Sen…

启动控制台命令

java -Dserver.port=9999 -Dcsp.sentinel.dashboard.server=localhost:9999 -Dproject.name=
sentinel-dashboard -jar sentinel-dashboard.jar

参数含义如下

  • -Dserver.port:指定Sentinel控制台的访问端口,默认是8080
  • -Dcsp.sentinel.dashboard.server:指定Sentinel bashboard控制台的IP地址和端口,设置的目的是把自己的限流数据暴露到监控平台
  • -Dproject.name:设置项目名称

Sentinel控台自从1.6.0开始引入基本的登录功能,默认用户名和密码是sentinel