一、簡介Spring Cloud Feign Client 是一個方便的聲明式 REST 客戶端,我們用它來實現微服務之間的通信。 在這個簡短的教程中,我們將展示如何設置自定義的 Feign 客戶端連接超時,包括全局和每個客戶端。 2. 預設值Feign Client 是相當可配置的。 在超時方面, ...
一、簡介
Spring Cloud Feign Client 是一個方便的聲明式 REST 客戶端,我們用它來實現微服務之間的通信。
在這個簡短的教程中,我們將展示如何設置自定義的 Feign 客戶端連接超時,包括全局和每個客戶端。
2. 預設值
Feign Client 是相當可配置的。
在超時方面,它允許我們配置讀取和連接超時。連接超時是 TCP 握手所需的時間,而讀取超時需要從套接字讀取數據。
預設情況下,連接超時和讀取超時分別為 10 秒和 60 秒。
3. 全局配置
我們可以通過 application.yml 文件中設置的 feign.client.config.default 屬性設置應用程式中每個 Feign Client 的連接和讀取超時:
feign:
client:
config:
default:
connectTimeout: 60000
readTimeout: 10000
這些值表示發生超時之前的毫秒數。
4. 每個客戶端
也可以通過命名客戶端來為每個特定客戶端設置這些超時:
feign:
client:
config:
FooClient:
connectTimeout: 10000
readTimeout: 20000
而且,我們當然可以毫無問題地列出一個全局設置和每個客戶端的覆蓋。
5. 單個方法
@PostMapping("/test") void test(@RequestParam Long id, Request.Options options);
Request.Options options = new Request.Options(5L,TimeUnit.SECONDS, 60L, TimeUnit.SECONDS, true); feignClient.test(1L, options);