微服務設計模式 - API 閘道器



問題陳述

微服務架構將應用程式構建為一組鬆散耦合的微服務,每個服務都可以以敏捷的方式獨立開發,從而實現持續交付/部署。當使用微服務架構構建大型複雜應用程式時,微服務可以使用不同的協議。例如,一些微服務使用 REST,而另一些則遵循 AMQP。現在問題是如何允許客戶端無縫訪問每個微服務,而無需擔心協議和其他複雜性。

解決方案

我們可以定義一個 API 閘道器,它將充當所有型別客戶端的單一入口點。以下是 API 閘道器的其他好處:

  • 簡單代理 - API 閘道器可以充當某些請求的簡單代理,將其重定向到相關服務。

  • 多個服務 - API 閘道器可以將呼叫重定向到多個服務。

  • 客戶端特定 API - API 閘道器也可以提供客戶端特定的 API,例如,桌面版本與移動應用程式不同的 API。

  • 協議處理 - API 閘道器在內部處理每個服務呼叫的通訊協議,客戶端只需要關注請求/響應。

  • 安全性和身份驗證 - API 閘道器可以實現安全性,確保每個請求只有在身份驗證和授權後才能訪問服務。

示例

考慮一個線上書店的例子。API 閘道器允許在多個裝置上無縫使用線上書店 API。

API Gateway Design Pattern

優勢

  • 客戶端隔離 - 客戶端無需瞭解微服務的位置或如何呼叫它們。

  • 多個服務呼叫 - API 閘道器可以處理多個服務並將結果作為一個結果返回,從而減少往返次數並提高效能。

  • 標準介面 - API 閘道器為客戶端提供標準介面以從微服務獲取響應。

廣告