01 2024 档案
摘要:背景 来了个需求,需要从某个线上es库查询一些数据出来并进行大屏展示。问需求方有没有开发环境的es库,答:没有,说要不直连他们的线上库。 后面想想也行吧,业务方都这么说了,结果开网络的流程被打回了,理由是网络隔离。 于是,只能采用从线上es库导出文件,然后在开发环境原样搭建这么一个es库并导入的办法
阅读全文
摘要:背景 在feign中,一般是通过eureka、nacos等获取服务实例,但有时候调用一些服务时,人家给的是ip或域名,我们这时候还能用Feign这一套吗? 可以的。 有两种方式,一种是直接指定url: 这种是服务端自己会保证高可用、负载均衡那些。 但也可能对方给了多个url(一般不会这样,但是在ap
阅读全文
摘要:背景 我们上一篇介绍了feign调用的整体流程,在@FeignClient没有写死url的情况下,就会生成一个支持客户端负载均衡的LoadBalancerClient。这个LoadBalancerClient可以根据服务名,去获取服务对应的实例列表,然后再用一些客户端负载均衡算法,从这堆实例列表中选
阅读全文
摘要:背景 经过前面几篇的理解,我们大致梳理清楚了FeignClient的创建、Feign调用的大体流程,本篇会深入Feign调用中涉及的另一个重要组件:loadbalancer,了解loadbalancer在feign调用中的职责,再追溯其是如何创建的。 在讲之前,我先提个重点,本文章的前期是引用了na
阅读全文
摘要:背景 前面几篇分析了Feign的初始化过程,历经艰难,可算是把@FeignClient注解的接口对应的代理对象给创建出来了。今天看下在实际Feign调用过程中的一些源码细节。 我们这里Feign接口如下: @FeignClient(value = "echo-service-provider") /
阅读全文
摘要:背景 前面两篇讲了下,在一个典型的引入了feign、loadbalancer、nacos等相关依赖的环境中,会有哪些bean需要创建。 其中第一篇讲了非自动配置的bean,第二篇是自动配置的bean。第一篇中提到,@FeignClient这个注解,就会创建一个beanDefinition,类型为Fe
阅读全文