前端参数PARS组装:
。参数数组转JSON字符串
。BASE64编码 然后替换掉+ / =这三个URL有意义的字符
例如:
。4台4H4G的服务器
。每台运行4个NODEJS进程
。每个NGINX后面跟2台服务器
发出请求:
。请求先到域名服务器 DNS轮询随机决定本次请求由哪个IP处理
。NGINX负载均衡首先判断缓存是否命中 如果是 直接返回结果了(这里暂未启用 用不好可能会带来不好的问题)
。NGINX根据权重或随机选择一台后端服务器上的某一个NODEJS进程处理
NODEJS接收到请求:
。koa框架解析取出请求体
。通过路由设置进到请求的TS(如果请求的是私有方法或私有服务直接返回错误)
。TS初始化 取出UPINFO所有参数 还原参数数组 (未上传参数设置为默认值 )
。进入API函数 _upcheck方法验证用户输入并取出用户信息(会话ID 帐套ID 用户名 真实姓名 微信OPENID等)
。进行业务处理 并返回
。IP记录 SQL效率统计 API效率统计等
整套目的:
。参数数组较灵活 容易自定义 其它参数固定方便(防注入只需注意不要拼接参数数组即可)
。全是JS语言 有培养全栈工程师的优势
。减少前后端沟通协调的成本(前后端至少能相互看懂)
。减少后端工作量(一部分接口可以省略 由前端组装)