最近准备画一个系统服务间调用关系图,但具体到feign这里是怎么调用到另一个系统去,却始终不了解,典型应用,我们在声明feign接口时,只增加了一个接口,只声明了一个feign client name,如下图所示:
那么messageService是如何调用到具体的服务节点的,我们来调试一下:
调用开始
不是hashcode不是toString正式开始调用
此时url已经拼接上,feign定义clientname
居然调用了robbin的loadbalance
继续跟,来到loaderbalancercontext
很明显lb中存有着从注册中心拿到的实例列表,chooseServer根据负载均衡的策略选择了一个实例,我们在feign声明的服务名称,即nacos注册服务名,已经替换为对应ip