Spring Cloud Alibaba组件之Sentinel

Spring Cloud Alibaba组件之Sentinel

目录

一 引入Sentinel学习

二 Sentinel入门

三 搭建Sentinel Dashboard

四 Springboot项目接入Sentinel

五 接入限流埋点

六 限流配置

七 熔断降级

八 熔断降级Spring Cloud示例

九 黑白名单(授权规则) 

十 持久化

十一 Spring Cloud Alibaba Sentinel三种保护应用方式

一 引入Sentinel学习

提起Spring Cloud的限流降级组件,一般首先想到的是Netflix的Hystrix。

不过就在2018年底,Netflix宣布不再积极开发Hystrix,该项目将处于维护模式。官方表示1.5.18 版本的Hystrix已经足够稳定,可以满足Netflix 现有应用的需求,所以接下来其会把焦点转向对于自适应的实现,更多关注对应用程序的实时性能做出响应。对于新应用的熔断需求,将采用其它项目实现,Netflix推荐了Resilience4j。

作为Spring Cloud Netflix重要套件,Hystrix已经成为保障微服务稳定性的首选应用。其实除了Netflix和Resilience4j,限流降级还有一个新的选择,就是阿里巴巴的Sentinel组件。

二 Sentinel入门

官方文档:https://sentinelguard.io/zh-cn/docs/introduction.html

1 什么是Sentinel?

1.1 问题:

随着微服务的流行,服务与服务之间的调用稳定性变得越来越重要;

1、当服务访问量达到一定程度,流量扛不住的时候,该如何处理?(限流)

2、服务之间相互依赖,当服务B出现响应时间过长,影响到服务A的响应(A调用B),进而产生连锁反应,直至影响整个依赖链上的所有服务(雪崩),该如何处理?(熔断降级)

 这是分布式、微服务开发不可避免的问题。

1.2 Sentinel是什么?

Sentinel(分布式系统的流量防卫兵)是阿里开源的一套用于服务容错的综合性解决方案,随着微服务的流行,服务和服务之间的稳定性变得越来越重要。它以流量为切入点,从流量控制,熔断降级,系统负载保护等多个维度来保护服务的稳定性。

2 Sentinel的特征

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

2、完备的实时监控:Sentinel提供了实时的监控功能。通过控制可以看到接入应用的单台机器秒级数据,甚至500台以下规模的集群的汇总运行情况。

3、广泛的开源生态:Sentinel提供开箱即用的与其他开源框架/库的整合模块,例如与SpringCLoud,Dubbo,gRPC的整合。只需要进入相应的依赖并进行简单的配置即可快速地接入Sentinel。

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

3 Sentinel组成

Sentinel分为两个部分,具体如下:

1、核心库(Java客户端):不依赖任何框架/库,能够运行于所有Java运行时环境,同时对Dubbo/Spring Cloud等框架也有比较好的支持(你的微服务程序,可以直接添加sentinel.jar包)。

2、控制台(Dashboard)基于Spring Boot开发,打包后可以直接运行,不需要额外的Tomcat等应用容器(因为控制台是使用springboot开发,springboot内嵌了tomcat容器)。

这里我们先学习一下控制台的使用方式。

三 搭建Sentinel Dashboard

将应用接入Sentinel,最好搭建Sentinel控制台,可以在控制台上配置规则。

Dashboard是Alibaba写好的SpringBoot程序,我们直接下载启动即可.

1 下载Sentinel Dashboard

下载地址:https://github.com/alibaba/Sentinel/releases

 

2 启动控制台

我们可以在Linux系统或者Windows系统启动Sentinel控制台,这里是直接在Windows上启动

#直接使用jar命令启动项目(控制台本身是一个SpringBoot项目)
java -Dserver.port=9090 -jar sentinel-dashboard-1.8.5.jar
其中,-Dserver.port=9090 代表控制台项目的端口号
hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 » Spring Cloud Alibaba组件之Sentinel