天天看點

微服務架構之spring cloud feign

在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個服務者執行個體後,會在服務中心看到如下效果,服務提供者已經注冊成功

微服務架構之spring cloud feign

b) feign運作服務消費者

i. 運作消費者,如下圖所示

微服務架構之spring cloud feign

c) 打開PostMan,輸入消費者位址,多重新整理幾次,即可看到負載效果

微服務架構之spring cloud feign
微服務架構之spring cloud feign
微服務架構之spring cloud feign

  這樣spring cloud feign就介紹完了,如果在開發中遇到問題,也可以留言共同探讨共同進步。