Feign的使用(与Ribbon的异同)

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

扫描二维码关注公众号,回复: 9651589 查看本文章
@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() )

猜你喜欢

转载自www.cnblogs.com/zhuomuniao/p/12439553.html