springCloud-Alibaba——sentinel简介与微服务集成应用

目录

1、前期概述:

2、Sentinel简介:

3、Sentinel特征:

(1)丰富的应用场景:

(2)完备的实时监控:

(3)广泛的开源生态:

(4)完善的 SPI 扩展点:

4、Feign中应用Sentinel:

(1)引入依赖:

(2)修改配置文件:

(3)创建熔断器类:

(4)Feign接口类指定fallback属性:

5、熔断测试:


1、前期概述:

在微服务架构中,根据业务来拆分成一个个的服务,服务与服务之间可以通过RPC相互调用,在Spring Cloud中可以用RestTemplate + LoadBalanceClient和Feign来调用。为了保证其高可用,单个服务通常会集群部署。由于网络原因或者自身的原因,服务并不能保证 100% 可用,如果单个服务出现问题,调用这个服务就会出现线程阻塞,此时若有大量的请求涌入,Servlet容器的线程资源会被消耗完毕,导致服务瘫痪。服务与服务之间的依赖性,故障会传播,会对整个微服务系统造成灾难性的严重后果,这就是服务故障的“雪崩”效应。为了解决这个问题,业界提出了熔断器模型。

阿里巴巴开源了Sentinel组件,实现了熔断器模式,Spring Cloud 对这一组件进行了整合。在微服务架构中,一个请求需要调用多个服务是非常常见的,较底层的服务如果出现故障,会导致连锁故障。当对特定的服务的调用的不可用达到一个阀值熔断器将会被打开。熔断器打开后,为了避免连锁故障,通过fallback方法可以直接返回一个固定值。

2、Sentinel简介:

随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。

sentinel即哨兵,相比hystrix断路器而言,它的功能更丰富。hystrix仅支持熔断,当服务消费方调用提供方发现异常后,进入熔断;sentinel不仅支持异常熔断,也支持响应超时熔断,另外还支持限流,以及针对网关的熔断和限流。此外,它还有过载处理、监控控制台(Sentinel Dashboard)等。hystrix作为组件集成到微服务中,sentinel也是如此,但它的控制台需要独立部署。

3、Sentinel特征:

(1)丰富的应用场景:

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

(2)完备的实时监控:

Sentinel同时提供实时的监控功能。您可以在控制台中看到接入应用的单台机器秒级数据,甚至500台以下规模的集群的汇总运行情况。

(3)广泛的开源生态:

Sentinel提供开箱即用的与其它开源框架/库的整合模块,例如与 Spring Cloud、Dubbo、gRPC的整合。您只需要引入相应的依赖并进行简单的配置即可快速地接入Sentinel。

(4)完善的 SPI 扩展点:

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

4、Feign中应用Sentinel:

(1)引入依赖:

在微服务项目中需要引入依赖。

springCloud-Alibaba——sentinel简介与微服务集成应用_第1张图片

(2)修改配置文件:

Sentinel 适配了 Feign 组件。但默认是关闭的。需要在配置文件中配置打开它。

springCloud-Alibaba——sentinel简介与微服务集成应用_第2张图片

(3)创建熔断器类:

创建一个实体类,实现Feign的业务接口,并重写业务接口中的所有方法,每个方法返回对应的空业务数据,保证在调用其它微服务业务出现异常后返回一个无意义的空业务数据。

springCloud-Alibaba——sentinel简介与微服务集成应用_第3张图片

(4)Feign接口类指定fallback属性:

在Feign接口的类上,添加fallback属性,指定该业务接口对应的实现类,在Feign调用其它微服务业务出现异常时会调用对应实现类中的无业务数据接口,保证接口能返回数据即可,即便是一个空的无意义数据也行。

springCloud-Alibaba——sentinel简介与微服务集成应用_第4张图片

5、熔断测试:

启动nacos中心服务,启动对应的各个微服务,首先正常情况下访问某个微服务接口,是可以正常返回接口中调用其它微服务的业务数据的。然后关闭调用的其它微服务,再访问该接口,该接口不会返回异常,也会返回数据,但是调用其它微服务返回的数据是无业务意义的数据。这就表示sentinel熔断起作用了。

你可能感兴趣的:(springCloud-Alibaba——sentinel简介与微服务集成应用)