暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

feign发送请求的过程

lovely的随笔录 2021-01-15
306

feign发送请求的过程

本文旨在记录笔者查看feign源码实现逻辑的面包屑,对于初学者可根据下面的关键类找到feign实现逻辑的主流程,笔者推荐通过打断点的方式执行整个流程,对于了解feign的实现过程与源码赏析有一定帮助

在了解feign的具体发送请求过程之前,我们需要明确feign为我们做了些什么事情,feign主要封装了负载均衡的逻辑与发送服务请求的逻辑,具体的实现方式是通过动态代理执行这两个主要逻辑的链路具体流程见下文的代码面包屑

1.动态代理逻辑
feign-core模块:在类ReflectiveFeign的静态内部类FeignInvocationHandler中进行反射调用,通过SynchronousMethodHandler类的invoke方法执行类LoadBalancerFeignClient的负载均衡查找服务地址逻辑
2.负载均衡逻辑
ribbon-loadbalancer模块:在类LoadBalancerCommand的selectServer方法进行服务提供方地址( SKY-20201010KSC)的查询
3.服务请求发送逻辑
feign-core模块:在Client类的convertAndSend方法进行发送,采用HttpURLConnection进行连接请求

文章转载自lovely的随笔录,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论