Sentinel简介及控制台安装
阿里巴巴的流量防卫兵——Sentinel
Sentinel
是阿里巴巴技术团队于 2018 年开源的一款中间件产品,官方定义为:
面向分布式、多语言异构化服务架构的流量治理组件。
Sentinel
官网页面如图 11-4 所示。

Sentinel
被称为分布式系统的流量防卫兵,是阿里巴巴开源的流量控制框架,从服务限流、降级、熔断等维度来保护服务和系统稳定,历经阿里巴巴近10年大流量的考验,非常值得信赖。Sentinel
提供了简洁易用的控制台,可以看到接入应用的资源数据,并且可以在控制台设置一些规则来保护应用。Sentinel
比 Hystrix
支持的范围广,如 Spring Cloud
、Dubbo
、gRPC
都可以很方便地整合。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 所示。

-
丰富的应用场景。
Sentinel
承接了阿里巴巴近 10 年的 “双11” 大促流量的核心场景,如秒杀(突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时熔断下游不可用应用等。 -
完备的实时监控。
Sentinel
提供实时的监控功能。开发人员可以在控制台中看到接入应用的单台机器秒级数据,甚至 500 台以下规模的集群的汇总运行情况。 -
广泛的开源生态。
Sentinel
提供开箱即用的与其他开源框架的整合模块,如与Spring Cloud
、Dubbo
、gRPC
的整合,只需要引入相应的依赖并进行简单的配置即可快速地接入Sentinel
。 -
完善的 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
启动后的日志输出内容如下:

启动时的默认端口号是 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 所示。

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

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