基本使用
依赖
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
spring-cloud-starter-openfeign本身已经包含了Ribbon
启动配置
增加 @EnableFeignClients 注解
@SpringBootApplication
@EnableFeignClients
public class Application80 {public static void main(String[] args) {SpringApplication.run(Application80.class, args);}
}
定义微服务接口
@Component
@FeignClient("PAYMENT-SERVICE")
public interface IUserService {@GetMapping("/provider/user/{id}")CommonResult<User> getById(@PathVariable("id") Long id);
}
@FeignClient指定接口对应的微服务
@GetMapping对应PAYMENT-SERVICE微服务具体controller接口
超时设置
OpenFeign默认等待1s,超时就报错
#设置 feign 客户端超时时间,单位毫秒,优先级比ribbon高
feign:client:config:default:readTimeout: 1000connectTimeout: 1000PAYMENT-SERVICE:readTimeout: 5000connectTimeout: 3000
#设置 ribbon 客户端超时时间,单位毫秒,默认1s
ribbon:ReadTimeout: 5000ConnectTimeout: 3000
两种设置方式,feign客户端设置优先级比ribbon高,如果通过ribbon设置的话需要注意大小写
feign客户端设置的时候,feign.client.config.xxx,其中xxx表示具体服务,对应 @FeignClient的name或者contextId
