Spring Cloud服务消费者Feign和断路器Hystrix

一、Feign和Hystrix

1.创建一个maven工程feign_hystrix,在项目的pom.xml添加依赖:

      org.springframework.cloud

      spring-cloud-starter-netflix-hystrix

        org.springframework.cloud

        spring-cloud-starter-openfeign

2.application.yml配置:

server:

  port: 8777

spring:

  application:

    name: feign-hystrix

feign:

  hystrix:

    enabled: true

eureka:

  client:

    service-url:

      defaultZone: http://localhost:8761/eureka/

  instance:

    prefer-ip-address: true

#Hystrix默认超时时间为1秒,如果在1秒得不到响应,就会进入fallback逻辑。首次调用可能会失败。

hystrix:

  command:

    default:

      execution:

        isolation:

          thread:

            timeoutInMilliseconds: 5000    #设置Hystrix的超时时间,默认为1秒

3.修改Feign调用服务的接口的内容:

@FeignClient(name="eureka-client",fallback=UserFeignClientFallBack.class)

public interface UserFeignClient {

    @RequestMapping("/{id}")

    public User getData(@PathVariable("id") Integer id);

}

//回退类FeignClientFallBack 需实现UserFeignClient 接口

@Component

class FeignClientFallBack implements UserFeignClient {

    public User getData(@PathVariable("id") Integer id){

        return new User(1,"admin");

    }

}

4.编写启动类

在启动类上添加@EnableFeignClients、@EnableCircuitBreaker、@EnableEurekaClient注解。

5.启动服务并测试

(1)启动eureka_server

(2)启动feign_hystrix

(3)启动需要调用的服务eureka-client

(4)访问feign_hystrix,可获得正常结果

(5)停止eureka-client,再次访问,进入回退逻辑

你可能感兴趣的:(Spring Cloud服务消费者Feign和断路器Hystrix)