API網關

什麼是API網關

API網關是一個服務器,是系統的惟一入口。從面向對象設計的角度看,它與外觀模式相似。API網關封裝了系統內部架構,爲每一個客戶端提供一個定製的API。它可能還具備其它職責,如身份驗證、監控、負載均衡、緩存、請求分片與管理、靜態響應處理。
API網關方式的核心要點是,全部的客戶端和消費端都經過統一的網關接入微服務,在網關層處理全部的非業務功能。一般,網關也是提供REST/HTTP的訪問API。服務端經過API-GW註冊和管理服務。跨域

API網關解決的問題

  • 客戶端請求多個微服務,增長客戶端複雜度
  • 存在跨域,認證不統一問題
  • 與微服務耦合太強,微服務變動,客戶端須要變動

如何構建API網關

API網關的做用

API網關所處的位置一般爲:緩存

 
 
客戶端
統一API網關
內部微服務

使用API網關的好處:安全

  • 易於監控
  • 統一認證
  • 減小客戶端與微服務交互,解耦接口依賴

網關大體分類服務器

單節點API網關

Backends for frontends網關

 

開源網關

Netflix Zuul是一種提供動態路由、監視、彈性、安全性等功能的邊緣服務。Zuul是Netflix出品的一個基於JVM路由和服務端的負載均衡器(Spring Cloud使用)。架構

提供能力:負載均衡

  • 身份認證與安全
  • 審查與監控
  • 動態路由
  • 壓力測試
  • 負載分配
  • 靜態響應處理

 

API網關存在的問題及解決方案

問題

  • 拿單節點網關來講,這種網關至關因而處於 Web 層和 Service 之間,用來聚合服務的?注意,咱們須要的是聚合服務,而以上這些開源項目都不具有這個功能,我說的聚合具體指的是開箱即用。
  • 除了單點問題,還有一個問題,網關須要承擔日誌,監控,安全,服務發現,版本控制等,甚至超時,熔斷,重試,聚合查詢等職能,這很容易形成性能問題。

 

解決方案

單點問題:Keepalived + LVS 保證一個網關掛掉時,迅速進行失效轉移
性能問題:雙重網關(雙重網關,外部網關處理安全,認證,限流,監控,日誌等,內部網關處理緩存,重試,熔斷等)frontend

相關文章
相關標籤/搜索