开发者社区> 问答> 正文

Springcloud: feign调用时用注册中心的服务名是如何调通的?

使用nacos做注册中心,feign调用开debug日志,发现调用的地址是

GET http://user-sys/user/id/1212702097573679106

用的是服务名user-sys,而不是IP:Port, 我的理解是,当feign调用时,发现服务名是user-sys,就从注册中心的列表中获得对应的IP:Port,然后feign调用地址是

GET http://IP:Port/user/id/1212702097573679106

但是feign居然用服务名调用,中间是怎么路由的?

展开
收起
问问小秘 2020-01-09 18:22:40 2134 0
1 条回答
写回答
取消 提交回答
  • 提供服务名到实例地址映射(负载均衡)的不是 feign 而是 ribbon,feign 只是负责构造 RestTemplate 之类的东西.

    除非你在 @FeignClient 上直接通过 url 指定去哪个实例.

    用 url 指定的话理论上来说这个地址甚至不需要是注册到服务发现中心的实例,不过我没试过,你有兴趣可以试试.

    2020-01-09 18:30:08
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
云栖社区特邀专家徐雷Java Spring Boot开发实战系列课程(第20讲):经典面试题与阿里等名企内部招聘求职面试技巧 立即下载
微服务架构模式与原理Spring Cloud开发实战 立即下载
阿里特邀专家徐雷Java Spring Boot开发实战系列课程(第18讲):制作Java Docker镜像与推送到DockerHub和阿里云Docker仓库 立即下载

相关实验场景

更多