1 回答

TA貢獻1796條經(jīng)驗 獲得超7個贊
長話短說:
Feign 將在 A 到 B 的初始請求上保持連接打開,直到預(yù)配置的超時開始。此時,F(xiàn)eign 將使請求超時,如果您指定了 Hystrix 回退,Spring 將使用您的 Hystrix 回退作為回復(fù)。
解釋:
spring-boot-starter-feign 為編寫 HTTP 請求代碼提供了一個抽象層。它不會處理代碼中的潛在循環(huán)。
這是他們教程網(wǎng)站上的一個 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 發(fā)出 RESTful 請求。例如,第二個請求允許我們傳入一個路徑變量,Spring 將確保它位于出站請求的 URL 路徑上。
這里要強調(diào)的重要一點是,這個接口只負責 HTTP 調(diào)用,而不是任何潛在的循環(huán)。使用此接口的邏輯(我可以像注入任何其他 Spring Bean 一樣注入任何其他 Spring Bean)由開發(fā)人員決定。
添加回答
舉報