论文部分内容阅读
在互联网时代的背景下,查看文件的需求日益增多,将文件下载到本地,然后再打开查看的传统方式,已经不能满足办公节奏日益加快用户的需求。由此,文件在线预览服务得到了广泛的发展和应用,在面临高负载网络请求下如何高效转换和存储文件,减少响应时间是本文研究的重点。本文主要以PDF格式在线预览文件,以各个工具模块为基础,构成了完整的文件在线预览服务。本文主要研究了PDF文件解析、基于“热数据”均衡存储对MongoDB数据均衡策略进行改进和通过对Nginx源码的修改,使得默认的加权轮询算法更新节点服务器的权重。本文主要做了如下几个方面的工作:一、对现有的文件在线预览服务做了调查,由于Flash存在占用资源过高、安全性和可靠性低的问题,本文改变了过去依赖Flash进行文件预览的方式,将多种格式的源文件转换为PDF文件格式和HTML文件格式在线预览。二、由于一些PDF文件过大,加上网络带宽的限制,用户对文件某一章节感兴趣时需要预览整个文件,使得用户等待时间过长,影响用户体验。所以本文研究了PDF文件解析,将PDF文件按章节切分、存储和传输,减少用户等待的时间。三、面对高并发的文件转换和切分请求,单个服务器处理能力受限。本文采用集群的方式来处理请求,通过修改Nginx的源代码,将Nginx默认的加权轮询算法(weighted round robin)改为节点服务器权重实时变化的动态加权轮询算法(dynamic weighted round robin)。四、改进了MongoDB的数据均衡策略,对MongoDB集群中的“热数据”均衡问题做了深入研究,提出了基于队列的“热数据”识别算法和数据块(Chunk)迁移策略,实现了“热数据”在节点服务器的均衡分布,提升了MongoDB集群的性能。最后,本文分模块开发了文件在线预览服务的相关工具,降低了系统的耦合性和提高了系统的扩展性,并在高负载网络请求下对文件在线预览服务做了性能测试,验证文件在线预览服务是否实现了预期的功能。