微服務系統設計:API 網關

API Gateway 是一個 API 管理工具,位於客戶端和後端服務集合之間。它是系統的單一入口點,封裝了內部系統架構並提供爲每個客戶端量身定製的 API。它還具有其他職責,例如身份驗證、監控、負載平衡、緩存、節流、日誌記錄等。


微服務提供的 API 粒度通常與客戶端所需的不同。微服務通常提供細粒度的 API,這意味着客戶端需要與多個服務交互。因此,API 網關可以爲所有客戶端提供單個入口點,並提供一些附加功能和更好的管理。

特徵
以下是 API 網關的一些所需功能:

優點
讓我們看看使用 API Gateway 的一些優勢:

缺點
以下是 API 網關的一些可能缺點:

後端換前端 (BFF) 模式
在後端換前端 (BFF) 模式中,我們創建單獨的後端服務以供特定前端應用程序或接口使用。當我們想要避免爲多個接口定製單個後端時,這種模式很有用。這種模式首先由 Sam Newman 描述。
此外,有時微服務返回到前端的數據輸出的格式不準確,或者沒有按照前端的需要進行過濾。爲了解決這個問題,前端應該有一些邏輯來重新格式化數據,因此,我們可以使用 BFF 將一些邏輯轉移到中間層。


前端模式的後端的主要功能是從適當的服務中獲取所需的數據,格式化數據,並將其發送到前端。

GraphQL 作爲前端(BFF)的後端性能非常好。

什麼時候使用這種模式?
在以下情況下,我們應該考慮使用後端換前端 (BFF) 模式:

例子
以下是一些廣泛使用的網關技術:

附送幽默圖:

JavaScript 和 python 不同寫法。
“主語是什麼” 是一個重要的哲學課題。
“有無主語”、“什麼是主語”或 “主語是什麼” 是一個關鍵哲學課題,會引向不同的節奏。

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/jHawLQcprdg6e0_63ADDYg