BFF(一)BFF架构演进

Posted by 汪洋龙 on Sunday, January 8, 2023

BFF 架构演进

1. 单体服务

  • 单体服务是指一个独立的应用程序,包含了所有的功能和业务逻辑。这种架构方式在小型应用程序中很常见
  • 随着应用程序的功能越来越多,代码库也会越来越大,维护起来也会变得更加困难。此外,单体服务的整体复杂度也会增加,这可能导致软件开发周期变长,质量下降,并且系统的扩展性也会受到限制

单体服务

2. 微服务

  • 为了应对这些问题,许多公司开始使用微服务架构。微服务是指将一个大型应用程序拆分成若干个小型服务,每个服务负责执行特定的任务。这种架构方式可以帮助公司更快地开发和部署新功能,并提高系统的可扩展性和可维护性
  • 这种方式会有以下问题
    • 域名开销增加
    • 内部服务器暴露在公网,有安全隐患
    • 各个端有大量的个性化需求
      • 数据聚合 某些功能可能需要调用多个微服务进行组合
      • 数据裁剪 后端服务返回的数据可能需要过滤掉一些敏感数据
      • 数据适配 后端返回的数据可能需要针对不同端进行数据结构的适配,后端返回 XML ,但前端需要 JSON
      • 数据鉴权 不同的客户端有不同的权限要求

微服务

3. BFF

  • BFF 是 Backend for Frontend 的缩写,指的是专门为前端应用设计的后端服务
  • 主要用来为各个端提供代理数据聚合、裁剪、适配和鉴权服务,方便各个端接入后端服务
  • BFF 可以把前端和微服务进行解耦,各自可以独立演进

BFF

4. 网关

  • API 网关是一种用于在应用程序和 API 之间提供安全访问的中间层
  • API 网关还可以用于监控 API 调用,路由请求,以及在请求和响应之间添加附加功能(例如身份验证,缓存,数据转换,压缩、流量控制、限流熔断、防爬虫等)
  • 网关和 BFF 可能合二为一

网关

5. 集群化

  • 单点服务器可能会存在以下几个问题:
    • 单点故障:单点服务器只有一台,如果这台服务器出现故障,整个系统都会停止工作,这会导致服务中断
    • 计算能力有限:单点服务器的计算能力是有限的,无法应对大规模的计算需求
    • 可扩展性差:单点服务器的扩展能力有限,如果想要提升计算能力,就必须改造或者替换现有的服务器
  • 这些问题可以通过采用服务器集群的方式来解决

集群化