回覆列表
  • 1 # 使用者834195712159

    不會經過閘道器

    分析下feign原理,feign主要是使用動態代理

    Feign的原始碼實現的過程如下:

    首先透過@EnableFeignCleints註解開啟FeignCleint

    根據Feign的規則實現介面,並加@FeignCleint註解

    程式啟動後,會進行包掃描,掃描所有的@ FeignCleint的註解的類,並將這些資訊注入到ioc容器中。

    當介面的方法被呼叫,透過jdk的代理,來生成具體的RequesTemplate

    RequesTemplate在生成Request

    Request交給Client去處理,其中Client可以是HttpUrlConnection、HttpClient也可以是Okhttp

    最後Client被封裝到LoadBalanceClient類,這個類結合類Ribbon做到了負載均衡。

    Ribbon透過維護的服務列表,透過feign的name屬性找到真實的ip和埠

    Ribbon實際是封裝了restTemplate

    所以feign其實是透過http請求找到對應的服務而不是閘道器.

  • 中秋節和大豐收的關聯?
  • 南楚皇帝列表?