当前位置: 首页 > news >正文

bff层解决了什么痛点

bff层 -- 服务于前端的后端

什么是bff?

Backend For Frontend(服务于前端的后端),也就是服务器设计API的时候会考虑前端的使用,并在服务端直接进行业务逻辑的处理,又称为用户体验适配器。BFF只是一种逻辑分层,不是一种技术。

BFF解决了什么问题

如下图,在我们的前端页面时常存在,某个页面需要向backendA,backend B以及backend C发送请求,不同服务的返回值用于渲染页面中不同的component,即一个页面会存在很多请求的场景。

此时,每次访问该页面都需要发送 3 个请求。同时为了保障 Android,iOS,以及 Web 端的不同需求,需要为不同的平台写不同的 API 接口,而每当值发生一些变化时,需要 Android,iOS,Web 做出修改。与此同时,当我们需要对一个字符串进行处理,如限定 140 个字符的时候,我们需要在每一个客户端(Android,iOS,Web)分别实现一遍,这样的代价显然相当大。

于是,我们就需要 BFF 作为中间件。在这个中间件上我们将做一些业务逻辑处理:

而当我们有了 BFF 这一层时,我们就不需要考虑系统后端的迁移。后端发生的变化都可以在 BFF 层做一些响应的修改。

例如,我们加入 BFF 层,原本每次访问发送 3 请求页面,变成一个请求。

使用 BFF 的正确姿势

多端应用

我们在设计 API 时会考虑到不同设备的需求,也就是为不同的设备提供不同的 API,虽然它们可能是实现相同的功能,但因为不同设备的特殊性,它们对服务端的 API 访问也各有其特点,需要区别处理。

服务聚合

随着微服务的兴起,原本在同一个进程内运行的业务流程被拆分到了不同的服务中。这在增加业务灵活性的同时,也让前端的调用变得更复杂。BFF 的出现为前端应用提供了一个对业务服务调用的聚合点,它屏蔽了复杂的服务调用链,让前端可以聚焦在所需要的数据上,而不用关注底层提供这些数据的服务。

实战中的玩法

访问控制

例如,服务中的权限控制,将所有服务中的权限控制集中在BFF层,使下层服务更加纯粹和独立。

应用缓存

项目中时常存在一些需要缓存的临时数据,此时BFF作为业务的汇聚点,距离用户请求最近,将该缓存操作放在BFF层。

第三方入口

在业务中需要与第三交互的时候,将该交互放在BFF层,这样可以只暴露必要信息给第三方,从而便于控制第三方的访问。

可以参考:

Sam Newman - Backends For Frontends

http://www.lryc.cn/news/220769.html

相关文章:

  • 面试经典150题——Day33
  • 再谈Android重要组件——Handler(Native篇)
  • Javaweb之javascript的详细解析
  • Linux常用命令——cd命令
  • VHDL基础知识笔记(1)
  • volatile-日常使用场景
  • 策略模式在数据接收和发送场景的应用
  • 学习LevelDB架构的检索技术
  • Docker Swarm实现容器的复制均衡及动态管理:详细过程版
  • Proteus仿真--1602LCD显示仿手机键盘按键字符(仿真文件+程序)
  • Rust语言和curl库编写程序
  • FSDiffReg:心脏图像的特征和分数扩散引导无监督形变图像配准
  • 音视频技术开发周刊 | 318
  • asp.net docker-compose添加sql server
  • uniapp 微信小程序 uni-file-picker上传图片报错 chooseAndUploadFile
  • 《向量数据库指南》——用 Milvus Cloud和 NVIDIA Merlin 搭建高效推荐系统结论
  • 致:CSGO游戏搬砖人的一封信
  • MuLogin浏览器如何在一台设备上安全登录和管理多个LinkedIn账户?
  • STM32_project:led_beep
  • [go 反射] 入门
  • 【计算机网络】数据链路层-MAC和ARP协议
  • 本周三商店更新:多款套装下线,四款升级武器带异色皮肤返厂
  • WindowsServer2019-搭建FTP服务器
  • 国际阿里云服务器买哪种好用点?
  • 2023NOIP A层联测25 总结
  • Thread类的基本操作(JAVA多线程)
  • Redis 的三种部署模式
  • 【ArcGIS Pro二次开发】(73):使用NPOI库操作Excel
  • python获取电脑所连接的wifi密码
  • 动态壁纸软件Live Wallpaper HD mac中文版功能特色