1. Sentinel 概述
Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。
Sentinel 分为两个部分:
- 核心库(Java 客户端)不依赖任何框架/库,能够运行于所有 Java 运行时环境,同时对 Dubbo / Spring Cloud 等框架也有较好的支持。
- 控制台(Dashboard)基于 Spring Boot 开发,打包后可以直接运行,不需要额外的 Tomcat 等应用容器。
Sentinel 可以简单的分为 Sentinel 核心库和 Dashboard。核心库不依赖 Dashboard,但是结合 Dashboard 可以取得最好的效果。
2.基本概念:
资源:是 Sentinel 的关键概念。它可以是 Java 应用程序中的任何内容,例如,由应用程序提供的服务,或由应用程序调用的其它应用提供的服务,甚至可以是一段代码。在接下来的文档中,我们都会用资源来描述代码块。
只要通过 Sentinel API 定义的代码,就是资源,能够被 Sentinel 保护起来。大部分情况下,可以使用方法签名,URL,甚至服务名称作为资源名来标示资源。
规则:围绕资源的实时状态设定的规则,可以包括流量控制规则、熔断降级规则以及系统保护规则。所有规则可以动态实时调整。
我们说的资源,可以是任何东西,服务,服务里的方法,甚至是一段代码。
3.主要作用:
- 流量控制
- 熔断降级
- 系统负载保护
4.使用 Sentinel 来进行资源保护
主要分为几个步骤:
- 定义资源
- 定义规则
- 检验规则是否生效
先把可能需要保护的资源定义好,之后再配置规则。也可以理解为,只要有了资源,我们就可以在任何时候灵活地定义各种流量控制规则。在编码的时候,只需要考虑这个代码是否需要保护,如果需要保护,就将之定义为一个资源。
5.快速开始
官方文档:https://github.com/alibaba/spring-cloud-alibaba/wiki/Sentinel
- 下载最新版本的控制台 jar 包。https://github.com/alibaba/Sentinel/releases
- 启动
copy到一个没有空格或者中文的路径下,新建一个启动文件:sentinel-stasrt.bat
java -Dserver.port=8080 -Dcsp.sentinel.dashboard.server=localhost:8080 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard-1.7.0.jar
运行sentinel-stasrt.bat
即可启动sentinel服务。可参考官方启动方案
- 访问sentinel控制台
在浏览器中访问sentinel控制台,默认: localhost:8080 进入登录页面.
管理页面用户名和密码:sentinel/sentinel