Feign 声明式 HTTP 调用

Spring Cloud
场景预设
控制
动画速度 中速
调用状态
等待发起调用...
耗时统计
-
Feign 是 Netflix 开源的声明式 HTTP 客户端,通过接口 + 注解即可定义 HTTP 调用,运行时由 JDK 动态代理生成实现。Spring Cloud 对其进行了增强,集成了负载均衡、服务发现和熔断降级。
@FeignClient(name = "user-service", url = "http://user-api")
public interface UserClient {
  @GetMapping("/users/{id}")
  UserDTO getUser(@PathVariable("id") Long id);
}
JDK 动态代理Proxy.newProxyInstance
Contract 解析SpringMvcContract
MethodHandler构建 RequestTemplate
请求拦截器Authorization / Trace
EncoderJackson 序列化
HTTP Client执行 HTTP 请求
LoadBalancer选择服务实例
DecoderJackson 反序列化
ErrorDecoder状态码 → 异常
返回结果UserDTO
请求 URL
GET /users/1
目标服务
user-service
HTTP 状态
-
响应体
-
00:00.000系统Feign Playground 就绪,选择一个场景后点击「发起调用」或「单步」