
微服務設計模式 - API 閘道器
問題陳述
微服務架構將應用程式構建為一組鬆散耦合的微服務,每個服務都可以以敏捷的方式獨立開發,從而實現持續交付/部署。當使用微服務架構構建大型複雜應用程式時,微服務可以使用不同的協議。例如,一些微服務使用 REST,而另一些則遵循 AMQP。現在問題是如何允許客戶端無縫訪問每個微服務,而無需擔心協議和其他複雜性。
解決方案
我們可以定義一個 API 閘道器,它將充當所有型別客戶端的單一入口點。以下是 API 閘道器的其他好處:
簡單代理 - API 閘道器可以充當某些請求的簡單代理,將其重定向到相關服務。
多個服務 - API 閘道器可以將呼叫重定向到多個服務。
客戶端特定 API - API 閘道器也可以提供客戶端特定的 API,例如,桌面版本與移動應用程式不同的 API。
協議處理 - API 閘道器在內部處理每個服務呼叫的通訊協議,客戶端只需要關注請求/響應。
安全性和身份驗證 - API 閘道器可以實現安全性,確保每個請求只有在身份驗證和授權後才能訪問服務。
示例
考慮一個線上書店的例子。API 閘道器允許在多個裝置上無縫使用線上書店 API。

優勢
客戶端隔離 - 客戶端無需瞭解微服務的位置或如何呼叫它們。
多個服務呼叫 - API 閘道器可以處理多個服務並將結果作為一個結果返回,從而減少往返次數並提高效能。
標準介面 - API 閘道器為客戶端提供標準介面以從微服務獲取響應。
廣告