一、Sentinel 简介
Sentinel 为阿里巴巴下的一款断路器实现。随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel以流量作为切入点,从流量控制、熔断降级、系统负载保护等多个维度维护保持服务的稳健性。
Sentinel具有以下特征:
- 丰富的应用场景:Sentinel承接了阿里近10年的双十一大促流量的核心场景,例如秒杀(将并发流量控制在系统的可承受范围内)、消息削峰填谷、集群流量控制、实时熔断下游不可用应用等。
- 完备的实时监控:Sentinel同时提供实时的监控功能。您可以在控制台中看到接入接入应用的单台机器秒级数据、甚至500台一下的集群的汇总运行情况。
- 广泛的开源生态:Sentinel提供开箱即用的与其他开源框架/库的整合模块,例如SpringCloud、Dubbo、gRPC的整合。您只需要引入相关依赖并进行简单的配置即可快速的接入Sentinel。
- 完善的SPI扩展点:Sentinel提供简单易用、完善的SPI扩展接口。您可以通过实现扩展接口来快速的定制逻辑。例如定制规则管理、适配动态数据源等。
二、Sentinel 与 Hystrix 对比
Sentinel | Hystrix | |
隔离策略 | 信号量隔离(并发线程数限流) | 线程池隔离/信号量隔离 |
熔断降级策略 | 基于相应时间、异常比率、异常数 | 基于异常比率 |
实时统计实现 | 滑动窗口(LeapArray) | 滑动窗口(基于Rxjava) |
动态规则配置 | 支持多种数据源 | 支持多种数据源 |
扩展性 | 多个扩展点 | 插件的形式 |
基于注解的支持 | 支持 | 支持 |
限流 | 基于qps,支持基于调用关系的限流 | 有限的支持 |
流量整形 | 支持预热模式、匀速器模式、预热排队模式 | 不支持 |
系统自适应保护 | 支持 | 不支持 |
控制台 | 提供开箱即用的控制台,可配置规则、查看秒级监控、机器发现等 | 简单的监控查看 |
三、控制台搭建
现在启动jar包 sentinel-dashboard-1.8.0.jar
下载链接页面 https://github.com/alibaba/Sentinel/releases
在 jar包目录下打开命令窗口执行,注意前后端口保持一致为控制台页面访问端口:
java -Dserver.port=8080 -Dcsp.sentinel.dashboard.server=localhost:8080 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard-1.8.0.jar
启动如下图:
控制台访问地址:127.0.0.1:8080 默认登录用户名密码 sentinel/sentinel