微服務架構模式系列文章之三 API閘道器

2021-07-22 02:33:42 字數 726 閱讀 7622

背景

產品細節ui可以顯示出大量產品資訊。舉例來說,amazon.com的pojos in action 圖書詳情頁面中會顯示:

因此,顯示產品詳情的**需要從這些服務中獲取資訊。

問題

微服務架構的應用客戶端如何訪問各項服務?

需求

方案

使用api閘道器作為全部客戶端的單一入口點。該api閘道器通過以下兩種方式之一處理請求。部分請求會被直接**/路由至對應的服務,另一部分請求則需要接入多項服務。

相比提供滿足所有需求的api,api閘道器可以針對不同客戶端提供出不同的api。舉例來說,netflix api閘道器執行的是客戶端特定適配**,這種**能夠為各客戶端提供最符合其需求的api。

api閘道器還能夠實現安全防護,例如驗證當前客戶端是否有權執行該請求。

示例

netflix api gateway

結果

api閘道器有以下優勢:

api閘道器模式也有一些弊端:

問題:相關模式

已知用例

微服務架構模式系列文章之七 自註冊

背景 如採用客戶端服務發現模式或者伺服器端服務發現模式,各服務例項必須在啟動時註冊至服務登錄檔,從而保證其能夠被獲取,並在關閉時進行登出。問題 如何在服務登錄檔內註冊和登出服務例項?需求 方案 一項服務例項必須可以自動註冊到服務登錄檔中。在啟動時,該服務例項將自身 主機與ip位址 註冊至服務登錄檔,...

微服務架構模式系列文章之六 服務登錄檔

背景 一項服務的客戶端需要使用客戶端發現或者伺服器端發現機制,從而獲取給其傳送請求的服務例項的位置。問題 服務的客戶端 在客戶端發現機制中 或者服務路由 在服務端發現機制中 如何獲取可用服務例項的資訊?需求 方案 建立一套服務登錄檔,即乙個包括服務 服務的例項和其位置資訊的資料庫。各服務例項需要在啟...

微服務架構模式系列文章之六 服務登錄檔

背景 一項服務的客戶端需要使用客戶端發現或者伺服器端發現機制,從而獲取給其傳送請求的服務例項的位置。問題 服務的客戶端 在客戶端發現機制中 或者服務路由 在服務端發現機制中 如何獲取可用服務例項的資訊?需求 方案 建立一套服務登錄檔,即乙個包括服務 服務的例項和其位置資訊的資料庫。各服務例項需要在啟...