Spring Cloud Alibaba(七) Sentinel 连接客服端以及服务熔断

Sentinel连接

POM

        
            org.springframework.cloud
            spring-cloud-starter-alibaba-sentinel
            0.9.0.RELEASE
        

配置文件

这里基于我们把配置注册到了Nacos上 所以我们去Nacos上修改


spring:
  application:
    name: service-consumer
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848
      config:
        encode: utf-8
    # 开启的Sentinel客服端端口号
    sentinel:
      transport:
        dashboard: localhost:8888
        
#允许使用Nacos上连接Sentinel
feign:
  sentinel:
    enabled: true

server:
  port: 9001

注意了

一定要注意在Nacos上注册的配置尽量不要用注解,减少报错可能,我这里是为了展示一下

怎么从Nacos上吧配置加载下来不用我说了吧,应该都懂不懂可以看我之前写的文章(如果有问题,请告诉一下我= =)

注意: 必须至少请求过一次才能在 Sentinel 控制台看到对应的服务

我们也尽量将所有的服务都注册到Sentinel上方便监控管理

服务熔断和服务降级

编写熔断类

@Component
@EnableFeignClients
public class ServiceFallback implements TestService {

    @Override
    public String echo(String string) {
        return "请求失败,进入服务降级";
    }

    @Override
    public String lb() {
        return "请求失败,进入服务降级";
    }
}

Service类上加入服务降级注解

@FeignClient(name = "service-provider", fallback = ServiceFallback.class)
@Service
public interface TestService {

    @RequestMapping(value = "test/echo/{string}",method = RequestMethod.GET)
    String echo(@PathVariable("string") String string);

    @GetMapping(value = "test/lb")
    String lb();
}

测试一下

我们关掉服务提供方测试一下会不会走服务降级

Spring Cloud Alibaba(七) Sentinel 连接客服端以及服务熔断_第1张图片

成功了,这样就算基本配置完成了

Spring Cloud Alibaba(七) Sentinel 连接客服端以及服务熔断_第2张图片

注意: 如果出现注册不上Sentinel的情况,可能是因为配置文件的原因,如果不走服务降级,注意导入的包正不正确

你可能感兴趣的:(spring,cloud,alibaba)