為什麼微服務需要API閘道器?

banq發表於2016-11-22
隨著以API為中心的IT規模增長,API閘道器和管理層越來越常見。 我們應該考慮微服務的API閘道器嗎?如果是,他們提供什麼樣的好處?

什麼是API閘道器?
API閘道器跨一個或多個內部API提供單個統一的API入口點。 通常還包括限制訪問速率限制和有關安全性等特點。 諸如Tyk.io的API管理層增加了額外的功能,例如分析,貨幣化和生命週期管理。

基於微服務的架構可以具有10到100個或更多個服務。 API閘道器可以為外部消費者提供統一的入口點,而與內部微服務的數量和組成無關。

API閘道器對於微服務的好處
1.防止內部關注暴露給外部客戶端
API閘道器將外部公共API與內部微服務API分開,允許新增微服務和更改邊界。 其結果是能夠在不對外部繫結客戶端產生負面影響的情況下重構和適當大小的微服務。 它還透過為您的所有微服務提供單一入口點,對客戶端隱藏了服務發現和版本控制詳細資訊。

2.為您的微服務新增額外的安全層
API閘道器透過提供一個額外的保護層來防止惡意攻擊,例如SQL隱碼攻擊,XML解析器漏洞和拒絕服務(DoS)攻擊。

3.支援混合通訊協議
雖然面向外部的API通常提供基於HTTP或REST的API,但是內部微服務可以從使用不同的通訊協議中受益。 協議可能包括的Protobuf或AMQP ,或者用SOAP,JSON-RPC或XML-RPC系統整合。 API閘道器可以在這些不同的協議之上提供外部的,統一的基於REST的API,允許團隊選擇最適合內部架構的API。

4.降低微服務複雜性
如果微服務具有共同的關注點,例如使用API​​令牌的授權,訪問控制實施和速率限制。 每個這些關注可以透過要求每個服務都實現它們,但這為微服務的開發增加更多的時間成本。 API閘道器將從您的程式碼中刪除這些問題,允許您的微服務關注手頭的任務。

5.微服務模擬和虛擬化
透過將微服務API與外部API分離,您​​可以模擬或虛擬化服務,以驗證設計要求或協助整合測試。

微服務API閘道器的缺點
雖然使用API​​微服務閘道器有很多好處,但有一些缺點:
1.您的部署架構將需要更多的編排和管理,並增加一個API閘道器
2.必須在部署期間管理路由邏輯的配置,以確保從外部API到正確的微服務的正確路由。
3.除非針對高可用性和規模正確構建,否則API閘道器可能成為限制因素,甚至是單點故障。

Why Do Microservices Need an API Gateway? - DZone

相關文章