OpenFeign调用的原理
2024-05-10 12:20:42 0 举报
这是SpringCloud中的OpenFeign调用原理图
作者其他创作
大纲/内容
当Feign客户端与Eureka等服务发现组件结合使用时,Feign可以利用服务发现获取服务实例的地址,并与Ribbon或Istio等负载均衡器集成,以实现客户端负载均衡
HTTP客户端接收到响应后,Feign客户端会根据配置的解码器将响应转换为方法调用的返回值
动态代理
请求发送
接口定义
Feign客户端使用一个HTTP客户端(默认是Apache HttpClient,但也可以使用OkHttp等其他客户端)来发送HTTP请求
负载均衡
定义OpenFeign的客户端接口
Feign还可以与Hystrix等熔断器集成,以实现熔断机制,防止服务调用链路中的某个服务故障导致整个系统不可用
Feign客户端会根据接口方法上的注解和配置,将方法调用转换为HTTP请求。这包括构建URL、设置HTTP方法、添加请求头和查询参数等
熔断机制
Feign Client:通过在接口上添加@FeignClient注解,你告诉Spring这个接口是一个Feign客户端,需要被Feign代理
如果在请求过程中发生错误,Feign的错误处理器会处理这些错误,并根据配置抛出相应的异常。
可添加拦截器对请求参数进行修改(实现 RequestInterceptor)
Spring上下文启动时,Feign会为每个Feign客户端接口创建一个动态代理对象。当你调用接口方法时,实际上是在调用这个代理对象
响应处理
请求映射
错误处理
注解配置:@RequestMapping、@GetMapping、@PostMapping等,来指定HTTP请求的映射关系,包括URL路径、HTTP方法、请求头、查询参数等
0 条评论
下一页