(原創)大話微服務架構之api網關-apiGateway(一)

微服務要對外提供服務需要微服務網關做網絡隔離和路由轉發,下面一張圖是微服務網關Api Gateway在微服務架構中的角色:

(原創)大話微服務架構之api網關-apiGateway(一)

那麼微服務網關在微服務架構中扮演的角色和作用是什麼呢?以國內阿里雲微服務網關Api Gateway和華為雲微服務網關Api Gateway為代表:

(原創)大話微服務架構之api網關-apiGateway(一)

1、對外提供統一的服務接口

2、路由轉發

有時候內部接口的真實地址出於安全其它因素不想直接暴露給調用方,這時候需要網關來做內外部地址的一個映射。

3、協議轉換

好多公司的已有接口可能都還是SOAP協議的,比如WebService和WCF等,現在對外都流行輕量級的Rest api,協議不統一,調用方式也就不一樣,為了降低服務消費者的使用門檻和自己api的規範性,就需要網關將不同的後端協議轉換成通用的Rest風格的接口,對外都是統一風格的restful api接口。

4、服務管理

也許有些人會說服務管理不是服務治理框架做的事嗎?對,是服務治理框架乾的活,但是在網關也維護一套服務管理數據,可以不適用微服務治理框架,也可以配置微服務治理平臺一起使用,當微服務治理平臺癱瘓後,網關自己啟用自己的一套服務管理數據,以達到服務的高可用。

5、服務註冊

同上,如果需要管理服務,就需要服務註冊到網關中的服務治理模塊,與微服務啟動自動註冊到微服務治理中心不一樣,這裡提供手工主動註冊微服務,而不是被動的接受微服務註冊到自己這來,也可以主動去註銷某個或某些微服務。

6、接口管理

微服務網關需要維護一套路由規則,和一些接口的契約,集成類似swagger的功能,比如請求的接口名稱,地址、內部真實地址、協議、請求頭、請求體、Mock數據的響應正文和響應頭、鑑權方式(使用JWT的token方式還是auth2.0方式)等等。

7、應用管理

9、負載均衡

上面也講到,成千上萬的微服務已經註冊到網關,網關可以根據微服務的唯一名稱查出對應服務的所有服務列表,然後根據一定的負載均衡算法,得出唯一一個實例來調用。

10、接口Mock

接口未開發完之前,需要聯調時,可以預設一些模擬數據以供調用。

11、接口審計

12、日誌追蹤

網關記錄了每次經過網關的請求記錄,記錄了客戶端ip,層層網絡代理ip,網關集群中的單一實例ip,後端集群中的單一實例ip,以及請求頭、請求體參數、客戶端平臺及版本號、請求時間等等信息。一旦某個請求報錯,可以根據請求ID精確定位原因。

國外呢,情況有點不一樣,網關的功能就比較單一點,這裡以亞馬遜雲AWS apigateway和Spring Cloud Gateway為代表:

(原創)大話微服務架構之api網關-apiGateway(一)

有不同意見或好的想法的朋友也可以下方留言,我們可以一起繼續探討!


分享到:


相關文章: