Sentinel服务熔断[OpenFegin]

2021-09-10  本文已影响0人  CodeYang

消费侧

  1. 修改pom,引入相关依赖 openfegin
        <!-- 远程调用 -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>
  1. 修改 application.yml 启用 sentinel 对 openfegin的支持
#激活 Sentinel对fegin的支持
feign:
  sentinel:
    enabled: true
  1. 启动类 启用 OpenFegin
@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
public class ConsumerApp81 {
    public static void main(String[] args) {
        SpringApplication.run(ConsumerApp81.class);
    }
}
  1. 创建 openFegin 远程调用接口 ConsumerService
@FeignClient(value = "cloud-provider",fallback = ConsumerFallBackService.class)
public interface ConsumerService {

    @RequestMapping("/provider/hello/{name}")
    public String hello(@PathVariable("name") String name);
}
  1. 创建服务降级类继承ConsumerService

如果远程服务(服务提供者)出现问题了,这边兜底方法

/**
 * 如果远程服务(服务提供者)出现问题了,这边兜底方法
 */
@Component
public class ConsumerFallBackService implements ConsumerService{
    @Override
    public String hello(String name) {
        return "444,服务降级返回";
    }
}
  1. 服务提供者,ProviderController 提供访问路径
@RestController
public class ProviderController {
   @Value("${server.port}")
    private String port;
    @RequestMapping("/provider/hello/{name}")
    public String hello(@PathVariable("name") String name){
        return name+" Welcome To ProviderController "+port;
    }
}
  1. 测试,正常情况下


    正常返回
  2. 异常情况下:关闭服务提供者服务,测试

服务进行了降级处理


服务降级
  1. 修改服务提供者代码,使之内部异常,添加:int a=10/0

服务进行了降级处理

@RestController
public class ProviderController {
   @Value("${server.port}")
    private String port;
    @RequestMapping("/provider/hello/{name}")
    public String hello(@PathVariable("name") String name){
        int a=10/0;
        return name+" Welcome To ProviderController "+port;
    }
}
服务降级
上一篇下一篇

猜你喜欢

热点阅读