SpringCloud-Fegin-01入门介绍

简介

Feign是一个声明式的伪Http客户端,它使得写Http客户端变得更简单。使用Feign,只需要创建一个接口并注解。它具有可插拔的注解特性,可使用Feign 注解和JAX-RS注解。Feign支持可插拔的编码器和解码器。Feign默认集成了Ribbon,并和Eureka结合,默认实现了负载均衡的效果。
简而言之:

  • Feign 采用的是基于接口的注解
  • Feign 整合了ribbon,具有负载均衡的能力
  • 整合了Hystrix,具有熔断的能力

Demo

加依赖


  org.springframework.cloud
  spring-cloud-starter-openfeign

编写接口

// FeignClient指定要调用的user-server服务(在Eureck中注册好的)
@FeignClient(name = "user-server")
public interface UserFeignClient {
  @GetMapping("/users/{id}")
  User findById(@PathVariable("id") Long id);
}

编写调用

@RestController
public class TestController {
// 使用注解注入即可使用
  @Autowired
  private UserFeignClient userFeignClient;
}

配置参数-局部配置(Edgware开始支持)

局部配置<指定feignName>

 # 相当于Request.Options
feign.client.config..connectTimeout=5000
# 相当于Request.Options
feign.client.config..readTimeout=5000
 # 配置Feign的日志级别,相当于代码配置方式中的Logger
feign.client.config..loggerLevel=full
# Feign的错误解码器,相当于代码配置方式中的ErrorDecoder
feign.client.config..errorDecoder= com.example.SimpleErrorDecoder
# 配置重试,并不建议使用(Spring Cloud Camden以及之后的版本,关闭了Feign的重试,而是使用Ribbon的重试)
feign.client.config..retryer= com.example.SimpleRetryer
# 配置拦截器,相当于代码配置方式中的RequestInterceptor
feign.client.config..requestInterceptors=

全局配置<指定default>
feign.client.config.default.connectTimeout=5000
feign.client.config.default.readTimeout=5000
feign.client.config.default.loggerLevel=full

你可能感兴趣的:(SpringCloud-Fegin-01入门介绍)