Spring Cloud Alibaba学习(六):熔断器-Sentinel

上一篇:Spring Cloud Alibaba学习(五):服务消费者-Feign

下一篇:Spring Cloud Alibaba学习(七):网关

       在微服务场景下,如图所示,A是上层服务,B、C是底层服务。若此时,B服务宕机,大量需要B服务的请求发送至A服务,那么由于B服务已经不可用,A服务Servlet中大量的请求线程阻塞,最后导致A服务宕机,由于服务与服务之间的依赖,会导致故障传播,进而造成整个微服务瘫痪,称为“雪崩”

       Sentinel是alibaba的开源组件,用于实现故障熔断,防止故障传输,在B服务宕机的情况下,由Fallback进行返回,实现快速失败,释放线程资源。

 以上一章的consumer-feign模块为基础

pom.xml

添加sentinel依赖:spring-cloud-starter-alibaba-sentinel

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>

 application.yml

 增加sentinel配置

feign:
  sentinel:
    enabled: true

fallback方法

创建FallbackServiceImpl实现FeignService

@Component
public class FallBackServiceImpl implements FeignService {
    @Override
    public String getPort(String who) {
        return "调用Provider失败";
    }
}

启用熔断器

在@FeignClient中添加fallback参数

@FeignClient(value = "icydate-provider", fallback = FallBackServiceImpl.class)
public interface FeignService {

    @GetMapping(value = "/get/{caller}")
    String getPort(@PathVariable String caller);

}

目录结构

 此时,我们停止之前的Provider项目模拟服务宕机,访问/call/provider

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值