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() )
来源: http://www.bubuko.com/infodetail-3451900.html