Feign请求流程
2021-09-28 11:35:09 11 举报
Feign请求流程
作者其他创作
大纲/内容
LoadBalancerFeignClient
2、扫描包下所有标记了@FeignClient注解的类
(3)当前服务feign配置信息
17、设置到缓存
3、利用注解信息构造BeanDefinition
动态代理(InvocationFeignHandler)
FeignClientFactoryBean
Feign.Builder
SpringEncoder
Logger
ResponseEntityDecoder
13、委托执行execute方法
没获取到16、创建FeignLoadBalancer
HystrixTargeter
@FeignClient(serviceA)ServiceAClient
如:com.huangsz.service
6、配置Feign.Builder
FeignContext
15、通过ServiceA获取FeignLoadBalancer
20、http发送请求
EurekaClient(localhost:8081)
11、执行invoke方法(获取方法对应的处理器)
target方法
Spring容器
否7、解析并为每个方法创建处理器
http://user/1
@EnableFeignClients(Application启动类)
Server
EurekaClient(localhost:8080)
是否为HystrixFeign.Builder
SpringMvcContract
设置server信息
ServiceBController
12、执行方法
1、获取启动类的包名
4、设置到spring容器中
19、重构URL
http://localhost:8080/user/1
Feign客户端注册器(FeignClientsRegistar)
(2)feign默认配置信息
10、发起请求
8、创建动态代理
18、执行负载均衡获取server
9、注入到应用接口的类
构造请求(GET http://ServiceA/user/1 HTTP/1.1)
获取结果
getObject()
(1)@FeignClient注解中自定义组件(Encoder、Decoder、Contract等)
SynchronousMethodHandler
14、剔除服务名
FeignLoadBalancer(内置Ribbon的ZoneAwareLoadBalancer)
请求
EurekaServer
0 条评论
下一页