成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何使用Backend for Front-End處理復雜性

譯文 精選
開發 架構 前端
Backend For Front-end方法將清理邏輯從每個服務中提取到一個專用組件中,該組件還負責聚合數據。每個客戶團隊還負責其專用的BFF:當客戶更改其數據需求時,團隊可以部署適應新需求的新BFF版本。

圖片

譯者 | 康少京

審校 | 墨色

策劃 | 信遠

在過去,應用程序很簡單。瀏覽器向web應用端點發送請求,后者從數據庫中獲取數據并返回響應。移動客戶端的興起以及與其他應用的集成打破了這種簡單性。本文將討論一種處理復雜性的解決方案。

?增加系統架構的復雜性

首先,我們需要對上述簡單的體系結構進行建模。

圖片

?移動客戶端改變了這種方法。移動客戶端的顯示區域更小,例如:平板電腦,手機。有一種可能的解決方案是返回所有數據,并讓每個客戶端過濾掉不必要的數據。不幸的是,手機客戶端也受到帶寬不足的影響,并非所有手機都具備5G功能。即使是這樣,如果它位于偏僻的地方,連接點只能提供H+,那也沒用。

因此,不能過度抓取。每個客戶端需要不同的數據子集。使用單體,可以根據每個客戶端提供多個端點。

圖片

?可以設計一個在最前端具有特定層的網絡應用程序,該層檢測發出請求的客戶端,并過濾掉響應中的無關數據,web應用程序中的過度抓取不是問題。

如今,微服務風靡一時,每個人及其鄰居都想實現一個微服務架構。

微服務背后是“兩個披薩團隊”的理念。每個團隊都是自主的,負責一個微服務或一個前端應用程序。為了避免開發工作之間的耦合,每個微服務團隊發布其API合同并非常謹慎地處理更改。

圖片


每個微服務都需要為每種客戶端提供嚴格必需的數據,以避免上面的過度抓取問題。對于少量的微服務,讓每個微服務根據客戶端過濾數據很麻煩,數量眾多,這顯然是不可能的,因此,微服務數量與不同客戶端數量之間的笛卡爾因子使得每個微服務上的專用數據端點的成本成倍增長。

解決方案:Backend for Front-End

BFF背后的想法是將邏輯從每個微服務轉移到一個專用的可部署端點。后者負責:

  • 從每個所需的微服務中獲取數據
  • 提取相關部分
  • 聚合它們
  • 最后以一種與特定客戶相關的格式返回

同一個團隊開發客戶端及其相關的BFF。BFF提供了與微服務相同的權衡:通過增加系統復雜性來提高開發速度。

圖片

獨立部署單元與API網關

關于BFF的文獻暗示了專用部署單元,如上圖所示。有些文章,比如本篇,反對使用API網關的BFF。但概念圖不一定與部署圖一一對應。

與許多領域一樣,人們應該更多地關注組織方而不是技術方面的問題。在這種情況下,最關鍵的一點是,負責前端的團隊也要對BFF負責。無論是單獨的部署單元還是API網關配置的一部分,都是一個實現細節。

圖片


例如,使用Apache APISIX,每個團隊都可以將他們的BFF代碼獨立部署為單獨的插件。

性能考慮

對于單體,情況如下:

  • 從客戶端到單體的請求需要一個特定的時間T。它經過互聯網,T可能很長。
  • 與T相比,對數據庫的不同內部調用可以忽略不計。

一旦遷移到微服務,客戶端就需要依次調用每個微服務。因此,對于順序調用,時間變為∑(T1、T2、Ti、Tn)。由于這是不可接受的,客戶端通常使用并行調用。時間變為最大(T1、T2、Ti、Tn)。注意,即使這樣,客戶端也需要執行n個請求。

在BFF的情況下,無論實現的是什么,我們都會在T時間內返回一個請求。與單體相比,從BFF到微服務還有額外的請求t1、t2、ti、tn,但它們可能位于一起。因此,整體時間會比單體更長,但由于每個t都比T短得多,因此不會對用戶體驗產生太大影響。

結論?

你可能不應該實現微服務。如果你這樣做,微服務不應該返回整個數據,而是讓客戶端負責清理這些數據。因此,微服務需要根據客戶端返回所需的確切數據。它在微服務與客戶端之間引入了強耦合。你想移除這個耦合。為實現這一點,Backend For Front-end方法將清理邏輯從每個服務中提取到一個專用組件中,該組件還負責聚合數據。每個客戶團隊還負責其專用的BFF:當客戶更改其數據需求時,團隊可以部署適應新需求的新BFF版本。

BFF是一個概念解決方案。沒有什么要求提取/清理/聚合邏輯位于特定位置。它可以是專用部署單元,也可以是API網關中的插件。

在之后的文章中,將會展示本文中所描述的不同步驟。

原文鏈接:https://dzone.com/articles/discussing-backend-for-front-end

譯者介紹

康少京,51CTO社區編輯,目前從事通訊類行業,底層驅動開發崗位,研究過數據結構、Python,現對操作系統和數據庫等相關領域感興趣。

責任編輯:墨色 來源: 51CTO
相關推薦

2019-07-29 12:35:15

云計算復雜性云計算平臺

2019-05-13 15:47:29

Kubernetes云計算云復雜性

2012-12-26 10:53:26

2016-11-22 09:24:29

大數據部署Hadoop

2017-06-23 08:45:02

存儲技術復雜性

2019-08-21 13:24:25

KubernetesHadoop容器

2017-08-29 20:19:56

對象存儲架構存儲數據中心

2009-01-20 15:23:33

存儲安全密鑰數據保護

2009-02-02 14:49:11

服務器虛擬化基礎架構

2010-05-27 22:30:08

桌面虛擬化回報

2019-11-23 23:30:55

Python數據結構時間復雜性

2022-12-27 08:00:28

2018-12-03 13:19:01

物聯網企業云IOT

2022-03-17 08:54:59

軟件系統重構

2012-04-10 22:52:58

IBMTivoli云計算

2012-09-19 13:18:37

復雜設計UI設計

2023-04-04 08:42:30

IT成本技術堆

2020-06-15 09:58:23

云計算云安全數據

2019-06-13 11:49:44

數據保護數據管理多云

2018-06-04 15:13:35

避免云計算危機
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩中文av在线 | 看真人视频一级毛片 | 欧美激情va永久在线播放 | 亚洲色图图片 | 亚洲国产精品一区在线观看 | 在线免费观看一区二区 | 欧美激情a∨在线视频播放 成人免费共享视频 | 殴美黄色录像 | 一区二区中文 | 中文字幕不卡在线观看 | 九九色综合 | 久草新在线 | 亚洲欧美视频一区 | 在线一区| 一本综合久久 | 欧美在线一区二区三区 | 九九热在线免费观看 | 国产精品久久久久久久久图文区 | 欧日韩不卡在线视频 | 久久精品视频在线观看 | 久久久久国产一区二区三区 | 在线观看特色大片免费网站 | 欧美一级特黄aaa大片在线观看 | 日韩精品免费一区二区在线观看 | 99热在线免费 | 日韩网站在线观看 | 精品国产18久久久久久二百 | 在线免费观看毛片 | 国产精品不卡一区 | 色av一区二区 | 91精品国产乱码久久久久久久久 | 国产一区二区三区四区五区加勒比 | 成人a免费 | 一区二区三区久久久 | 国产精品免费大片 | 久久九精品 | 亚洲高清一区二区三区 | 一区二区在线 | 亚洲一区二区三区视频 | 中文字幕乱码一区二区三区 | 亚洲成人观看 |