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