浅谈BFF架构

BFF架构学习

1.什么是BFF?

BFF是服务于前端的后端,全称Backend For Frontend。BFF的位置在与客户端与服务端中间,起到一个中间件的作用。

2.BFF干什么?

让我们看下结构分布图如下:

在这里插入图片描述

解析此图可以简单看出:BFF将服务端的接口数据汇聚一块,然后经过整理加工传给前端。这样前端就可以直接调用一个接口就能直接获取数据。而后端也不至于为前端的需要而将业务代码汇聚到一块。方便了前后端开发。BFF向下是服务端各种微服务,向上则是为客户端提供接口服务。后端为BFF层的前端提供的 RPC 接口, BFF 层则直接调用服务端 RPC 接口拿到数据,按需加工数据,来完成整个BFF的闭环(以Node+GraphQL技术栈为主)

3.BFF优势和不足?

BFF的优势:

  1. 独立化前后端,达到一种解耦的作用。
  2. 多端应用适配,当不同终端对服务端接口提供的数据需求不一的时候,可以通过调整BFF层,同时也可以进行 不同的API调用来减少Http请求。

BFF的不足:

  1. 重复开发:在开发一个BFF的应用的时候,会出现重复开发BFF的问题展示。增加了开发成本。
  2. 维护成本增加:在开发BFF应用中,要对BFF进行维护。
  3. 链路复杂:在BFF的流程中,不仅要兼顾客户端还要兼顾服务端,这样就导致了一个流程的繁琐。
  4. 浪费资源:现在多了一个BFF层,因此资源上的消耗也会比之前多。

解决BFF的不足建议是负载均匀、监控报警、等运维操作

而综上所有的解决方式为ServerLess,Serverless = Faas (Function as a service) + Baas (Backend as a service)

Fass:是服务商提供一个平台、提供给用户开发、运行管理这些函数的功能,而无需搭建和维护基础框架,是一种事件驱动由消息触发的函数服务

Baas:为服务端服务的,这里包含了许多后端组件,是一个优秀基于API的第三方服务。包含了数据库、消息队列、日志服务等

4.BFF的应用环境

  1. 客户端需要大量数据展示而App不需要太多数据,或者一个页面需要大量接口请求,那么就可以使用BFF对数据进行结合。
  2. 迭代展示,对于新版本页面展示需要快速开发,让页面展示的数据有所不同。
  3. 如果服务端数据显示格式不同,为了让前端设配更好而提供一个良好的数据格式。
  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

"匠"人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值