背景
產品細節ui可以顯示出大量產品資訊。舉例來說,amazon.com的pojos in action 圖書詳情頁面中會顯示:
因此,顯示產品詳情的**需要從這些服務中獲取資訊。
問題
微服務架構的應用客戶端如何訪問各項服務?
需求
方案
使用api閘道器作為全部客戶端的單一入口點。該api閘道器通過以下兩種方式之一處理請求。部分請求會被直接**/路由至對應的服務,另一部分請求則需要接入多項服務。
相比提供滿足所有需求的api,api閘道器可以針對不同客戶端提供出不同的api。舉例來說,netflix api閘道器執行的是客戶端特定適配**,這種**能夠為各客戶端提供最符合其需求的api。
api閘道器還能夠實現安全防護,例如驗證當前客戶端是否有權執行該請求。
示例
netflix api gateway
結果
api閘道器有以下優勢:
api閘道器模式也有一些弊端:
問題:相關模式
已知用例
微服務架構模式系列文章之七 自註冊
背景 如採用客戶端服務發現模式或者伺服器端服務發現模式,各服務例項必須在啟動時註冊至服務登錄檔,從而保證其能夠被獲取,並在關閉時進行登出。問題 如何在服務登錄檔內註冊和登出服務例項?需求 方案 一項服務例項必須可以自動註冊到服務登錄檔中。在啟動時,該服務例項將自身 主機與ip位址 註冊至服務登錄檔,...
微服務架構模式系列文章之六 服務登錄檔
背景 一項服務的客戶端需要使用客戶端發現或者伺服器端發現機制,從而獲取給其傳送請求的服務例項的位置。問題 服務的客戶端 在客戶端發現機制中 或者服務路由 在服務端發現機制中 如何獲取可用服務例項的資訊?需求 方案 建立一套服務登錄檔,即乙個包括服務 服務的例項和其位置資訊的資料庫。各服務例項需要在啟...
微服務架構模式系列文章之六 服務登錄檔
背景 一項服務的客戶端需要使用客戶端發現或者伺服器端發現機制,從而獲取給其傳送請求的服務例項的位置。問題 服務的客戶端 在客戶端發現機制中 或者服務路由 在服務端發現機制中 如何獲取可用服務例項的資訊?需求 方案 建立一套服務登錄檔,即乙個包括服務 服務的例項和其位置資訊的資料庫。各服務例項需要在啟...