微服務整體系統中API網關所處的位置和作用

網關的位置

微服務沒有網關的時候

微服務整體系統中API網關所處的位置和作用

以上是沒有網關的時候,缺點大家自己思考一下,很多也很明顯。

給微服務套上一層膜(網關)

微服務整體系統中API網關所處的位置和作用

單網關模式

微服務整體系統中API網關所處的位置和作用

業務劃分的網關

微服務整體系統中API網關所處的位置和作用

這種模式是針對不同的客戶端來實現一個不同的API網關。

當網關成為影響系統性能的瓶頸,用負債均衡解決

微服務整體系統中API網關所處的位置和作用

網關在微服務總體架構中所處的位置

微服務整體系統中API網關所處的位置和作用

微服務整體系統中API網關所處的位置和作用

網關作用

微服務整體系統中API網關所處的位置和作用

API網關是微服務架構(Microservices Architecture)標準化服務的模式。API網關定位為應用系統服務接口的網關,區別於網絡技術的網關,但是原理則是一樣。API網關統一服務入口,可方便實現對平臺眾多服務接口進行管控,對訪問服務的身份認證、防報文重放與防數據篡改、功能調用的業務鑑權、響應數據的脫敏、流量與併發控制,甚至基於API調用的計量或者計費等等。組件設計如下:

微服務整體系統中API網關所處的位置和作用

有些網關本身也會起著負債均衡的作用,比如同一個微服務,部署多個實例,網關本身起著路由負載哪個實例,最簡單的思路是隨機路由。

關於聚合

有些網關本身都就提供聚合,但是有些聚合比較複雜,什麼事務保證等。

什麼是聚合

簡單來說就是用戶發送一個請求到網關後端對應多個微服務進行處理。

1.網關提供的簡單聚合(或在其基礎之上擴展)

2.自己在業務上寫一個粗粒度的微服務,裡面實現聚合。優缺點就不說了。

3.實現聚合網關(這種方式)

這篇博客給了一個實現思路:https://www.cnblogs.com/savorboard/p/api-gateway.html

注意:以下內容的這些想法全是博客主個人對於 API 網關的理解而誕生的,如有錯誤還請指正。(不過小編認為這個思路不錯,給了小編啟發)

下面是博主畫的一個 API 網關在微服務架構中的一個作用圖:

微服務整體系統中API網關所處的位置和作用

簡單解釋一下。

  • OpenResty Api Gateway

從左至右 HTTP 請求先由DNS在拿到第一手流量後負載均衡到基於 OpenResty 的 API Gataway 網關集群,在這個流程我們可以使用像 Kong,Orage,Tyk 這些開源的支持高併發高訪問量 API 網關程序在做第一層流量的防護,在這一級我們可以做一些像身份認證,安全,監控,日誌,流控等策略。除了這些我們還可以做一些服務的發現和註冊(這個要看不同網關的支持程度),接口的版本控制,路由重寫等。

  • Aggr Api Gateway

然後再由這些 API 網關把請求再負載到不同的 Aggr Api Gateway,在這裡我們做聚合服務這個操作,具體體現也就是圖中的黃色區域是需要由各個語言的開發人員來需要寫代碼實現的。具體流程也就是我們可以引入像 Ocelot 這種和語言相關的 API 網關開源項目,然後通過 NuGet 包引入之後通過 Json配置+聚合代碼的方式來整合後端的各個微服務提供聚合查詢等操作。這期間對於有需求的接口,我們可以應用超時,緩存,熔斷,重試等策略。

從 Aggr Api Gateway 到後端微服務集群這中間就屬於內部的通訊了,我們可以使用對內部友好的通訊協議比如 gRPC 或者 AMQP 等,然後進行 RPC調用提高通訊性能。

注意:Aggr Api Gateway 這個網關對於一些接口來說的話並不是必須的,也可以由後端微服務直接提供REST API給第一層網關使用。

參考:

微服務之API網關

https://blog.csdn.net/zdp072/article/details/76473383

對微服務API服務網關的理解

https://blog.csdn.net/crave_shy/article/details/81221738

談談微服務中的 API 網關(API Gateway)

https://www.cnblogs.com/savorboard/p/api-gateway.html

基於.NET CORE微服務框架 -談談surging API網關

https://www.cnblogs.com/fanliang11/p/7441281.html

Net分佈式系統之六:微服務之API網關

https://www.cnblogs.com/Andon_liu/p/6886486.html


分享到:


相關文章: