zoukankan      html  css  js  c++  java
  • 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 的高并发,负载均衡,认证等内容

  • 相关阅读:
    第一节 Spring的环境搭建
    002. 配置环境变量
    001. 巧妇难为无米之炊之安装环境
    第七节 认识SpringMVC中的表单标签
    [六字真言]6.吽.SpringMVC中上传大小异常填坑
    [六字真言]4.叭.SpringMVC异常痛苦
    [六字真言]5.咪.功力不足,学习前端JavaScript异常
    [六字真言]3.呢.异常的谎言,你要相信多少次?
    [六字真言]2.嘛.异常定制和通用.md
    vim基本技巧
  • 原文地址:https://www.cnblogs.com/moonlight-lin/p/14165046.html
Copyright © 2011-2022 走看看