Feign:伪RPC客户端(本质还是http)
选择Feign:
1.Feignn和Ribbo两个的区别和选择
默认集成了Ribbon(包含关系)
写起来更加思路清晰和方便
采用注解方式进行配置,配置熔断等方式方便
2.超时配置
默认 readTimeout是60s,但是由于hystrix默认是1s超时,优先以hystrix为准,在配置文件中可以修改,下文会讲到
1.导入Feigh依赖
<!--feign依赖--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency
2.启动类添加注解 @EnableFeignClients(切记)
@SpringBootApplication @EnableFeignClients public class OrderServiceApplication { public static void main(String[] args) { SpringApplication.run(OrderServiceApplication.class, args); } @Bean @LoadBalanced public RestTemplate restTemplate(){ return new RestTemplate(); } }
3:接口添加被调用注册在Eureke的服务名称
/** * 商品服务客户端 */ @FeignClient(name = "product-service") public interface ProductClient { @GetMapping("/api/v1/product/findById") String findById(@RequestParam("id")Integer pruductId); }
同时可以根据自身需求设置调用超时时间
#修改调用超时时间 feign: client: config: default: connectionTimeout: 5000 readTimeout: 2000
ApiTimeUnit.SECONDS.sleep() 的使用(类似Tread.sleep() )