开发者社区> 问答> 正文

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 2182 0
1 条回答
写回答
取消 提交回答
  • 提供服务名到实例地址映射(负载均衡)的不是 feign 而是 ribbon,feign 只是负责构造 RestTemplate 之类的东西.

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

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

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

相关电子书

更多
Spring Cloud 微服务核心组件集 mica 的设计思路 立即下载
workshop专场-微服务专场-开发者动手实践营-微服务-Spring Cloud Alibaba 微服务全家桶体验 立即下载
云栖社区特邀专家徐雷Java Spring Boot开发实战系列课程(第20讲):经典面试题与阿里等名企内部招聘求职面试技巧 立即下载

相关实验场景

更多