多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
## 1、Sentinel 简介 ### **1.1 Sentinel是什么:** 随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 是面向分布式服务架构的流量控制组件,主要以流量为切入点,从限流、流量整形、熔断降级、系统负载保护、热点防护等多个维度来帮助开发者保障微服务的稳定性。 ### **1.2 Sentinel 的主要工作机制:** * 对主流框架提供适配或者显示的 API,来定义需要保护的资源,并提供设施对资源进行实时统计和调用链路分析。 * 根据预设的规则,结合对资源的实时统计信息,对流量进行控制。同时,Sentinel 提供开放的接口,方便您定义及改变规则。 * Sentinel 提供实时的监控系统,方便您快速了解目前系统的状态。 ### **1.3 Sentinel的功能特性:** 1. 流量控制 2. 熔断降级 3. 系统自适应保护 具体可参考官网介绍:[https://github.com/alibaba/Sentinel/wiki/%E4%B8%BB%E9%A1%B5](https://github.com/alibaba/Sentinel/wiki/%E4%B8%BB%E9%A1%B5) 本文主要从限流入手,说说如何把Sentinel整合到Spring Cloud应用中,以及如何使用Sentinel Dashboard来配置限流规则。 ### **1.4 什么是流量控制** 流量控制在网络传输中是一个常用的概念,它用于调整网络包的发送数据。然而,从系统稳定性角度考虑,在处理请求的速度上,也有非常多的讲究。任意时间到来的请求往往是随机不可控的,而系统的处理能力是有限的。我们需要根据系统的处理能力对流量进行控制。Sentinel 作为一个调配器,可以根据需要把随机的请求调整成合适的形状,如下图所示: ![](https://img.kancloud.cn/5c/13/5c130478d0273b2ed73233e65a972005_803x431.png) **流量控制设计理念** **流量控制有以下几个角度:** * 资源的调用关系,例如资源的调用链路,资源和资源之间的关系; * 运行指标,例如 QPS、线程池、系统负载等; * 控制的效果,例如直接限流、冷启动、排队等。 Sentinel 的设计理念是让您自由选择控制的角度,并进行灵活组合,从而达到想要的效果。 ## 2、Sentinel控制台 ### 2.1 获取Sentinel控制台 您可以从 [release 页面](https://github.com/alibaba/Sentinel/releases) 下载最新版本的控制台 jar 包。 您也可以从最新版本的源码自行构建 Sentinel 控制台: 1、下载 [控制台](https://github.com/alibaba/Sentinel/tree/master/sentinel-dashboard) 工程 使用以下命令将代码打包成一个 fat jar: ``` mvn clean package -DskipTests ``` 2、直接下载jar包 [https://github.com/alibaba/Sentinel/releases/download/v1.8.0/sentinel-dashboard-1.8.0.jar](https://github.com/alibaba/Sentinel/releases/download/v1.8.0/sentinel-dashboard-1.8.0.jar) ### 2.2 启动 >[danger] **注意**:启动 Sentinel 控制台需要 JDK 版本为 1.8 及以上版本。 使用如下命令启动控制台: ~~~ java -Dserver.port=8080 -Dcsp.sentinel.dashboard.server=localhost:8080 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard.jar ~~~ 其中 `-Dserver.port=8080` 用于指定 Sentinel 控制台端口为 `8080`。 或者 ``` java -jar sentinel-dashboard-1.8.0.jar ``` `本地启动,访问:localhost:8080,`输入账户密码登录后,可以看到如下页面: ![](https://img.kancloud.cn/d8/08/d8081638d8a51954d72e3ef1475c2608_675x416.png) >[danger] 注:首次登陆是显示空白,因为这里我启动了其他服务应用。 ![](https://img.kancloud.cn/fb/11/fb116eddffbe1e77bfb3e974314ff243_840x391.png)