跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • feign 是怎么选择 httpclient 的?
未分類
19 7 月 2020

feign 是怎么选择 httpclient 的?

feign 是怎么选择 httpclient 的?

資深大佬 : sunzy 8

@FeignClient("service-id") 

默认走的是 LoadBalancerFeignClient

而一旦注解加上了 url,走的就是 DefaultClient 了

这块是在哪儿处理的?我能不能手动指定使用哪一个?

大佬有話說 (9)

  • 資深大佬 : k9990009

    可以,写在配置文件里

    @FeignClient(value = “service-id”,url=”${service.url:}”)

  • 主 資深大佬 : sunzy

    @k9990009 这样写走的是 DefaultClient,我想不写 url,而让它不要走 LoadBalancerFeignClient

  • 資深大佬 : twogoods

    不写 url 他怎么知道调谁啊,不知道他就要走一次基于服务名的服务发现啊,发现了多个自然就需要 LoadBalancer 了。服务发现好像没有多个实现可选吧,你想拓展继承 LoadBalancerFeignClient 自己实现一个呗

  • 資深大佬 : limuyan44

    你是不是搞错需求了,是要改负载的策略还是改 client 的连接配置?当前的需求肯定是不合理的,代码写死了没有 url 必然走 loadblance,原因上也说了,具体可以看他的 factorybean 。

  • 資深大佬 : BBCCBB

    你在说啥??

    你说的 httpclient 是说用 okhttp, apache httpclient..

    还是说选择哪一个 web 实例去调用??

  • 主 資深大佬 : sunzy

    @limuyan44
    factorybean 看了,硬编码通过 url 判断来搞的

    我的需求是写一个 feign 拦截器,针对一批共性的 feign client,通过名称和环境,换成 url 访问……

  • 資深大佬 : ilumer

    不知道你这个共性指的是啥,如果简单的话,直接在配置文件里指定 feignClient 的 url 直接走 url,不会再使用负载均衡,大概就是这样
    @FeignClient(name = “${feign.name}”, url = “${feign.url:null}”),如果配置中心里面没有对应的 key,这个适合就可以走负载均衡,有 key 就可以走你需要的 url

  • 資深大佬 : wangyanrui

    一脸懵逼的进来,没看懂描述的什么问题。
    feign.SynchronousMethodHandler#client 就是真正执行远程调用的东西,根据你的需求,动态修改这个就可以了
    原因看 feign.SynchronousMethodHandler#invoke 方法

  • 主 資深大佬 : sunzy

    @ilumer 共性是有一部分微服务不是走 eureka 的,并且 url 都是 serviceId+相同的后缀,并且环境

    现在的解决方案是通过拦截器

    “`
    @Slf4j
    @Component
    public class MyFeignInterceptor implements RequestInterceptor {

    @Value(“${svc.host}”)
    private String svcHost;

    @Override
    public void apply(RequestTemplate template) {
    String name = template.feignTarget().name();
    if (name.toLowerCase().endsWith(“xxx-svc”)){
    template.target(“http://” + name.toLowerCase() + “.” + svcHost);
    }
    }
    }
    “`

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具