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(切記

 

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM