作者回复: 谢谢支持!加油!
作者回复: 网关是构建微服务基础设施的一个核心组件,网关部署以后也可以说对外提供服务(反向路由,安全认证,日志监控等),它属于技术基础服务,但不属于业务服务。
作者回复: kong可以认为是专门针对API网关场景的升级版的Nginx,openresty是对Nginx的一种扩展,kong其实也是基于openrest扩展的。Nginx历史悠久,成熟稳定,应用场景丰富。这些产品总体是互补的,不能简单理解为替代关系。
作者回复: 你好,服务分层一般按照职能划分:
微服务层:提供基础业务和技术服务;
BFF:聚合裁剪适配服务,面向各种端用户体验(PC, mobile, 第三方接入等)
网关层:负责反向路由,安全,监控等跨横切面功能
实际每一层和具体协议没有严格对应关系,微服务可以用rpc,也可以http/rest,BFF和网关也可以支持rpc或者http/rest。
当然,微服务用dubbo rpc框架,BFF转成http/rest,网关再暴露http,也是一种架构方式。
作者回复: 1. 网关集群可以针对各种端用户体验(PC/无线/SPA/第三方等)划分,也可以根据产品线划分,具体要看企业的业务场景和规模,之前在携程这种大规模互联网公司是按照端用户体验划分的,其它企业可能不同。
2. 这个也是要看具体企业业务场景和规模的,比如Netflix这种规模公司,前端后端团队分别隶属于不同部门,为了提升研发交付效率,所以引入单独BFF层(前端团队负责)。如果企业规模不大,聚合适配工作由后端团队一起做掉,也是完全可以的。
作者回复: Openresty/kong都属于可编程网关。
作者回复: BFF有很多玩法,之前看到过用动态脚本(可在运行时上传动态运行)做BFF,也有尝试用GraphQL做BFF,FaaS/serless做BFF还没有怎么听说,可能是一种新的尝试,anyway,BFF目标是帮助前端快速迭代。
作者回复: 谢谢!加油!