BFF (Back-end for Front-end 服務於前端的后端)


前端開發模式的演進

  • 后端渲染頁面: 后端基於模板,結合具體的請求,生成對應的 html 文件給瀏覽器執行
  • 前后端的分離: 后端不再寫 HTML,只提供 API 接口返回數據給前端,前端通過 JavaScript 負責界面的渲染和交互,通過 AJAX 異步地和后端交互數據
  • 前端的工程化: 前端不再是開發一個個頁面,而是開發一個個組件,並且實現開發的模塊化,組件化,規范化,出現了如 Node.js,React,Angular,Vue,AMD,CommonJS,ES6,Webpack 等技術
  • 后端的微服務: 后端微服務化后,不再是一個單獨服務針對前端提供細粒度的接口,而是由多個微服務提供粗粒度的接口,讓前端自己篩選數據

后端微服務化后,前端如何從后端獲取數據呢

  • 通過 CORS 跨域訪問多個微服務,獲取數據后前端自己裁剪組合
  • 通過統一的 API Gateway 訪問,由 API Gateway 將請求分發給各個微服務,獲取數據后前端自己裁剪組合
  • 加一個中間層 BFF (Back-end for Front-end 服務於前端的后端),BFF 的接口設計是專門針對前端設計的,在接受前端的請求后,向各個微服務請求數據,然后組合裁剪,然后將結果返回給前端,前端就可以直接使用

BFF 的優點

  • 前后端徹底分離,后端的變化不影響前端,前端的變化也不影響后端,都由 BFF 去適配就可以
  • 通常 BFF 由前端團隊自己開發,團隊更容易使 BFF 接口設計適配前端業務,前端測試也更容易,而以往前后端團隊的溝通協作都是很大的成本
  • 后端的功能更明確,更獨立,就是提供某種粗粒度的數據即可

BFF 的缺點

  • 多一個中間層增加延遲
  • 前端增加開發成本,以往只要開發前端即可,現在還要考慮后端的 BFF,要考慮 BFF 的高並發,負載均衡,認證等內容


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM