1、前言
前向业务中间层,指的是在后端服务接口之上加了一层,来归纳和整合所有服务,为APP和H5提供接口服务,做到后端业务与前端的隔离。大约示意图如下
2、作用
1) APP和H5在沟通需求拟定接口协议时,只需要和一个团队打交道,沟通起来方便。
2)所有业务的出入口,是对业务的整理和集合,查看网关层所有的接口开发历史,就可以知道业务的发展轨迹
3)统一日志服务,所有APP和H5的请求都是通过网关层接收并转发给具体业务的,在网关层记录日志,可以真实的模拟请求的发起和处理流程。
4)统一流量监控,智能升降级,作为流量统一入口,可以知道流量的具体来源和去向,当流量到达系统极限时可以提前报警,并主动拒绝非核心业务的请求,保证系统不被流量冲垮
5)统一安全验证,系统不直接暴露,减少了主业务被攻击的机会,作为请求入口可以在请求开始的时候就做一些安全性的检查,阻止无效非法请求进入业务流程,浪费资源
6)前后端皆可以做的小的配置性需求可以由该接口完成,举个例子,你要把你的某一功能做一个开关,这个功能可能是产品突发奇想的点子,后端不愿做,就在网关层做吧,避免前后端在这个地方扯皮,扯皮太多太消耗心力,扯皮太多程序员就倦怠了。这一点很重要,身为管理者最重要的就是管理倦怠。
7)后端业务接口适配,将后端流转的数据结构更改优化,方便前端读取。
3、架构
4、技术要求
1) 开发语言: java/php/node/lua 都可以,不做强制要求,但建议使用php,lua等不用重启服务器的语言,方便出现问题及时处理,即时生效
2) 有高并发处理经验,因为作为所有服务的请求入口,流量会很大
3) 有CDN相关的经验,很多静态的东西需要推导CDN上
4)有redis 或者 memcache开发经验,如果没有这些缓存所有的请求直接打到服务器上,服务器扛不住,很快就挂了
5)多服务器文件同步开发经验,熟练使用log4j等日志工具