当前位置: 首页 > 后端技术 > Node.js

浅谈BFF(Back-endForFront-end)

时间:2023-04-03 23:24:05 Node.js

什么是BFF?BFF(Back-endForFront-end)是一个中层概念,说了很久。是一层nodejs,可以做请求转发和数据转换。Nodejs不仅配合前端技术栈,更适合微服务的并发请求。也可以做成前者Restful,后者RPC的实现;还可以在BFF中添加缓存、鉴权等操作,可以根据自己的需要进行修改。BFF优缺点回顾了前端进化史,我们来分析一下BFF的优缺点。BFF作为中间层的好处是前后端完全分离,即使后期有微服务迁移,也不需要改动前端代码。业务靠拢,琐碎的API由前端开发自己决定,更适合前端框架。为了让后端有更清晰的服务边界,它只需要提供一个粗粒度的接口。BFF作为中间层的缺点是中间层的转发会增加请求延迟。需要保证端到端的测试。后端异常请求要随时准备,需要全链路跟踪等一系列容错和排查措施。BFF共享会增加开发成本,相关人员培训难度大。midway介绍,在我们公司的网络控制中,BFF层使用了node技术栈,利用node的高并发和非阻塞I/O的特点,使用midway.js作为BFF的node框架。Midway(中途岛)是淘宝架构团队(原淘宝UED)开发的面向未来的Node.js框架。在大规模编程、Serverless等各种场景中,Midway使用TypeScript和完全自研的依赖注入能力,打造极致的用户体验。Midway2.0整合了Serverless能力,扩展了RPC、Socket、微服务、前后端一体化研发等能力,不同场景可以进行组合协同,为用户提供相对灵活可靠的体验。公司采用midway作为网控系统的中间层,使得网控系统具备强大的并发能力,并通过pandora.js、节点集群等技术,极大地提升了接入层的性能和稳定性。BFF使用RPC与后端通信,通过rabbitMQ与各种服务收发消息事件,大大增强了系统的稳定性和扩展性。