您现在的位置是:主页 > 数据库技术 > 数据库技术

Spring Cloud中Feign与Hystrix整合的示例分析

IDCBT2021-12-25服务器技术人已围观

简介这篇文章给大家分享的是有关Spring Cloud中Feign与Hystrix整合的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 Feign与Hystrix整合 Feign对Hystrix提供

这篇文章给大家分享的是有关Spring Cloud中Feign与Hystrix整合的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

Feign与Hystrix整合

        Feign对Hystrix提供了支持,为“服务调用者”加入以下Feign依赖:

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-feign</artifactId>
        </dependency>

        在application.yml中打开Feign的Hystrix开关,请见以下配置:

feign:
  hystrix:
    enabled: true

        在应用启动类里面,加入开Feign的开关,本小节的“服务调用者”应用启动类,所使用的注解如下:

@SpringBootApplication
@EnableDiscoveryClient
@EnableCircuitBreaker
@ServletComponentScan
@EnableFeignClients

        新建Feign接口,调用“服务提供者(spring-hystrix-provider)”的“/hello”服务,请见代码清单6-24。

        代码清单6-24:

        codes\06\6.4\spring-hystrix-invoker\src\main\java\org\crazyit\cloud\feign\HelloClient.java

@FeignClient(name = "spring-hystrix-provider", fallback = HelloClientFallback.class)
public interface HelloClient {

    @RequestMapping(method = RequestMethod.GET, value = "/hello")
    public String hello();

    @Component
    static class HelloClientFallback implements HelloClient {

        public String hello() {
            System.out.println("hello 方法的回退");
            return "error hello";
        }
    }
}

        与普通的Feign客户端无异,仅仅设置了处理回退的类,回退类实现了客户端接口。为了能测试效果,修改服务器端的“/hello”服务,让其有800毫秒的延时。根据前面章节可知,默认情况下,Hystrix的超时时间为1秒,因此,还需要修改配置超时配置。代码清单6-25,在application.yml中修改命令配置。

        代码清单6-25:codes\06\6.4\spring-hystrix-invoker\src\main\resources\application.yml

标签:

很赞哦! ()

本栏推荐