Microservices 前端BFFs或API网关的后端

Microservices 前端BFFs或API网关的后端,microservices,Microservices,在微服务体系结构中,我们可以: 单个API网关为所有客户端提供单个API 为每种客户端提供API的单个API网关 每个客户端的API网关,为每个客户端提供一个API。这就是BFF模式 Netflix使用第二种风格。我们可以肯定地说,他们已经在他们的体系结构中创建了一个智能中间件,它承担着多重责任。 但是这个单一的API后端可以处理多少工作,似乎很容易成为瓶颈 因此,我的问题是,选择单个API来处理1000多个客户端的请求,而不是创建专门为一种类型的客户端设计的API网关,有什么好处?他们在管理和

在微服务体系结构中,我们可以:

  • 单个API网关为所有客户端提供单个API

  • 为每种客户端提供API的单个API网关

  • 每个客户端的API网关,为每个客户端提供一个API。这就是BFF模式

  • Netflix使用第二种风格。我们可以肯定地说,他们已经在他们的体系结构中创建了一个智能中间件,它承担着多重责任。 但是这个单一的API后端可以处理多少工作,似乎很容易成为瓶颈


    因此,我的问题是,选择单个API来处理1000多个客户端的请求,而不是创建专门为一种类型的客户端设计的API网关,有什么好处?他们在管理和维护这个复杂的部件方面不是面临着很多挑战吗

    这完全取决于你的最终用户在哪里,在Netflix的情况下,他们有不同类型的客户端、web/mobile/streaming Stick/bluray player/等等,而web(一直更新到最新)、mobile(最终更新到最新)、bluray player(例如预装应用程序)可能永远不会更新

    您必须为每个平台相应地版本API,并根据客户端更新周期对其进行维护,以实现向后兼容性。如果一个api中有太多的变体,那么很难维护,相反,为每种类型的客户机编写api会更容易。除非您真正需要#3,并且有足够的资源为每种类型的客户机开发,否则我不会跳进去,因为您必须为相同的目的维护许多不同的api

    我会从1开始