1. 依赖
<parent>
<groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.4.RELEASE</version> </parent><properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <java.version>1.8</java.version> </properties><dependencies>
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka</artifactId> </dependency><dependency>
<groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency><dependency>
<groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-feign</artifactId> </dependency> </dependencies><dependencyManagement>
<dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Camden.SR7</version> <type>pom</type> <scope>import</scope> </dependency></dependencies>
</dependencyManagement></project>
2. 启动类
@SpringBootApplication
@EnableEurekaClient@EnableFeignClientspublic class FeignApplication { public static void main(String[] args) { SpringApplication.run(FeignApplication.class, args); } @Bean protected Logger.Level level(){ return Logger.Level.FULL; }}
3. feign
@FeignClient(name="hello-service",fallback=fallbackHelloFeignClient.class)
public interface HelloFeignClient { @RequestMapping(value="/hello") public String hello() throws InterruptedException; @Component static class fallbackHelloFeignClient implements HelloFeignClient{@Override
public String hello() throws InterruptedException { return “error”; } }}
4. 业务
@RestController
public class HelloFeignController { @Autowired private HelloFeignClient client; @GetMapping("/hello") public String hello() throws InterruptedException { return client.hello(); }}
5 配置
server:
port: 8095spring: application: name: feign-consumereureka: client: serviceUrl: defaultZone: http://ym-eureka-server1:8759/eureka/ instance: preferIpAddress: trueribbon: ConnectTimeout: 6000 ReadTimeout: 6000hystrix: command: default: execution: isolation: thread: timeoutInMilliseconds: 15000 feign: hystrix: enabled: truelogging: level: com: ym: debug