美文网首页
Sentinel服务熔断[OpenFegin]

Sentinel服务熔断[OpenFegin]

作者: CodeYang | 来源:发表于2021-09-10 13:42 被阅读0次

    消费侧

    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;
        }
    }
    
    服务降级

    相关文章

      网友评论

          本文标题:Sentinel服务熔断[OpenFegin]

          本文链接:https://www.haomeiwen.com/subject/whpuiltx.html