爲什麼微服務需要外部API網關?

API網關是什麼?

API網關可以提供一個單獨且統一的API入口用於訪問內部一個或多個API。它們典型的會提供訪問頻率限制層和安全層。但諸如Tyk.io這樣的API管理層會提供分析,計費和生命週期管理功能。

一個微服務架構可以包含數十到數百個服務。API網關可以爲外部用戶提供一個統一的入口,這個入口獨立於內部微服務組件。

微服務API網關的優勢

阻止將內部的敏感信息暴露給外部的客戶端

API網關通過提供微服務綁定和解綁的能力來將外部的公開API與內部微服務API分離開。這樣就具備重構和裁切微服務而不會影響外部綁定的客戶端的能力。它同時對客戶端隱藏了服務發現和服務版本這些細節,因爲它對所有微服務提供單一的訪問點。

爲服務增加額外的安全層

API網關通過提供額外的安全層幫助阻止大規模攻擊。這些攻擊包括SQL注入,XML解析漏洞和DoS攻擊。

可以支持混合通訊協議

不同於外部API一般使用HTTP或REST,內部微服務可以從使用不用通訊協議中收穫益處。這些協議可以是ProtoBuf或AMQP,甚至是諸如SOAP,JSON-RPC或者XML-RPC這樣的系統集成協議。API網關可以對這些協議提供統一的外部REST接口,這就允許開發團隊挑選一款最適合於內部架構的協議。可以對外提供一種協議。

降低微服務的複雜度

微服務中有一些常見的要點,諸如使用API令牌進行授權,訪問控制和調用頻次限制。這每個點都需要每個服務區增加額外的時間去實現它們。API網關將這些要點從你的代碼中提取出來,允許你的服務只關注於它們需要關注的任務。

微服務模擬和虛擬化

隨着微服務API從外部API中分離出來,你可以模擬你的服務去做設計驗證或者很方便的做集成測試。

微服務API網關的缺點

雖然API微服務網關有這麼多的好處,但同時也存在一些缺點

  • 由於API網關需要額外的配置,你的部署架構需要更多的編排和管理能力。
  • 在發佈階段需要管理路由的配置,以保障外部API被正確的路由到微服務上。
  • 除非很好的使用高可用,可擴展的架構,否則API網關將會變成瓶頸和單點。

 

原文鏈接 https://dzone.com/articles/why-do-microservices-need-an-api-gateway?spm=a2c4e.10696291.0.0.43e019a4VkT1Rh

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章