RPC调用
文章平均质量分 81
RPC调用相关源码
developer@liyong
GISer
展开
-
FeignClient-调用流程
好我们继续看拦截器以后的逻辑,可以看到通过Client调用了execute方法,Client的类型是LoadBalancerFeignClient。那么为什么会是LoadBalancerFeignClient类型呢,是因为在创建对象的时候就是LoadBalancerFeignClient。首先请求会被FeignInvocationHandler 进行拦截,然后dispatch找到应的方法进行调用。这块就非常的关键了ILoadBalancer,这个ILoadBalancer哪里来的呢?那么拦截器从那里来呢?原创 2024-08-30 09:47:43 · 227 阅读 · 0 评论 -
源码阅读-FeignClient如何创建代理对象?
这里是为每个FeignClinet创建了一个AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext();我们可以看到有一个FeignClientFactoryBean非常关键说明我们创建对象是FeignClientFactoryBean来创建的,这里写的是函数是编程引用了创建对象的方法,那么怎么和IOC容器创建对象的时候进行打通的呢?2 如果为空则扫描标注有FeignClient的类,进行注册。原创 2024-08-29 16:22:19 · 293 阅读 · 0 评论 -
RestTemplate-源码阅读
我们可以看到有两种回调函数,都是RestTemplate的内部类。我们来看看,其实一眼就能看到,核心的逻辑都是委托给ClientHttpRequestFactory来实现的。这个工工厂提供了我们自定义拦截器进行处理的能力,这里可以进行一些自定义的拓展。至于如何选择Converters是通过下面这个方法,canWrite 是发送请求的时候些Body,canRead是调用结束以后读取Body。我们可以看到其实没有什么本质的区别,只是在创建CallBack的时候会有一点区别。2 核心API用来进行数据提取。原创 2024-08-21 13:27:19 · 1021 阅读 · 0 评论