做网站最好选什么语言,网站图片规格,网站开发网上教学,wordpress企业产品列表bff层 -- 服务于前端的后端
什么是bff#xff1f;
Backend For Frontend#xff08;服务于前端的后端#xff09;#xff0c;也就是服务器设计API的时候会考虑前端的使用#xff0c;并在服务端直接进行业务逻辑的处理#xff0c;又称为用户体验适配器。BFF只是一种逻辑…bff层 -- 服务于前端的后端
什么是bff
Backend For Frontend服务于前端的后端也就是服务器设计API的时候会考虑前端的使用并在服务端直接进行业务逻辑的处理又称为用户体验适配器。BFF只是一种逻辑分层不是一种技术。 BFF解决了什么问题
如下图在我们的前端页面时常存在某个页面需要向backendAbackend B以及backend C发送请求不同服务的返回值用于渲染页面中不同的component即一个页面会存在很多请求的场景。 此时每次访问该页面都需要发送 3 个请求。同时为了保障 AndroidiOS以及 Web 端的不同需求需要为不同的平台写不同的 API 接口而每当值发生一些变化时需要 AndroidiOSWeb 做出修改。与此同时当我们需要对一个字符串进行处理如限定 140 个字符的时候我们需要在每一个客户端AndroidiOSWeb分别实现一遍这样的代价显然相当大。
于是我们就需要 BFF 作为中间件。在这个中间件上我们将做一些业务逻辑处理 而当我们有了 BFF 这一层时我们就不需要考虑系统后端的迁移。后端发生的变化都可以在 BFF 层做一些响应的修改。
例如我们加入 BFF 层原本每次访问发送 3 请求页面变成一个请求。 使用 BFF 的正确姿势
多端应用
我们在设计 API 时会考虑到不同设备的需求也就是为不同的设备提供不同的 API虽然它们可能是实现相同的功能但因为不同设备的特殊性它们对服务端的 API 访问也各有其特点需要区别处理。
服务聚合
随着微服务的兴起原本在同一个进程内运行的业务流程被拆分到了不同的服务中。这在增加业务灵活性的同时也让前端的调用变得更复杂。BFF 的出现为前端应用提供了一个对业务服务调用的聚合点它屏蔽了复杂的服务调用链让前端可以聚焦在所需要的数据上而不用关注底层提供这些数据的服务。 实战中的玩法
访问控制
例如服务中的权限控制将所有服务中的权限控制集中在BFF层使下层服务更加纯粹和独立。
应用缓存
项目中时常存在一些需要缓存的临时数据此时BFF作为业务的汇聚点距离用户请求最近将该缓存操作放在BFF层。
第三方入口
在业务中需要与第三交互的时候将该交互放在BFF层这样可以只暴露必要信息给第三方从而便于控制第三方的访问。 可以参考
Sam Newman - Backends For Frontends