‌BFF(Backends For Frontends)架构

 我的新书《Android App开发入门与实战》已于2020年8月由人民邮电出版社出版,欢迎购买。点击进入详情

 

在现代软件开发中,向微服务、云原生架构和不断增长的客户端设备(移动应用、Web 应用、物联网等)的转变需要新的架构范式。出现的最突出的模式之一是后端前端 (BFF)架构。随着应用程序变得越来越分散,根据单个客户需求定制后端服务的需求对于提供快速、可维护和安全的用户体验至关重要。

什么是前端后端 (BFF) 架构?

从本质上讲,Backend for Frontend是一种架构模式,它为每个前端接口提供专用的后端层。每个前端(例如移动应用、Web 应用、智能设备等)可能具有不同的性能、数据和交互需求。BFF 不会依赖单个整体式或通用 API,而是根据给定前端的特定需求定制后端。

本质上,对于每个客户端或客户端组(例如移动客户端或 Web 客户端),您都需要构建一个单独的后端,以便:

  • 整合或协调对各种服务的调用。
  • 以客户端友好的格式准备数据。
  • 处理与前端相关的特定逻辑。

这样可以分离关注点,从而更容易针对客户端的特定用例优化每个后端。

BFF 的工作原理

  1. 客户端请求:客户端(移动、网络等)向其相应的 BFF 发出请求。
  2. BFF 层:BFF 整合来自多个微服务的数据,执行任何转换或优化,并以定制的响应进行响应。
  3. 微服务:BFF 与底层服务(例如用户服务、订单服务等)交互。

传统架构与 BFF

传统与 BFF

在传统架构中,单个 API 网关通常处理来自不同客户端(例如 Web、移动、IoT)的请求。虽然 API 网关非常适合路由请求、添加身份验证和速率限制,但它缺乏处理特定于前端需求的灵活性,例如:

  • 为不同的客户端应用程序定制数据模型。
  • 针对较慢的移动网络进行专门的性能优化。
  • 管理特定前端服务之间的复杂编排。

单一API 方法通常会导致过度获取(数据过多)或获取不足(数据过少),从而迫使客户端进行多次往返以收集必要的信息。BFF 通过分离后端解决了这个问题,确保每个客户端都能准确获得其所需的信息。

为什么 BFF 是现代建筑的超级明星

是什么让 BFF 成为后端架构的明星呢?

  • 量身定制的用户体验:每个前端(无论是移动应用程序、桌面还是可穿戴设备)都能获得所需的准确数据,不会产生任何额外杂乱。就像在任何场合都有一套尺寸合适的西装一样。
  • 降低复杂性:BFF 通过定制每个后端来简化事情,确保跨平台的无缝体验。
  • 性能提升:BFF 是您应用的涡轮增压器。通过减少不必要的 API 调用,它们可确保更快的响应速度和更满意的用户。
  • 开发速度更快:当团队针对每个前端开发不同的 BFF 时,他们可以更快地行动,而不会互相干扰。这就像厨房里有多个厨师,每个人都精通自己的菜肴。
  • 增强的安全性:由于 BFF 控制与后端的所有交互,它可以实施严格的安全措施,例如令牌验证、输入验证和速率限制,从而使系统更加安全。

何时使用 BFF?

多平台应用程序——对于构建多平台应用程序(网络、移动、智能设备)的公司,BFF 允许每个平台获得定制的体验。

微服务编排 —在微服务架构中,客户端可能需要从多个服务(例如,用户服务、订单服务、库存服务)获取数据。BFF 可以充当编排器,从各种服务中收集必要的数据并将其作为统一的响应呈现给客户端。

优化旧版 API —迁移到微服务或使用旧版系统时,BFF 可以帮助掩盖底层架构的复杂性。它为前端提供了现代界面,同时仍可与旧系统交互。

挑战与考虑

虽然 BFF 带来了许多好处,但也带来了一些挑战:

  1. 维护开销增加:需要维护多个后端(每个前端一个)会增加复杂性。这需要额外的监控、扩展和安全措施。
  2. 一致性问题:如果设计不周,单独的后端可能会导致不同客户端返回的数据不一致。
  3. 性能瓶颈:如果 BFF 层未针对处理大量请求进行优化或执行大量计算,则可能成为性能瓶颈。

实施最佳实践

在实现 BFF 架构时,请考虑以下事项:

  1. 限制 BFF 中的业务逻辑:BFF 应该主要关注编排和格式化前端的数据,而不是实现复杂的业务逻辑。
  2. 使用缓存:为了提高性能,尤其是对于移动客户端,您可以在 BFF 层缓存常见的响应。
  3. 错误处理:集中在 BFF 中的错误处理和日志记录,以防止出现客户端问题。
  4. 安全性:通过在 BFF 级别强制执行身份验证、授权和速率限制来保护 BFF 的安全,以保护您的后端服务。

现实世界中的 BFF 成功故事

  • Netflix:BFF 架构是 Netflix 无缝跨设备体验的背后支撑。移动应用程序仅提取轻量级数据,而桌面应用程序则获取更详细的信息以实现更丰富的功能。
  • Spotify:无论您使用的是手机、平板电脑还是智能扬声器,Spotify 的 BFF 都能确保每台设备获得优化数据,确保您在各个平台上的音乐体验快速而流畅。

结论:BFF——完美用户体验的秘诀

前端后端架构改变了游戏规则。它让开发人员能够准确地交付每个用户界面所需的内容,不多也不少。虽然管理多个 BFF 会增加复杂性,但性能提升和灵活性非常值得付出努力。无论您是在扩展 Web 应用程序、移动应用程序还是 IoT 设备,BFF 可能就是您一直缺少的秘密武器。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值