| 组件 / 参数 | 示例 | 作用 | 核心理解 | 常见场景 |
|---|---|---|---|---|
value / name | ServiceNameConstants.SERVICE_SYSTEM | 指定远程服务名(服务ID) | 通过服务注册中心找到目标服务 | Nacos / Eureka 服务调用 |
contextId | "sysBaseRemoteApi" | Feign Bean 唯一标识 | 防止多个 FeignClient 冲突 | 同一服务多个接口拆分 |
fallback | SysBaseFallback.class | 降级实现类 | 失败时返回固定逻辑 | 简单兜底返回 |
fallbackFactory | SysBaseAPIFallbackFactory.class | 降级工厂(可拿异常) | 可以获取失败原因并动态处理 | Sentinel / 精细化降级 |
| 模块 | 说明 | 本质 |
|---|---|---|
| 动态代理 | Feign 接口运行时生成实现类 | JDK Proxy |
| HTTP调用 | 接口方法 → HTTP请求 | REST 调用封装 |
| 序列化 | Java对象 ↔ JSON | Jackson / Gson |
| 负载均衡 | 多实例自动选择 | Spring Cloud LoadBalancer |
| 服务发现 | 根据服务名找地址 | Nacos / Eureka |
| 步骤 | 过程 |
|---|---|
| 1 | 调用 Feign 接口方法 |
| 2 | 生成 HTTP 请求 |
| 3 | 通过服务名查找实例 |
| 4 | 负载均衡选择节点 |
| 5 | 发起 HTTP 请求 |
| 6 | 返回 JSON |
| 7 | 反序列化为 Java 对象 |

口述流程
Openfeign接口 基于注解写完后
编译时会由动态代理,生成对应的动态代理代码,进行接口调用,同时,会结合nacos进行 负载均衡拉取,代理拉取到了再构造请求,发送
服务端接收处理
Sentinel


3870

被折叠的 条评论
为什么被折叠?



