使用与 BFF 模式平行的微服务的直接连接是不是正确?

Posted

技术标签:

【中文标题】使用与 BFF 模式平行的微服务的直接连接是不是正确?【英文标题】:Is it correct to use straight connections to microservices parallel to a BFF pattern?使用与 BFF 模式平行的微服务的直接连接是否正确? 【发布时间】:2020-04-30 22:44:03 【问题描述】:

BFF - Back For Front 模式。 BFF 模式意味着我们为每个客户端都有 API 网关。 此时的 BFF 可能成为某些微服务的瓶颈。

    单个客户端可以有多个 BFF(网关)吗?

    如果我们有一个具有 BFF 的客户端,但也有直接连接到该客户端的一些其他微服务.. 将 BFF 称为 BFF 是否正确,或者它只是一些网关或其他东西完全?

【问题讨论】:

【参考方案1】:

根据我的经验,前端的后端是前端和微服务之间的一层,旨在根据特定前端的需要提供数据。所以它的设计应该考虑到前端的需求。

因此,该后端应具有前端所需的所有数据的端点,并且具有前端所需的格式。因此,它有责任调用聚合数据所需的任何微服务。

考虑到这一点,我认为前端使用两个不同的 BFF 或其特定 BFF 未提供的其他端点是没有意义的

【讨论】:

我看到的只有一个问题 - BFF 将成为瓶颈,它将通过自己的所有查询,我认为这可能是未来的问题。所以我的观点是在没有 BFF 作为网关的情况下使用一些复杂的微服务。 因为 BFF 旨在成为您所说的无状态网关,您可以根据需要满足流量需求的实例数量对其进行扩展

以上是关于使用与 BFF 模式平行的微服务的直接连接是不是正确?的主要内容,如果未能解决你的问题,请参考以下文章

微服务架构~Netflix的微服务是如何分层的

浅谈BFF架构

六种常用的微服务架构设计模式(建议收藏)

基于DDD思想的微服务架构学习导向

API网关模式和BFF有区别吗?

微服务注册与发现