刚开始学习spring cloud,想问下openfeign是如何能够找到注册中心的
注册中心以Eureka为例,在某个微服务上引入openfeign后和eureka-client后,这两者之间是如何联动,能够通过@FeignClient注解找到eureka的注册中心,从注册中心上寻找到服务后进行远程调用的,明明代码里也没有使用什么注解之类的东西进行关联,求指教!



刚开始学习spring cloud,想问下openfeign是如何能够找到注册中心的
注册中心以Eureka为例,在某个微服务上引入openfeign后和eureka-client后,这两者之间是如何联动,能够通过@FeignClient注解找到eureka的注册中心,从注册中心上寻找到服务后进行远程调用的,明明代码里也没有使用什么注解之类的东西进行关联,求指教!



你确定刚学怎么用的时候,你就要知道怎么来的吗????
入口在EnableFeignClients,核心在import(FeignClientsRegistrar)(自行百度为啥启动会回调到这个类)

FeignClientsRegistrar实现了ImportBeanDefinitionRegistrar

ImportBeanDefinitionRegistrar的回掉方法中,看到明显的注册feignclient api,registerFeignClients

最终走到org.springframework.cloud.openfeign.FeignClientsRegistrar#registerFeignClient方法,
看到FeignClientFactoryBean你就成功一半了

FeignClientFactoryBean实现了FactoryBean,容器创建bean回调会走到getObject方法,

看到loadBalance就知道为啥会负载均衡了吧
ps:当你FeignClient注解写了url的时候,就不会生成负载均衡客户端了,换言之负载均衡就会失效了