[发明专利]可集群并支持多用户同时上传的文件传输方法和系统在审
申请号: | 201510474496.0 | 申请日: | 2015-08-05 |
公开(公告)号: | CN105187489A | 公开(公告)日: | 2015-12-23 |
发明(设计)人: | 罗文 | 申请(专利权)人: | 深圳联友科技有限公司 |
主分类号: | H04L29/08 | 分类号: | H04L29/08 |
代理公司: | 深圳市顺天达专利商标代理有限公司 44217 | 代理人: | 高占元 |
地址: | 518031 广东省深圳市*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 集群 支持 多用户 同时 上传 文件传输 方法 系统 | ||
技术领域
本发明涉及通信领域,尤其涉及一种可集群并支持多用户同时上传的文件传输方法和系统。
背景技术
在互联网文件传输服务开发任务中,存在程序中读写IO频繁而且上传文件比较大对网络吞吐量要求高的问题,既要支撑高并发和高IO磁盘访问,又要保证文件在集群部署中的一致性,同时还要降低程序异常退出、网络带宽使用,减少磁盘碎片等问题。
落地文件,即保存到本地计算机磁盘上的文件。参考图1,现有文件传输服务中,落地文件和文件传输服务在同一台服务器上,读写本地磁盘。因此,现有文件传输服务不支持集群,落地文件和文件传输服务部署在同一台服务器,受服务器的性能和网络IO影响,单机服务的处理能力得不到最大化,大量用户并且大文件上传时,无法达到高并发高实时性的要求;另一方面由于当服务器出现故障,服务重启、系统掉电等异常情况出现,没有备用机器将导致文件传输功能无法使用。
发明内容
本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种可集群并支持多用户同时上传的文件传输方法和系统。
本发明解决其技术问题所采用的技术方案是:构造一种可集群并支持多用户同时上传的文件传输方法,基于文件传输系统实现,该文件传输系统包括用户层、接入层、存储层,所述用户层包括多个客户端,所述接入层包括一个LVS模块和多个文件传输模块,所述存储层包括集群部署的多个文件存储模块;
所述方法包括:
S1、用户层中的客户端发送上传请求给接入层的LVS模块,所述上传请求用于请求向存储层上传新文件;
S2、接入层中的LVS模块选择一个文件传输模块处理该上传请求,文件传输模块将该新文件切分为多个文件块,并返回上传响应给对应的客户端;
S3、客户端在接收到上传响应后,发送文件块上传请求给该文件传输模块;
S4、文件传输模块基于未上传的文件块,返回写文件块响应给对应的客户端;
S5、客户端根据接收的写文件块响应,发送对应的文件块给文件传输模块;
S6、文件传输模块选择存储层中的一个文件存储模块存储该文件块,并在文件块存储完毕后转步骤S4继续下一个文件块的上传直至所有的文件块都上传至存储层。
在本发明所述的可集群并支持多用户同时上传的文件传输方法中,所述步骤S2中还包括:所述文件传输模块将每个文件块切分为多个更小的文件块;所述步骤S4还包括:文件传输模块根据客户端的网络类型和设备类型,经由所述写文件块响应设定该客户端单次上传的较小文件块的数量。
在本发明所述的可集群并支持多用户同时上传的文件传输方法中,每个文件块包括三种状态:未上传、正在上传、已上传,步骤S2中首次将文件切分时将所有文件块的状态都设置为未上传,
所述步骤S4包括:从第1块较小的文件块开始顺序查找直到找到状态为未上传的一个或者多个文件块,将该一个或者多个文件块的位置信息包含在写文件块响应中下发,并将该一个或者多个文件块的状态设置为正在上传,如果某个较大的文件块中的存在状态为正在上传的较小的文件块,则将该较大的文件块的状态设置为正在上传;
所述步骤S6中,在文件块存储完毕时将该文件块的状态设置为已上传,如果某个较大的文件块中的所有的较小的文件块的状态均为已上传,则将该较大的文件块的状态设置为已上传,如果所有的较大的文件块的状态都为已上传,则发送上传完毕指令给对应的客户端,结束。
在本发明所述的可集群并支持多用户同时上传的文件传输方法中,所述步骤S6所述的选择存储层中的一个文件存储模块存储该文件块包括:将所述存储层中的文件存储模块顺序编号为1-n,n为正整数;将客户端提交的文件MD5值经过哈希算法整形化后的值对n取模,并将取模的结果记为k;选择第k个文件存储模块存储文件块。
在本发明所述的可集群并支持多用户同时上传的文件传输方法中,所述步骤S2包括:
S20、LVS模块接收到的上传请求后,根据负载均衡算法确定一个文件传输模块,并将该上传请求转发至该文件传输模块;
S21、该文件传输模块判断所述上传请求所对应的新文件是否已上传;
S22、如果新文件已上传,则发送上传完毕指令给对应的客户端,结束;
S23、如果新文件未上传或正在上传,则返回所述上传响应给对应的客户端。
本发明还公开了一种可集群并支持多用户同时上传的文件传输系统,包括:
用户层,包括多个客户端;
接入层,包括一个LVS模块和多个文件传输模块;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳联友科技有限公司,未经深圳联友科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510474496.0/2.html,转载请声明来源钻瓜专利网。