公司项目是电商平台,针对bs端和移动端。
系统中有个gateway项目,它的作用就是给整个系统,充当网关和路由器的。
既客户发起的所有请求,不管是PC端浏览器还是移动端APP,都会请求到nginx服务器,然后由nginx服务器根据负载均衡策略,将请求分给某一个gateway来处理。并发量大的话,gateway肯定也是集群部署的。
然后呢,我这里的gateway就做三个事情:
1.自定义多个filter,对请求进行检查。
- 1.设置origin参数为*,支持ajax跨域(这么做安不安全,有待思考)。
- 2.检查参数,检查签名。鉴权操作,并记录请求日志。
- 3.对http请求进行分析,比如IP,设备啊等等。
2.请求合法,那么截断url,根据dubbo和zookeeper实现的分布式架构,将请求转发给真正的处理业务的服务去。
3.如果请求类型是上传资源的,则检查资源类型和大小,对超大的图片进行适当裁剪。最终通过购买的阿里云oss服务,由gateway来调用阿里云oss接口,实现资源的上传。