BFF模式(前端的后端):介绍
  想象⼀下,您需要使⽤微服务构建电⼦商务应⽤程序的场景。您可以为客户,订单,产品,购物车等具有微服务。微服务将暴露前端使⽤API。
  但是,通过微猎狼⼈返回到前端的数据可能不会根据前端需要表⽰它们的确切⽅式进⾏格式化或过滤。
  在这种情况下,前端需要⾃⼰拥有⼀些逻辑来重新格式化这些数据。在前端具有此类逻辑将使⽤更多的浏览器资源。
  在这样的情况下,我们可以使⽤BFF来将⼀些这个前端逻辑转移到中间层。中间层是BFF。当前端请求某些数据时,它将调⽤BFF中的API。
  BFF将执⾏以下操作。
  调⽤相关的微服务API并获得所需的数据根据前端表⽰格式化数据将格式化的数据发送到前端
  结果,前端将存在最⼩的逻辑。因此,BFF有助于简化数据表⽰,并占⽤为前端提供富裕的接⼝的责任。
  BFF的作⽤
  正如我们已经探索的那样,BFF充当前端和微服务之间的简单界⾯。理想情况下,前端团队也将负责管理BFF。
  单个BFF专注于单个UI,仅限UI。因此,它将有助于我们通过其后端保持始终简单地看到数据的统⼀视图。
  这带来了下⼀个问题。我们可以为多个UI有多个BFF吗?我们将在本⽂的后⼀段中回答此问题。继续阅读。
  这会增加延迟吗?
  现在我们知道,BFF类似于客户端和其他外部API,服务等之间的代理服务器。如果请求必须通过另⼀个组件,它肯定会增加延迟。但是,与浏览器的⾼资源使⽤相⽐,BFF延迟可以忽略不计,如果需要使⽤未针对前端优化的多个服务。
  构建BFF允许您智能地对其他后端/微服务进⾏批量调⽤并⼀次返回数据,或者通过转换和格式化数据来返回更⽅便地表⽰。
  这对于2G或3G⽹络上的移动客户端⾮常有⽤,其中可能需要⼏秒钟(或更多)以建⽴连接。前端跟后端哪个就业难
  何时为您的应⽤程序使⽤BFF
  与许多其他模式⼀样,使⽤应⽤程序中的BFF取决于您计划遵循的上下⽂和架构。例如,如果您的应⽤程序是⼀个简单的单⽚应⽤程序,则不需要BFF。它不会增加没有价值。
  但是,如果您的应⽤程序取决于微服务并消耗许多外部API和其他服务,最好使⽤BFF来简化数据流并向您的应⽤引⼊⼤量效率。
  此外,如果您的应⽤程序需要为特定前端接⼝开发优化的后端,或者您的客户端需要使⽤在后端中需要⼤量聚合的数据,BFF是合适的选项。
  提⽰:分布式设计需要不同类型的代码协作。使⽤位(github)在可以在Repos共享并独⽴开发的各个组件上进⾏协作。
  保持存储库可扩展,可维护,始终同步。
  我们可以有多个bffs吗?
  我们当然可以!这是拥有BFF的全部点。
  传统⽅法(没有BFF的应⽤程序)将仅为所有客户端拥有⼀个API⽹关。它将如下所⽰。
  > Source
  但是,拥有BFF的⽬的是为您的客户提供连接的聚焦界⾯。例如,移动UI的数据消耗可能与浏览器的数据消耗不同。在这种情况下,为了更好的数据表⽰,可以使⽤两个BFF。
  > Source
  正如您所看到的,每个客户端都在这⾥有⼀个bff。它将有助于优化服务的响应(SA,SB … SN)。
  拥有BFF的优点
  关注的分离 - 前端要求将与后端问题分开。这更容易维护。更容易维护和修改API - 客户端应⽤程序将少了解您的APIS结构,这将使其更有弹性更具弹性。前端的更好的错误处理 - 服务器错误⼤部分时间都没有毫⽆意义。⽽不是直接返回错误服务器发送,⽽BFF可以映射需要向⽤户显⽰的错误。这将改善⽤户体验。多个设备类型可以并⾏调⽤后端 - 虽然浏览器正在向浏览器BFF提出请求,移动设备可以执⾏相同的操作。它将有助于更快地获得服务的回复。更好的安全性 - 可以隐藏某些敏感信息,并且在向前端发送响应时,可以省略对前端的不必要的数据。抽象将使攻击者更难瞄准应⽤程序。共享团队的组件所有权 - 应⽤程序的不同部分可以很容易地由不同的团队处理。前端团队可以享受客户的所有权及其基础资源消耗层;导致⾼开发速度。
  在实践中遵循的最佳实践
  到⽬前为⽌,我们看到的是惊⼈的!但是,BFFS是否有故障?
  答案是不!像其他技术或模式⼀样,甚⾄BFF都有陷阱。为了避免这些,我们必须遵循⼀些最佳实践。下⾯说明的⼀些最佳实践。
  避免使⽤⾃包含的全包API实现BFF - 您的⾃包含API应在微服务层中。⼤多数开发⼈员忘记了这⼀点并开始在BFF中实现服务级API。您应该记住,BFF是客户和服务之间的翻译。从服务API返回数据时,它的⽬的是将其转换为客户端应⽤程序指定的数据类型。避免BFF逻辑复制 - 必须注意,⼀个BFF应该迎合特定的⽤户体验,⽽不是设备类型。例如,⼤多数时候,所有移动设备(iOS,Android等)共享相同的⽤户体验。在这种情况下,所有这些操作系统的⼀个BFF都⾜够了。没有必要为iOS和另⼀个⽤于Android的单独BFF。避免过度依赖BFFS - BFF仅仅是⼀个翻译层。是的,它也为应⽤程序提供了⼀定程度的安全性。但是,你不应该⽐你更依赖它。⽆论BFF是否存在,您的API层和前端层都应处理所有功能和安全⽅⾯。因为BFF应该填充间隙,⽽不是向应⽤程序添加任何功能或服务。总结
  不仅有助于开发,⽽且还有助于提⾼⽤户体验。因此,必须考虑数据优化和聚合,同时将BFF集中在其前端。
  此外,如果您之前没有使⽤BFF模式,则是时候开始了。让我知道你的经历和意见。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。