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() )
