定制设计浅谈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. 如果服务端数据显示格式不同,为了让前端设配更好而提供一个良好的数据格式。
网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发