Feign-請求不同注冊中心的服務


場景

需要通過Feign Client請求,其他注冊中心或者其他Restful服務。

臨時方案

Feign 請求轉為RestTemplate http請求。

優點:能適應,feign環境和非feign環境

缺點:需要提供兩套代碼。一套spi,支持feign,一套SDK,支持http。

解決方案

FeignClient 使用url配置,使用placeHolder,注入url的值

方案驗證

場景還原,搭建以下環境

  • 注冊中心1:eureka1
  • 注冊中心2:eureka2
  • 服務提供者1:provider1,注冊到eureka1
  • 服務提供者2:provider2,注冊到eureka2
  • 服務消費者:consumer1&2,注冊到eureka1

Eureka1&Provider1

Eureka2&Provider2

Eureka1&Consumer

驗證

瀏覽器請求consumer

provider1

provider2

源碼分析

在應用啟動的時候,會初始化FeignClient接口。

根據url,是否有值,創建負載均衡客戶端。

Provider1,創建LoadBalancerFeignClient

Provider2,不創建LoadBalancerFeignClient

consumer發起請求的時候,provider1通過 LoadBalancerFeignClient 獲取可用的服務提供者。

provider2,跳過LoadBalancerFeignClient ,直接發起request請求


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM