官网文档地址:http://sentinelguard.io/zh-cn/
GitHub文档地址:https://github.com/alibaba/Sentinel/wiki
Sentinel是面向分布式、多语言异构化服务架构的流量治理组件,主要以流量为切入点,从流量路由、流量控制、流量整形、熔断降级、系统自适应过载保护、热点流量防护等多个维度来帮助开发者保障微服务的稳定性。
Sentinel是分布式系统的防御系统。
任意时间到来的请求往往是随机不可控的,而系统的处理能力是有限的。我们需要根据系统的处理能力对流量进行控制。Sentinel作为一个调配器,可以根据需要把随机的请求调整成合适的形状,如下图所示:
流量控制有以下几个角度:
- 资源的调用关系,例如资源的调用链路,资源和资源之间的关系;
- 运行指标,例如 QPS、线程池、系统负载等;
- 控制的效果,例如直接限流、冷启动、排队等。
熔断降级
除了流量控制以外,降低调用链路中的不稳定资源也是Sentinel的使命之一。由于调用关系的复杂性,如果调用链路中的某个资源出现了不稳定,最终会导致请求发生堆积。这个问题和Hystrix里面描述的问题是一样的。
Sentinel和Hystrix的原则是一致的:当调用链路中某个资源出现不稳定。例如,表现为timeout,异常比例升高的时候,则对这个资源的调用进行限制,并让请求快速失败,避免影响到其它的资源,最终产生雪崩的效果。
一、Sentinel控制台
Sentinel控制台是可以提供对Sentinel主机的发现及健康管理、动态配置服务流控、熔断、路由规则的配置与管理。
1.1 下载控制台
下载时要先查清楚当前的Spring Cloud Alibaba版本兼容的是哪个Sentinel版本,然后再下载相应Sentinel版本的控制台。
查看对应版本:版本说明 · alibaba/spring-cloud-alibaba Wiki · GitHub
Sentinel Dashboard官网:Releases · alibaba/Sentinel · GitHub
下载相应Sentinel版本的控制台。
1.2 启动控制台
启动Sentinel控制台需要JDK版本为1.8及以上版本。在Sentinel控制jar包所在目录中打开cmd窗口,执行启动命令。
java -Dserver.port=8888 ^
-Dcsp.sentinel.dashboard.server=localhost:8888 ^
-Dproject.name=sentinel-dashboard ^
-jar sentinel-dashboard-1.8.6.jar
-Dserver.port=8888用于指定Sentinel控制台端口为8888
Ctrl + C可以结束进程
1.3 访问控制台
从Sentinel 1.6.0起,Sentinel控制台引入基本的登录功能,默认用户名和密码都是sentinel。
1.4 修改账号密码
java -Dserver.port=8888 ^
-Dsentinel.dashboard.auth.username=sentinel ^ // 修改用户名
-Dsentinel.dashboard.auth.password=111 ^ // 修改密码
-jar sentinel-dashboard-1.8.6.jar
二、服务降级
三、熔断规则
暂无
四、自定义异常处理器
暂无
五、流控规则
暂无
六、来源流控
暂无
七、授权规则
暂无
八、热点规则
暂无
九、系统规则
暂无
十、网关流控
暂无
十一、规则持久化
暂无
十二、集群流控
暂无