天天看點

API 網關的功能

前言

在微服務架構中,API 網關起着不可或缺的重要作用。

簡單舉個例子,API 相當于是我們擷取資訊的資料線,而當這樣的“資料線”過多時,我們很難對這麼多的 API 進行管控。這時候的 API 網關就相當于是一個收納工具+ 保護套,幫我們把各式各樣的 API 進行統一管理,并維護 API 的安全性與穩定性。

然而實際上API網關的功能遠遠不止上述舉例中的那麼簡單,它要更加強大更高效。今天我們就來詳細介紹一下 API 網關與 API 網關的功能。

API 網關介紹

API 網關,API Gateway,即兩個互相獨立的區域網路之間通過路由器進行通信,中間的路由被稱之為網關。

任何一個應用系統如果需要被其他系統調用,就需要暴露 API,這些 API 代表着一個一個的功能點。如果兩個系統中間通信,在系統之間加上一個中介者協助 API 的調用,這個中介者就是 API 網關。

API 網關的功能

API 網關主要功能

API 網關基本功能包含了 統一接入、協定适配、流量管理與容錯、以及安全防護四大基本功能。

API 網關 以統一接入為核心功能,然後将請求的協定轉換為内部的接口協定,在調用得過程中還要有限流、降級、熔斷等 容錯的方式來保護網關的整體穩定,同時網關還要做到基本的安全防護,以及黑白名單等基本安全措施。

統一接入

提供統一的入口 來通路内部的 API , 隔離外部通路與内部系統,保護微服務 API 。統一對外的 API ,友善外部調用,對内再調用相應的微服務 API 。

簡單而言 API 就是對外提供統一的接口,内部再去條用相應的請求接口。對外接收用戶端請求,對内調用微服務 REST API 。

API 網關的功能
請求适配

API 網關并不是僅僅進行用戶端請求的路由,API 網關還負責對請求進行處理,将外部請求适配成内部請求,請求的适配主要有:

  • 協定轉化:

在微服務系統中不一定都是使用同一種協定進行通信,除了 http 協定還可以轉換成其他更合适更高效得協定。

API 網關的功能
  • 資料校驗與轉換:

校驗必要的資料字段,或者進行資料格式轉化

  • 相應合并:

把業務上需要調用多個服務接口才能完成的工作合并成一次調用 對外統一提供服務。

流量管理與容錯

API 網關作為整個微服務系統的入口,需要對請求流量進行監控,避免造成内部過載或 API 網關崩潰。

  • 負載均衡:

負載均衡是分布式架構的重點,負載均衡機制決定着整個服務叢集的性能與穩定。

API 網關的功能
  • 限流:

限流是必須的元件,限流做不好的話,請求量突增時很容易導緻業務放的服務挂掉,

  • 熔斷和降級:

網關的性能決定整體請求的響應,若某個服務挂掉、接口影響嚴重逾時,API 網關會對故障服務進行熔斷降級,直接傳回錯誤。

API 網關的功能
安全防護

API 網關通過提供額外的安全層幫助阻止大規模攻擊。

這些攻擊包括 SQL 注入,XML 解析漏洞和 DoS 攻擊, API 網關實作了安全層,降低了各個微服務的複雜度。

  • 安全認證:
  • 基于 Token 的用戶端安全政策和通路權限
  • 基于 Https 的傳輸加密,
  • 基于 OAuth 2.0 的服務安全認證
  • 黑白名單:

建構黑白名單可以将一些惡意請求的 ip 位址禁止通路系統。

API 網關的功能

總結

API 網關的功能主要包含以上四點,總的來說, API 網關能實作對外統一接口,對内進行負載均衡的功能也極大地友善了 API 系統的開發與維護。

上述示範圖中的 API 微服務網關工具為 Eolink ,它是一個能夠實作高性能 HTTP 轉發、API 通路權限控制等目的的微服務網關,擁有強大的自定義插件系統可以自行擴充,能夠快速幫助企業進行 API 服務治理、提高 API 服務的穩定性和安全性。

如果有興趣,可自行使用:www.eolink.com

繼續閱讀