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)由开发人员决定。
添加回答
举报