【问题标题】:Microservices BFF pattern微服务 BFF 模式
【发布时间】:2021-11-01 10:40:16
【问题描述】:

我们正在开发具有基于微服务架构的应用程序,其组件如下图所示,但不确定 BFF 层应该如何构建。 我们目前正在考虑两种设计方案,但不确定应该推荐哪种方案。

选项 1:网关作为 BFF

选项 2:作为 BFF 的专用微服务

【问题讨论】:

    标签: architecture microservices gateway spring-cloud-gateway


    【解决方案1】:

    Gateway 和 BFF(Backend For Frontend)并不完全相同:

    • 网关/API 网关 是平台基础架构的一部分。它向客户端公开 API 端点并调解流量,即身份验证、速率限制等。
    • BFF(特别是 API 和支持 API 和/或服务)是您编写的软件的一部分。 API 部分将位于网关上(根据您的选项 1)。

    API 实际调用的内容取决于您。 BFF 的目标基本上意味着需要以一种对客户端方便的方式将客户端需要的数据整合到一起 - 即编排,甚至可能是一些缓存。

    选项:

    1. 对于简单的场景,您可能可以使用网关上的 API 端点以及网关具有的任何功能在网关本身上执行此操作。
    2. 对于其他情况,您可能需要实现一些更实质性的东西 - 例如处理编排的专用服务。

    请记住,“API”是一个加载的术语,取决于上下文:

    • 有时它意味着只是网关上的一个端点(选项 1)。
    • 有时它意味着网关上的端点加上任何实现“API”提供的逻辑的服务(选项 2)。

    在你的情况下,我是说 BFF 可以通过任何一种方式实现。

    您可能还对“Experience API”感兴趣,它与 BFF 的想法相似(如果不相同)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-30
      • 1970-01-01
      • 2021-01-27
      • 2021-04-21
      • 2021-06-20
      • 2018-01-25
      • 1970-01-01
      相关资源
      最近更新 更多