1 回答

TA貢獻1796條經驗 獲得超7個贊
長話短說:
Feign 將在 A 到 B 的初始請求上保持連接打開,直到預配置的超時開始。此時,Feign 將使請求超時,如果您指定了 Hystrix 回退,Spring 將使用您的 Hystrix 回退作為回復。
解釋:
spring-boot-starter-feign 為編寫 HTTP 請求代碼提供了一個抽象層。它不會處理代碼中的潛在循環。
這是他們教程網站上的一個 spring boot feign 客戶端示例,用于演示:
@FeignClient(value = "jplaceholder",
? ? ? ? url = "https://jsonplaceholder.typicode.com/",
? ? ? ? configuration = ClientConfiguration.class,
? ? ? ? fallback = JSONPlaceHolderFallback.class)
public interface JSONPlaceHolderClient {
? ? @RequestMapping(method = RequestMethod.GET, value = "/posts")
? ? List<Post> getPosts();
? ? @RequestMapping(method = RequestMethod.GET, value = "/posts/{postId}", produces = "application/json")
? ? Post getPostById(@PathVariable("postId") Long postId);
}
首先請注意,這是一個接口——所有代碼都是由 Spring 在啟動時自動生成的,并且該代碼將向通過注釋配置的 url 發出 RESTful 請求。例如,第二個請求允許我們傳入一個路徑變量,Spring 將確保它位于出站請求的 URL 路徑上。
這里要強調的重要一點是,這個接口只負責 HTTP 調用,而不是任何潛在的循環。使用此接口的邏輯(我可以像注入任何其他 Spring Bean 一樣注入任何其他 Spring Bean)由開發人員決定。
添加回答
舉報