最近公司业务繁忙,全力以赴在做狐小E,一直没时间做技术分享,现在上线了,终于有时间来写点东西。
网关是微服务架构不可或缺的一部分,作为微服务架构的唯一入口,将所有请求转发到后端对应的微服务上去,同时又可以将各个微服务中的通用功能集中到网关去做,而不是在每个微服务都实现一遍,比如权限校验,限流,熔断和监控等。
如图所示,这是个典型的前后端分离的微服务架构,但这个架构在的问题是,一个接口无法同时满足不同场景的业务。如移动端APP,可能与Web端、OpenAPI 的需求不一样,导致接口存在差异, 这时微服务就要对接不同的API需求,产生了各种各样的问题。
有没有更优雅的解决方式呢?那就是引入BFF,这个词是 2015 年 11 月 Sam Newman 在他的一篇博客中提出的。BFF 是 Backends for Frontends 的简写,为了前端的后端。Sam Newman 的博客还有一个副标题:Single-purpose Edge Services for UIs and exter