导购网站是给消费者提供网络购物指导的服务类网站,其职责是解决消费者心理的种种疑虑,引导帮助消费者省时省力的搜索到理想的商品并实现购买,甚至挖掘出消费者潜在的购买欲望。导购网站设计应考衡快速更新的庞大数据及大量并发访问的场景,提出相应的解决方案。
1 导购网站架构方面的诉求
互联网行业生存在快鱼吃慢鱼的时代,面对数亿的用户规模,不能简单依靠调研及产品规划妄图使网站建设一步到位。导购网站的UI以及功能需要快速开发、快速迭代,根据收集的网站用户习惯数据进行分析,找出问题并快速做出调整。
导购网站前端和后端技术关注点不同,需要能够独立开发和独立演进。网站前端需要关注视觉营销效果,根据不同发展阶段、不同时间和不同用户,快速改变网站风格;后端重点考虑两个方面:(1)为前端提供统一接口。(2)高并发情况下保障网站浏览的速度。WEB容器支持热部署,部署简单并能够平滑扩容。
2 导购网站的关键技术解析
2.1 WEB应用框架的选择
基于JAVA的Struts应用框架太重,不能满足快速迭代的要求。目前在国内最流行的基于PHP的WEB应用框架简单易用,开发出来的产品性能高,但需要写较多代码,开发周期长。综合导购网站快速开发的需要及低成本开发的现实要求,选择DJANGO/PYTHON作为系统的WEB应用框架。
Python语法简洁而清晰,具有丰富和强大的类库。Django 是Python编程语言驱动的开源模型-视图-控制器(MVC)风格的 Web应用程序框架,具有便捷、快速、高效的特点[1].导购网站对网站浏览者提供的主要是搜索和浏览商品功能,对网站管理员提供主要为商品录入及权限等功能,基于DJANGO/PYTHON的WEB应用框架能迅速的实现这些功能的开发。
2.2 前端和后端分离
前端开发和后端开发应用的技术以及关注重点不一样。前端开发人员关注的是UI,是网站的样式,是视觉营销效果,是系统使用的体验;后端开发人员关注的是数据库、缓存系统以及功能逻辑。
导购网站前端和后端独立开发,代码完全分开,前后端开发人员可以各自进行开发和单元测试,极大的提高了开发效率。前端的各种页面都是模板化的,例如首页,可以将其从上到下分为Header、导航条、商品列表以及Footer,根据后端返回的数据在用户本地渲染成实际页面,减少后端渲染对WEB应用服务器造成的压力。网站的各种要素,包括类目、商品、品牌、广告位以及营销活动等进行建模入库,前端通过AJAX接口,传入资源类型、类目、关键字、标签以及资源名称从后端获取数据;而后端从数据库或者缓存系统中过滤查询出数据后,全部结构化为JSON数据返回给前端。
2.3 图片缓存技术
图片在导购网站中具有重要地位,能有效地形成消费者的主观印象,带来强烈的视觉冲击,促进消费者购买。网站必须设计精美的图片,每种商品都需配备体现营销创意的大图、展示细节的小图、展示各个属性的规格图等,一个商品甚至可能配有几十张图片。图片需设置较高的分辨率和色域,会占用较大的网络带宽资源。高并发的情况将增加服务器的压力,严重减慢浏览速度,用户体验极差,因此必须考虑图片资源的存储和加载速度问题。现在存储空间价格相当低廉,存储问题可以通过增加存储空间来解决。图片加载速度主要通过图片延迟加载技术、图片缓存技术及CDN网络加速技术来解决。
WEB页面打开的时候,整个页面的所有图片会依次发送请求加载,可能出现可见区域图片在不可见区域之后发送加载请求,结果出现不可见区域图片先加载完毕而可见区域图片后加载的情况,给用户造成页面图片迟迟打不开的感受。图片延迟加载原理就是基于JavaScript语言对浏览器窗口的滚动事件进行处理,只加载显示区域的图片,从而加快页面图片的加载速度。
导购网站将图片通过Apache部署在单独的图片服务器中并开启缓存功能。用户访问过的图片资源被缓存到内存,其他用户再次访问该资源,将直接访问内存中的图片,避免再次读取硬盘等较慢的存储设备。
目前大型网站均使用CDN网络加速技术,这种技术采取分布式网络缓存结构,通过DNS负载均衡技术在现有的Internet中增加一层新的网络架构,将网站的内容发布到最接近用户的Cache服务器内。在导购网站建设初期,因访问量和商品数量没有实现大规模,可暂缓采用该技术。但将图片服务器单独部署,并绑定和WEB服务不同域名的设计,为后续引入CDN网络加速预留下接口。
2.4 WEB容器选择
Nginx是功能强大的轻量Http服务器,以事件驱动的方式编写,高并发高负载能力强,可以达到50000个并发连接数。导购网站上线早期阶段,只需要部署一台Nginx服务器即可以满足要求。Nginx性能稳定,部署简单,并支持热部署,只需要通过简单命令更新配置文件,即可以应用新的配置,不用重新启动,可以做到7*24小时不间断运行。Nginx负载均衡配置简单,系统性能不足时只需要添加服务器就可以平滑扩容[2].
3 结语
导购网站的设计要依据网站的诉求合理选择相关开发技术,网站建设过程中还需不断根据实际情况完善设计方案,并严格管理网站设计和建设的每一个环节。
参考文献
[1]Jeff Forcier. Django Web开发指南[M].机械工业出版社,2009.
[2]苗泽。Nginx 高性能Web 服务器详解[M].电子工业出版社,2013.