BFF 模式:微服務前端數據加載的最佳實踐?

譯者|吳留坡

這種情況下,前端需要一些邏輯來重新處理這些數據,同時在用戶端使用這樣的邏輯會佔用更多的瀏覽器資源。

BFF 將執行以下操作:

下圖顯示了每個微服務如何通過 BFF 與前端連接。

正如我們已經探討過的,BFF 充當前端和微服務之間的簡單接口。理想情況下,前端團隊也將負責管理 BFF。

構建 BFF 允許你智能地對其他後端 / 微服務進行批處理調用,並一次返回所有數據,或者通過轉換和格式化數據來返回更方便的展現形式。

應用程序何時使用 BFF

但是,如果你的應用程序依賴於微服務,並且使用許多外部 API 和其他服務,那麼最好使用 BFF 來簡化數據流,併爲你的應用程序帶來更高的效率。

此外,如果你的應用程序需要爲特定的前端接口開發優化的後端,或者你的客戶端需要使用在後端進行大量聚合的數據,那麼 BFF 是一個合適的選項。

提示:分佈式設計需要不同種類的代碼協作工具。使用 Bit(Github)在單個組件上進行協作,這些組件可以跨代碼倉庫共享並獨立開發。

保持你的代碼倉庫可擴展性、可維護性和始終同步。

瞭解更多信息:

我們能有多個 BFF 嗎?

當然可以!這就是 BFF 的意義所在。

沒有 BFF 的傳統應用程序對於各種客戶端只有一個 API 網關,如下所示,

來源:https://perspectives.mobilelive.ca/

然而,擁有 BFF 的目的是爲客戶端提供一個可連接的集中接口。例如,移動 UI 的數據消耗可能不同於瀏覽器的數據消耗。在這種情況下,爲了更好地展示數據,可以使用兩個 BFF。多個 BFF 的應用程序如下圖所示,

來源:https://perspectives.mobilelive.ca/

如你所見,每種客戶端都有一個 BFF,它將有助於優化服務(Sa、Sb…Sn)的響應。

BFF 的優點

擁有 BFF 的幾個優點,

在實踐中遵循的最佳實踐

總結

BFF 模式不僅有助於開發,而且有助於極大地改善用戶體驗。因此,在保持 BFF 專注於其前端的同時,考慮數據優化和聚合是非常重要的。

此外,如果你以前沒有使用過 BFF 模式,現在是時候開始了。

 延伸閱讀

https://blog.bitsrc.io/bff-pattern-backend-for-frontend-an-introduction-e4fa965128bf

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