在spring cloud ribbon中我們用RestTemplate實作了服務調用,可以看到我們還是需要配置服務名稱,調用的方法 等等,其實spring cloud提供了更優雅的服務調用方式,就是這篇文章要講解的spring cloud feign,feign内部已經內建了ribbon,是以不用再單獨引用,隻需要引用spring cloud feign即可。
(一) 版本說明
a) Spring boot 2.0.6.RELEASE
b) Spring cloud Finchley.SR2
c) Java version 1.8
(二) 項目配置
1. 服務端項目配置
a) 服務端主要是提供服務功能,這裡是把目前的端口傳回給調用者,同時把自己注冊到服務中心,調用者通過服務中心調用。
b) POM設定
c) application.yml配置檔案
d) 主要參數說明
i. eureka.instance.prefer-ip-address 使用IP顯示注冊資訊
ii. eureka.instance.ip-address 執行個體IP位址,
iii. eureka.instance.instance-id 自定義執行個體id,服務之間調用就是使用該配置,多個執行個體必須保證唯一性
iv. eureka.client.service-url.defaultZone 注冊中心位址
e) 服務提供者API
2. feign消費端項目配置
a) POM設定
i. 這裡把服務消費端也注冊到了服務治理中心,消費者同時也是其它服務的提供者。
b) application.yml配置檔案
c) feign服務消費者API
i. FeignClient feign用戶端配置,這裡配置了服務名稱、重試規則、失敗回調。
3. 重點提示
a) 為了示範負載,3個服務提供者必須設定3個不同的端口,并且其它相同,不然會被認為是不同的服務,起不到均衡的作用,這裡跟ribbon一樣。
4. 項目運作
a) 運作服務提供者
i. 運作3個服務者執行個體後,會在服務中心看到如下效果,服務提供者已經注冊成功

b) feign運作服務消費者
i. 運作消費者,如下圖所示
c) 打開PostMan,輸入消費者位址,多重新整理幾次,即可看到負載效果
這樣spring cloud feign就介紹完了,如果在開發中遇到問題,也可以留言共同探讨共同進步。