Sentinel简介及控制台安装

阿里巴巴的流量防卫兵——Sentinel

Sentinel 是阿里巴巴技术团队于 2018 年开源的一款中间件产品,官方定义为:

面向分布式、多语言异构化服务架构的流量治理组件。

Sentinel 官网页面如图 11-4 所示。

image 2025 04 18 12 07 14 060
Figure 1. 图11-4 Sentinel 官网页面

Sentinel 被称为分布式系统的流量防卫兵,是阿里巴巴开源的流量控制框架,从服务限流、降级、熔断等维度来保护服务和系统稳定,历经阿里巴巴近10年大流量的考验,非常值得信赖。Sentinel 提供了简洁易用的控制台,可以看到接入应用的资源数据,并且可以在控制台设置一些规则来保护应用。SentinelHystrix 支持的范围广,如 Spring CloudDubbogRPC 都可以很方便地整合。Sentinel 集成非常简单,只需要少量的配置和代码就能够轻松集成到项目中,也很容易完成一些定制化的逻辑。

  • 2012年,Sentinel 诞生于阿里巴巴集团内部,主要功能为入口流量控制。

  • 2013-2017年,Sentinel 在阿里巴巴集团内部迅速发展,成为基础技术模块,覆盖了所有的核心场景。Sentinel 也因此积累了大量的流量归整场景及生产实践。

  • 2018年7月,阿里巴巴宣布限流降级框架组件 Sentinel 正式开源,并持续演进。国内的微服务开源领域迎来了一位新成员——Alibaba Sentinel

  • 2019年4月,Sentinel 贡献的 spring-cloud-circuitbreaker-sentinel 模块正式被 Spring Cloud 社区合并至 Spring Cloud Circuit Breaker,成为 Spring Cloud 官方的主流推荐选择之一。

  • 2022年,Sentinel 品牌升级为流量治理,领域涵盖流量路由/调度、流量染色、流控降级、过载保护/实例摘除等。同时,社区将流量治理相关标准抽到 OpenSergo 标准中,Sentinel 作为流量治理标准实现。

以上就是 Sentinel 的发展历程。

Sentinel 具备如下优良的特性,如图 11-5 所示。

image 2025 04 18 12 09 09 283
Figure 2. 图11-5 Sentinel 特性总结
  1. 丰富的应用场景。

    Sentinel 承接了阿里巴巴近 10 年的 “双11” 大促流量的核心场景,如秒杀(突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时熔断下游不可用应用等。

  2. 完备的实时监控。

    Sentinel 提供实时的监控功能。开发人员可以在控制台中看到接入应用的单台机器秒级数据,甚至 500 台以下规模的集群的汇总运行情况。

  3. 广泛的开源生态。

    Sentinel 提供开箱即用的与其他开源框架的整合模块,如与 Spring CloudDubbogRPC 的整合,只需要引入相应的依赖并进行简单的配置即可快速地接入 Sentinel

  4. 完善的 SPI 扩展点。

    Sentinel 提供简单易用、完善的 SPI 扩展接口。开发人员可以通过实现扩展接口来快速地定制逻辑,如定制规则管理、适配动态数据源等。

下载与启动Sentinel控制台

Sentinel 分为两部分,包括 Sentinel 控制台和 Sentinel 客户端。读者注意不要把这两部分内容弄混了。

Sentinel 客户端需要集成在 Spring Boot 微服务实例中,用于接收来自 Dashboard 配置的各种规则,并通过 Spring MVC Interceptor 拦截器技术实现应用限流、熔断保护。

Sentinel 提供了一个轻量级的开源控制台,它提供机器发现、健康情况管理和监控(单机和集群)、规则管理和推送的功能。Sentinel 客户端并不依赖 Sentinel 控制台,但是结合控制台可以取得最好的效果,有一个可视化的页面更方便也更直观。

Sentinel 控制台安装包的下载网址为网址14。

本书选择的控制台版本是 1.8.4,下载网址为网址15。

下载成功后,会得到一个名称为 sentinel-dashboard-1.8.4.jar 的可执行文件。

在启动 Sentinel 控制台前,必须确保系统中已经安装了 JDK 环境,版本为 JDK 8 以上版本。

下载好文件之后,可以使用命令行进入这个 Jar 包所在的目录,之后直接执行下面这行命令启动 Sentinel 控制台。

java -jar sentinel-dashboard-1.8.4.jar

启动后的日志输出内容如下:

image 2025 04 18 12 13 00 781

启动时的默认端口号是 8080,如果想要修改,可以在启动命令中增加 -Dserver.port 参数。如想把端口号修改为 9113,可以执行如下命令:

java -jar -Dserver.port=9113 sentinel-dashboard-1.8.4.jar
# 如果上面这条命令报错,则执行下面这条命令,效果是一样的
java -jar sentinel-dashboard-1.8.4.jar --server.port=9113

启动成功后,可以直接访问如下地址:

http://localhost:9113

Sentinel 控制台的登录页面如图 11-6 所示。

image 2025 04 18 12 15 48 582
Figure 3. 图11-6 Sentinel 控制台的登录页面

默认的用户名和密码都是 sentinel,输入后单击 “登录” 按钮即可进入控制台页面。登录后的初始页面如图 11-7 所示。

image 2025 04 18 12 16 21 991
Figure 4. 图11-7 Sentinel 控制台的初始页面

第一次进入该页面,会发现页面中大部分版面都是空白的,没有什么内容。这是正常情况,只有真正接入数据,相关的内容才会显示出来。