FeignClient注解配置url属性实现指定服务方

某天,跟同学聊天,同学说起之前面试的时候面试官提的一个问题:使用spring cloud,现在某个服务有一个新的接口需要验证。该接口目前只上线了一台机器,如何指定调用方只调用这台机器。问题大致如此,可能有些出入。总结起来,就是希望能够指定访问某台机器。这样的情况,在我们平时也可能经常遇到。比如甲乙两人需要调试新接口,但注册中心只有一个。可能上面有丙丁戊己庚辛注册的服务。如果我们按照默认的轮询的负载均衡规则去调用,七次调用才能轮到乙的服务,根本没有办法调试。所以这时候就需要我们能够指定调用的服务方。

FeignClient注解通过配置url属性可以指定调用的服务方。我们按照上面的例子,假设乙的IP为192.168.1.2,在端口8080上启动的服务,那我们就可以把我们的url配置成http://192.168.1.2:8080。这样调用的就一直是乙的服务了。

那我们配置了url和不配置url到底产生了哪些不同呢?

feign,或者说open-feign底层是使用,我以为默认是httpclient,但是我debug的结果是HttpURLConnection。知道为什么的可以留言告诉我。feign会基于配置,生成URI。当我们不配置url的时候,URI是这样的http://service-name/path。使用FeignClien是LoadBalancerFeignClient,该类在处理该URI的时候会对服务名进行解析,也就是从注册中心查询该服务名下已经注册的服务器信息,包括IP和端口。然后将服务名替换成真实的链接。而当我们配置url的时候,使用的FeignClient是Client的默认实现Default,该类就没有解析的这一步而是直接通过HttpURLConnection进行请求。

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值