CN106302709A - 一种网络文件管理的实现方法和系统 - Google Patents

一种网络文件管理的实现方法和系统 Download PDF

Info

Publication number
CN106302709A
CN106302709A CN201610659938.3A CN201610659938A CN106302709A CN 106302709 A CN106302709 A CN 106302709A CN 201610659938 A CN201610659938 A CN 201610659938A CN 106302709 A CN106302709 A CN 106302709A
Authority
CN
China
Prior art keywords
file
download
server
thread
file download
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201610659938.3A
Other languages
English (en)
Other versions
CN106302709B (zh
Inventor
罗诚
植东梧
王礼鹤
李金玉
王孝先
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xinxun Digital Technology Hangzhou Co ltd
Original Assignee
Hangzhou Dongxin Beiyou Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou Dongxin Beiyou Information Technology Co Ltd filed Critical Hangzhou Dongxin Beiyou Information Technology Co Ltd
Priority to CN201610659938.3A priority Critical patent/CN106302709B/zh
Publication of CN106302709A publication Critical patent/CN106302709A/zh
Application granted granted Critical
Publication of CN106302709B publication Critical patent/CN106302709B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]

Abstract

一种网络文件管理的实现方法和系统,其实现方法包括有:步骤一、构建输入和输出消息队列,并启动资源管理进程;步骤二、将外部进程发来的文件下载请求保存到输入消息队列中,资源管理进程从输入消息队列中逐一提取文件下载请求,然后从所连接的多个文件服务器中选择其一来下载请求文件,最后将文件下载结果保存到输出消息队列中。本发明属于网络通信技术领域,能实现海量业务文件的并发性下载。

Description

一种网络文件管理的实现方法和系统
技术领域
本发明涉及一种网络文件管理的实现方法和系统,属于网络通信技术领域。
背景技术
随着网络技术的飞速发展,各种网络业务得到了广泛的应用,因而不可避免会产生大量的业务文件,例如彩铃业务中的铃音文件,且业务文件还会随着业务规模的扩大而不断递增。现有技术中,通常将业务文件存储在文件服务器中,并根据用户使用中所产生的大量下载请求来从文件服务器中下载各种业务所需文件,为了提高业务的处理效率,往往需要对这些海量业务文件实现并发性的下载处理,因此,对这些海量业务文件进行高效的并发性下载是一个重要的问题。
专利申请CN 201210007673.0(专利名称:一种数据下载系统及方法,申请日:2012-01-11,申请人:北京奇虎科技有限公司)公开了一种数据下载系统及方法,其中,所述系统包括多个下载集群,每个下载集群中包括Linux虚拟服务器LVS、至少两个下载节点Nginx以及一个分布式文件系统HDFS,所述Nginx的操作系统通过用户空间文件系统FUSE挂载HDFS的存储服务;其中:LVS用于接收用户的下载请求,对各个Nginx进行调度选择,将所述下载请求转发给选中的Nginx;Nginx用于在接收到LVS转发的下载请求后,通过FUSE访问HDFS中存储的数据,响应用户的下载请求;HDFS用于存储数据。该技术方案中,由LVS将用户的下载请求逐一转发给选中的Nginx,并未涉及到对数据的并发性下载处理。
因此,如何实现海量业务文件的并发性下载,仍是一个值得深入研究的技术问题。
发明内容
有鉴于此,本发明的目的是提供一种网络文件管理的实现方法和系统,能实现海量业务文件的并发性下载。
为了达到上述目的,本发明提供了一种网络文件管理的实现方法,包括有:
步骤一、构建输入和输出消息队列,并启动资源管理进程;
步骤二、将外部进程发来的文件下载请求保存到输入消息队列中,资源管理进程从输入消息队列中逐一提取文件下载请求,然后从所连接的多个文件服务器中选择其一来下载请求文件,最后将文件下载结果保存到输出消息队列中。
为了达到上述目的,本发明还提供了一种网络文件管理的系统,包括有:
资源管理启动装置,用于构建输入和输出消息队列,启动资源管理进程装置,将外部进程发来的文件下载请求保存到输入消息队列中;
资源管理进程装置,用于从输入消息队列中逐一提取文件下载请求,然后从所连接的多个文件服务器中选择其一来下载请求文件,最后将文件下载结果保存到输出消息队列中。
与现有技术相比,本发明的有益效果是:本发明将文件下载请求保存到输入消息队列,并由资源管理进程同时启动多个文件下载线程来并行处理输入消息队列中的文件下载请求,最后再将文件下载结果保存到输出消息队列中,实现了海量业务文件的并发性下载,并有效提高了下载效率;本发明可以同时实现主备和负荷分担两种模式,每个文件下载线程在输入消息队列中分别寻找自己的文件下载请求,从而能有效避免任务分发异常而导致的系统故障,当某个文件服务器不可用时,文件下载线程还能自动寻找可用的文件服务器;本发明还可以进一步对每个文件服务器、文件下载线程的状态进行实时监测,从而有效避免了文件服务器、文件下载线程发生异常而导致文件下载出现阻塞。
附图说明
图1是本发明一种网络文件管理的实现方法的流程图。
图2是主备模式下,每个文件下载线程的具体工作流程图。
图3是负荷分担模式下,每个文件下载线程的具体工作流程图。
图4是状态监测维护线程的具体工作流程图。
图5是本发明一种网络文件管理的系统的组成结构示意图。
图6是主备模式下,每个文件下载线程单元的组成结构示意图。
图7是负荷分担模式下,每个文件下载线程单元的组成结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明作进一步的详细描述。
本发明对业务文件采用两级存储模式,将部分常用文件保存在本地硬盘中,并部署有多台文件服务器分别存储所有文件,当所需文件没有存储在本地硬盘上时,则再从文件服务器上下载所需文件至本地硬盘。如图1所示,本发明一种网络文件管理的实现方法,包括有:
步骤一、构建输入和输出消息队列,并启动资源管理进程;
步骤二、将外部进程发来的文件下载请求保存到输入消息队列中,资源管理进程从输入消息队列中逐一提取文件下载请求,然后从所连接的多个文件服务器中选择其一来下载请求文件,最后将文件下载结果保存到输出消息队列中。
所述输入和输出消息队列中的每个文件下载请求/或结果可以包含有以下参数:文件类型、文件服务器编号、请求文件名(包含文件服务器上的存放相对路径)、请求文件数量、下载次数、文件下载状态等。由于文件下载请求可以分为2类:一类是一般下载请求,即不限制下载文件的文件服务器;一类是特定下载请求,即指定下载文件的文件服务器,因此,文件类型用于保存一般下载请求中的文件所属具体类型(例如普通文件、排行文件等),文件服务器编号用于保存特定下载请求中指定下载的文件服务器编号,下载次数用于标识资源管理进程已经尝试下载的次数,文件下载状态用于标识文件是下载成功或失败状态。
为了提高资源管理进程的处理效率,资源管理进程可以同时启动多个文件下载线程来并行处理输入消息队列中的文件下载请求。本发明可以支持2种工作模式:主备和负荷分担模式,其中,主备模式是按照主备优先级的顺序将多台文件服务器进行排序,排序在后的文件服务器作为排序在前的文件服务器的备份,即先选择优先级高的文件服务器作为主用服务器来下载请求文件,当所述文件服务器发生异常时,则再选择优先级排在其后的文件服务器继续作为主用服务器,并依次类推;负荷分担模式是将收到的文件下载请求平均分发给当前可用的所有文件服务器。下面,将分别具体介绍本发明在两种模式下的不同工作流程:
1、主备模式
在主备模式下,资源管理进程启动多个文件下载线程,每个文件下载线程的工作流程都相同,这样,如图2所示,步骤二中,每个文件下载线程的工作流程进一步包括有:
步骤A1、文件下载线程从输入消息队列中取出一个文件下载请求;
步骤A2、获取主用服务器编号;
步骤A3、判断文件服务器信息列表中主用服务器的状态是否是可用?如果是,则从主用服务器上下载请求文件,然后更新文件下载请求中的“下载次数”和“文件下载状态”,继续下一步;如果否,则转向步骤A6;
当文件下载失败,则“文件下载状态”更新成下载失败状态,当文件下载成功,则“文件下载状态”更新成下载成功状态,“下载次数“可以每次递增加1;
步骤A4、判断文件下载请求中的“文件下载状态”是否是下载成功状态?如果是,则转向步骤A7;如果否,则继续下一步;
步骤A5、判断文件下载请求中的“下载次数”是否达到一定阈值?如果是,则转向步骤A7;如果否,则继续下一步;
步骤A6、判断是否还存在有优先级排在主用服务器之后的文件服务器?如果是,则将优先级排在主用服务器之后的文件服务器选作主用服务器,转向步骤A3;如果否,则将文件下载请求中的“文件下载状态”更新成下载失败状态,然后继续下一步;
步骤A7、将更新后的文件下载请求作为文件下载结果保存到输出消息队列中,继续从输入消息队列中取出下一个文件下载请求,转向步骤A2。
所述文件服务器信息列表保存有所有文件服务器的数据,可以包含但不仅限于:“线程锁”、“最近一次正常使用时间”、“状态”等参数,其中,“线程锁”是修改文件服务器信息列表中的文件服务器的数据所需获得的线程锁,“状态”用于标识文件服务器当前是可用或不可用状态。
2、负荷分担模式
在负荷分担模式下,资源管理进程启动多个文件下载线程,且每个文件下载线程分别和一个文件服务器绑定,即每个文件下载线程只负责从其绑定的文件服务器上下载文件,这样,如图3所示,步骤二中,每个文件下载线程的工作流程进一步包括有:
步骤B1、文件下载线程判断输入消息队列中是否有文件下载请求的“文件服务器编号”是自己所绑定的文件服务器编号?如果是,则从输入消息队列中取出所述文件下载请求,继续下一步;如果否,则转向步骤B6;
步骤B2、文件下载线程查找文件服务器信息列表中自己所绑定的文件服务器的状态是否是可用?如果是,则从自己所绑定的文件服务器上下载请求文件,然后更新文件下载请求中的“下载次数”和“文件下载状态”,继续下一步;如果否,则转向步骤B4;
步骤B3、判断文件下载请求中的“文件下载状态”是否是下载成功状态?如果是,则将更新后的文件下载请求作为文件下载结果保存到输出消息队列中,转向步骤B1;如果否,则继续下一步;
步骤B4、判断文件下载请求中的“下载次数”是否达到一定阈值?如果是,则将文件下载请求的“文件下载状态”更新成下载失败状态,然后将更新后的文件下载请求作为文件下载结果保存到输出消息队列中,转向步骤B1;如果否,则继续下一步;
步骤B5、从文件服务器信息列表中挑选出一个状态是可用的文件服务器,然后将文件下载请求的“文件服务器编号”修改成所挑选出的可用状态的文件服务器编号,最后将修改后的文件下载请求再保存到输入消息队列中,转向步骤B1;
每个文件下载线程在输入消息队列中分别寻找自己的文件下载请求,从而能有效避免任务分发异常而导致的系统故障,当文件下载请求所指定的文件服务器不可用时,文件下载线程能修改文件下载请求所指定的文件服务器,并重新排入输入消息队列中由其他文件下载线程继续处理;
步骤B6、判断输入消息队列中是否有文件下载请求的“文件服务器编号”是空?如果是,则说明输入消息队列中还存在有一般下载请求,从输入消息队列中取出所述文件下载请求,转向步骤B2;如果否,则等待一段时间后转向步骤B1。
文件服务器发生异常中断会导致文件下载出现阻塞,从而影响系统工作效率。为了避免这种阻塞情况,本发明中的资源管理进程还可以对每个文件服务器的状态进行实时监测,本发明还包括有:
资源管理进程为每个文件服务器分别创建一个服务器监测线程,服务器监测线程定时(例如1秒)向自己所监测的文件服务器发出访问请求,并判断访问请求是否被正常执行?如果是,则获取当前时间,然后将文件服务器信息列表中所监测的文件服务器的“最近一次正常使用时间”更新为当前时间,
同时,为所有文件下载线程创建一个下载线程信息列表,所述下载线程信息列表保存有所有文件下载线程的数据,可以包含但不仅限于:“线程锁”、“最近一次正常使用时间”等参数,其中“线程锁”是修改下载线程信息列表中的文件下载线程数据所需获得的线程锁,在主备或负荷分担模式中,在每次文件下载线程将文件下载结果保存到输出消息队列中之后,还包括有:
文件下载线程获取当前时间,将下载线程信息列表中自己的“最近一次正常使用时间”更新为当前时间,
这样,如图4所示,本发明的资源管理进程创建一个状态监测维护线程,还包括有:
步骤C1、状态监测维护线程逐一读取文件服务器信息列表中的每个文件服务器;
步骤C2、获取文件服务器的“线程锁”,并使用“线程锁”对文件服务器信息列表中所述文件服务器的数据进行加锁,然后读取所述文件服务器的“最近一次正常使用时间”,并获取当前时间,再判断当前时间和所述“最近一次正常使用时间”的差值是否大于一定门限值?如果是,则说明该文件服务器发生阻塞,将文件服务器信息列表中所述文件服务器的“状态”更新为不可用;如果否,则将文件服务器信息列表中所述文件服务器的“状态”更新为可用;所述门限值可以根据实际业务需要而设定,例如3秒;
步骤C3、对文件服务器信息列表中所述文件服务器的数据进行解锁,然后判断是否已读取完文件服务器信息列表中的所有文件服务器?如果是,则继续下一步;如果否,则继续读取文件服务器信息列表中的下一个文件服务器,转向步骤C2;
步骤C4、为文件下载线程信息列表加锁;
步骤C5、逐一读取文件下载线程信息列表中的每个文件下载线程;
步骤C6、获取文件下载线程的“线程锁”,并使用“线程锁”对文件下载线程信息列表中所述文件下载线程的数据进行加锁,然后读取所述文件下载线程的“最近一次正常使用时间”,并获取当前时间,然后判断当前时间和所述文件下载线程的“最近一次正常使用时间”的差值是否大于一定门限值?如果是,则说明文件下载线程出现异常,取消所述文件下载线程,从文件下载线程信息列表中删除所述文件下载线程的数据,然后重新启动一个新的文件下载线程,将新的文件下载线程绑定到已取消的文件下载线程所绑定的文件服务器上,最后在文件下载线程信息列表中增加所述新的文件下载线程的数据,继续下一步;如果否,则对文件下载线程信息列表中所述文件下载线程的数据进行解锁,然后继续下一步;
步骤C7、判断是否已读取完文件下载线程信息列表中的所有文件下载线程?如果是,则继续下一步;如果否,则继续读取文件下载线程信息列表中的下一个文件下载线程,转向步骤C6;
步骤C8、为文件下载线程信息列表解锁。
如图5所示,本发明一种网络文件管理的系统,包括有:
资源管理启动装置,用于构建输入和输出消息队列,启动资源管理进程装置,将外部进程发来的文件下载请求保存到输入消息队列中;
资源管理进程装置,用于从输入消息队列中逐一提取文件下载请求,然后从所连接的多个文件服务器中选择其一来下载请求文件,最后将文件下载结果保存到输出消息队列中。
所述输入和输出消息队列中的每个文件下载请求/或结果可以包含有以下参数:文件类型、文件服务器编号、请求文件名(包含文件服务器上的存放相对路径)、请求文件数量、下载次数、文件下载状态等,文件类型用于保存一般下载请求中的文件所属具体类型(例如普通文件、排行文件等),文件服务器编号用于保存特定下载请求中指定下载的文件服务器编号,下载次数用于标识资源管理进程已经尝试下载的次数,文件下载状态用于标识文件是下载成功或失败状态。
为了提高资源管理进程的处理效率,资源管理进程装置可以同时启动多个文件下载线程单元来并行处理输入消息队列中的文件下载请求。本发明可以支持2种工作模式:主备和负荷分担模式。下面,将分别具体介绍本发明在两种模式下的不同组成结构:
1、主备模式
资源管理进程装置启动多个文件下载线程单元,如图6所示,文件下载线程单元可以进一步包括有:
主备下载执行部件,用于从输入消息队列中取出每个文件下载请求,获取主用服务器编号,判断文件服务器信息列表中主用服务器的状态是否是可用,如果是,则从主用服务器上下载请求文件,然后更新文件下载请求中的“下载次数”和“文件下载状态”,最后将更新后的文件下载请求作为文件下载结果保存到输出消息队列中。
所述文件服务器信息列表保存有所有文件服务器的数据,可以包含但不仅限于:“线程锁”、“最近一次正常使用时间”、“状态”等参数,其中,“线程锁”是修改文件服务器信息列表中的文件服务器数据所需获得的线程锁,“状态”用于标识文件服务器当前是可用或不可用状态。
当判断文件服务器信息列表中主用服务器的状态不可用时,所述主备下载执行部件将通知主用服务器重设部件,这样,文件下载线程单元还可以包括有:
主用服务器重设部件,用于判断是否还存在有优先级排在主用服务器之后的文件服务器,如果是,则将优先级排在主用服务器之后的文件服务器选作主用服务器,再通知主备下载执行部件继续判断文件服务器信息列表中主用服务器的状态是否可用;如果否,则将文件下载请求中的“文件下载状态”更新成下载失败状态,然后通知主备下载执行部件将更新后的文件下载请求作为文件下载结果保存到输出消息队列中;
主备结果处理部件,用于当主备下载执行部件从主用服务器上下载请求文件、并更新文件下载请求中的“下载次数”和“文件下载状态”之后,判断如果“文件下载状态”是下载成功状态、或“下载次数”达到一定阈值时,则通知主备下载执行部件将更新后的文件下载请求作为文件下载结果保存到输出消息队列中,如果“文件下载状态”不是下载成功状态、且“下载次数”没有达到一定阈值时,则通知主用服务器重设部件重新选用主用服务器。
2、负荷分担模式
资源管理进程装置启动多个文件下载线程单元,且每个文件下载线程单元分别和一个文件服务器绑定,即每个文件下载线程单元只负责从其绑定的文件服务器上下载文件,如图7所示,每个文件下载线程单元可以进一步包括有:
负荷分担请求提取部件,用于判断输入消息队列中是否有文件下载请求的“文件服务器编号”是自己所绑定的文件服务器编号,如果是,则从输入消息队列中取出所述文件下载请求,并转发给负荷分担下载执行部件;
负荷分担下载执行部件,用于查找文件服务器信息列表中自己所绑定的文件服务器的状态是否是可用,如果是,则从自己所绑定的文件服务器上下载请求文件,然后更新文件下载请求中的“下载次数”和“文件下载状态”,最后将更新后的文件下载请求作为文件下载结果保存到输出消息队列中。
当判断输入消息队列中没有文件下载请求的“文件服务器编号”是自己所绑定的文件服务器编号时,所述负荷分担请求提取部件将继续判断输入消息队列中是否有文件下载请求的“文件服务器编号”是空,如果有,就从输入消息队列中取出“文件服务器编号”是空的文件下载请求,并转发给负荷分担下载执行部件,
当查找文件服务器信息列表中自己所绑定的文件服务器的状态不可用时,所述负荷分担下载执行部件会继续判断文件下载请求中的“下载次数”是否达到一定阈值,如果是,则将文件下载请求的“文件下载状态”更新成下载失败状态,并将更新后的文件下载请求作为文件下载结果保存到输出消息队列中;如果否,则将文件下载请求转发给文件服务器重设部件,这样,文件下载线程单元还可以包括有:
文件服务器重设部件,用于从文件服务器信息列表中挑选出一个状态是可用的文件服务器,然后将文件下载请求的“文件服务器编号”修改成所挑选出的可用状态的文件服务器编号,最后将修改后的文件下载请求再保存到输入消息队列中;
负荷分担结果处理部件,用于当负荷分担下载执行部件从文件服务器上下载请求文件、并更新文件下载请求中的“下载次数”和“文件下载状态”之后,判断如果“文件下载状态”是下载成功状态、或“下载次数”达到一定阈值时,通知负荷分担下载执行部件将更新后的文件下载请求作为文件下载结果保存到输出消息队列中,如果“文件下载状态”不是下载成功状态、且“下载次数”没有达到一定阈值时,将文件下载请求转发给文件服务器重设部件。
为了避免文件服务器、文件下载线程发生异常而出现阻塞情况,资源管理进程装置为每个文件服务器分别创建一个服务器监测线程单元:
服务器监测线程单元,用于定时(例如1秒)向自己所监测的文件服务器发出访问请求,并判断访问请求是否被正常执行,如果是,则获取当前时间,然后将文件服务器信息列表中所监测的文件服务器的“最近一次正常使用时间”更新为当前时间,
资源管理进程装置为所有文件下载线程单元创建一个下载线程信息列表,所述下载线程信息列表保存有所有文件下载线程单元的数据,可以包含但不仅限于“:线程锁”、“最近一次正常使用时间”等参数,其中“线程锁”是修改下载线程信息列表中的文件下载线程单元数据所需获得的线程锁,每个文件下载线程单元还可以包括有:
下载线程监测部件,用于当主备下载执行部件/或负荷分担下载执行部件将文件下载结果保存到输出消息队列中之后,获取当前时间,将下载线程信息列表中自己所属的文件下载线程单元的“最近一次正常使用时间”更新为当前时间,
这样,资源管理进程装置还可以包括有:状态监测维护线程单元,所述状态监测维护线程单元进一步包括有:
服务器状态监测部件,用于读取文件服务器信息列表中的每个文件服务器,获取文件服务器的“线程锁”,并使用“线程锁”对文件服务器信息列表中所述文件服务器的数据进行加锁,然后读取所述文件服务器的“最近一次正常使用时间”,并获取当前时间,再判断当前时间和所述“最近一次正常使用时间”的差值是否大于一定门限值,如果是,则将文件服务器信息列表中所述文件服务器的“状态”更新为不可用;如果否,则将文件服务器信息列表中所述文件服务器的“状态”更新为可用,最后对文件服务器信息列表中所述文件服务器的数据进行解锁;
下载线程状态监测部件,用于逐一读取文件下载线程信息列表中的每个文件下载线程单元,获取文件下载线程单元的“线程锁”,使用“线程锁”对文件下载线程信息列表中所述文件下载线程单元的数据进行加锁,然后读取所述文件下载线程单元的“最近一次正常使用时间”,并获取当前时间,然后判断当前时间和所述文件下载线程单元的“最近一次正常使用时间”的差值是否大于一定门限值,如果是,则取消所述文件下载线程单元,从文件下载线程信息列表中删除所述文件下载线程单元的数据,然后重新启动一个新的文件下载线程单元,将新的文件下载线程单元绑定到已取消的文件下载线程单元所绑定的文件服务器上,最后在文件下载线程信息列表中增加所述新的文件下载线程单元的数据;如果否,则对文件下载线程信息列表中所述文件下载线程单元的数据进行解锁。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

Claims (14)

1.一种网络文件管理的实现方法,其特征在于,包括有:
步骤一、构建输入和输出消息队列,并启动资源管理进程;
步骤二、将外部进程发来的文件下载请求保存到输入消息队列中,资源管理进程从输入消息队列中逐一提取文件下载请求,然后从所连接的多个文件服务器中选择其一来下载请求文件,最后将文件下载结果保存到输出消息队列中。
2.根据权利要求1所述的方法,其特征在于,输入和输出消息队列中的每个文件下载请求或结果包含有以下参数:文件类型、文件服务器编号、请求文件名、请求文件数量、下载次数、文件下载状态,其中,文件类型用于保存一般下载请求中的文件所属具体类型,文件服务器编号用于保存特定下载请求中指定下载的文件服务器编号,下载次数用于标识资源管理进程已经尝试下载的次数,文件下载状态用于标识文件是下载成功或失败状态。
3.根据权利要求1所述的方法,其特征在于,资源管理进程启动多个文件下载线程,步骤二中,每个文件下载线程的工作流程进一步包括有:
步骤A1、文件下载线程从输入消息队列中取出一个文件下载请求;
步骤A2、获取主用服务器编号;
步骤A3、判断文件服务器信息列表中主用服务器的状态是否是可用,如果是,则从主用服务器上下载请求文件,然后更新文件下载请求中的“下载次数”和“文件下载状态”,继续下一步;
步骤A4、将更新后的文件下载请求作为文件下载结果保存到输出消息队列中,继续从输入消息队列中取出下一个文件下载请求,转向步骤A2,
或,
资源管理进程启动多个文件下载线程,且每个文件下载线程分别和一个文件服务器绑定,即每个文件下载线程只负责从其绑定的文件服务器上下载文件,步骤二中,每个文件下载线程的工作流程进一步包括有:
步骤B1、文件下载线程判断输入消息队列中是否有文件下载请求的“文件服务器编号”是自己所绑定的文件服务器编号,如果是,则从输入消息队列中取出所述文件下载请求,继续下一步;
步骤B2、文件下载线程查找文件服务器信息列表中自己所绑定的文件服务器的状态是否是可用,如果是,则从自己所绑定的文件服务器上下载请求文件,然后更新文件下载请求中的“下载次数”和“文件下载状态”,继续下一步;
步骤B3、将更新后的文件下载请求作为文件下载结果保存到输出消息队列中,转向步骤B1。
4.根据权利要求3所述的方法,其特征在于,步骤A3中,当文件服务器信息列表中主用服务器的状态不可用时,还包括有:
步骤A5、判断是否还存在有优先级排在主用服务器之后的文件服务器,如果是,则将优先级排在主用服务器之后的文件服务器选作主用服务器,转向步骤A3;如果否,则将文件下载请求中的“文件下载状态”更新成下载失败状态,然后转向步骤A4,
步骤A3和步骤A4之间还包括有:
步骤A341、判断文件下载请求中的“文件下载状态”是否是下载成功状态,如果是,则转向步骤A4;如果否,则继续下一步;
步骤A342、判断文件下载请求中的“下载次数”是否达到一定阈值,如果是,则转向步骤A4;如果否,则转向步骤A5。
5.根据权利要求3所述的方法,其特征在于,步骤B1中,当文件下载线程判断输入消息队列中没有文件下载请求的“文件服务器编号”是自己所绑定的文件服务器编号时,还包括有:
判断输入消息队列中是否有文件下载请求的“文件服务器编号”是空,如果是,则从输入消息队列中取出所述文件下载请求,转向步骤B2;如果否,则等待一段时间后,转向步骤B1,
步骤B2中,当文件下载线程查找文件服务器信息列表中自己所绑定的文件服务器的状态不可用时,还包括有:
步骤B4、判断文件下载请求中的“下载次数”是否达到一定阈值,如果是,则将文件下载请求的“文件下载状态”更新成下载失败状态,转向步骤B3;如果否,则继续下一步;
步骤B5、从文件服务器信息列表中挑选出一个状态是可用的文件服务器,然后将文件下载请求的“文件服务器编号”修改成所挑选出的可用状态的文件服务器编号,最后将修改后的文件下载请求再保存到输入消息队列中,转向步骤B1,
步骤B2和步骤B3之间还包括有:
判断文件下载请求中的“文件下载状态”是否是下载成功状态,如果是,则转向步骤B3;如果否,则转向步骤B4。
6.根据权利要求3所述的方法,其特征在于,在将文件下载结果保存到输出消息队列中之后,还包括有:
文件下载线程获取当前时间,将下载线程信息列表中自己的“最近一次正常使用时间”更新为当前时间,
资源管理进程创建一个状态监测维护线程,还包括有:
步骤C1、逐一读取文件下载线程信息列表中的每个文件下载线程;
步骤C2、获取文件下载线程的“线程锁”,并使用“线程锁”对文件下载线程信息列表中所述文件下载线程的数据进行加锁,然后读取所述文件下载线程的“最近一次正常使用时间”,并获取当前时间,然后判断当前时间和所述文件下载线程的“最近一次正常使用时间”的差值是否大于一定门限值,如果是,则取消所述文件下载线程,从文件下载线程信息列表中删除所述文件下载线程的数据,然后重新启动一个新的文件下载线程,将新的文件下载线程绑定到已取消的文件下载线程所绑定的文件服务器上,最后在文件下载线程信息列表中增加所述新的文件下载线程的数据,继续下一步;如果否,则对文件下载线程信息列表中所述文件下载线程数据进行解锁,然后继续下一步;
步骤C3、判断是否已读取完文件下载线程信息列表中的所有文件下载线程,如果是,则继续下一步;如果否,则继续读取文件下载线程信息列表中的下一个文件下载线程,转向步骤C2。
7.根据权利要求1所述的方法,其特征在于,还包括有:
资源管理进程为每个文件服务器分别创建一个服务器监测线程,服务器监测线程定时向自己所监测的文件服务器发出访问请求,并判断访问请求是否被正常执行,如果是,则获取当前时间,然后将文件服务器信息列表中所监测的文件服务器的“最近一次正常使用时间”更新为当前时间,
资源管理进程创建一个状态监测维护线程,还包括有:
步骤D1、状态监测维护线程逐一读取文件服务器信息列表中的每个文件服务器;
步骤D2、获取所述文件服务器的“线程锁”,并使用“线程锁”对文件服务器信息列表中所述文件服务器的数据进行加锁,然后读取所述文件服务器的“最近一次正常使用时间”,并获取当前时间,再判断当前时间和所述“最近一次正常使用时间”的差值是否大于一定门限值,如果是,则将文件服务器信息列表中所述文件服务器的“状态”更新为不可用;如果否,则将文件服务器信息列表中所述文件服务器的“状态”更新为可用;
步骤D3、对文件服务器信息列表中所述文件服务器的数据进行解锁,然后判断是否已读取完文件服务器信息列表中的所有文件服务器,如果否,则继续读取文件服务器信息列表中的下一个文件服务器,转向步骤D2。
8.一种网络文件管理的系统,其特征在于,包括有:
资源管理启动装置,用于构建输入和输出消息队列,启动资源管理进程装置,将外部进程发来的文件下载请求保存到输入消息队列中;
资源管理进程装置,用于从输入消息队列中逐一提取文件下载请求,然后从所连接的多个文件服务器中选择其一来下载请求文件,最后将文件下载结果保存到输出消息队列中。
9.根据权利要求8所述的系统,其特征在于,输入和输出消息队列中的每个文件下载请求或结果包含有以下参数:文件类型、文件服务器编号、请求文件名、请求文件数量、下载次数、文件下载状态等,文件类型用于保存一般下载请求中的文件所属具体类型,文件服务器编号用于保存特定下载请求中指定下载的文件服务器编号,下载次数用于标识资源管理进程已经尝试下载的次数,文件下载状态用于标识文件是下载成功或失败状态。
10.根据权利要求8所述的系统,其特征在于,资源管理进程装置启动多个文件下载线程单元,每个文件下载线程单元进一步包括有:
主备下载执行部件,用于从输入消息队列中取出每个文件下载请求,获取主用服务器编号,判断文件服务器信息列表中主用服务器的状态是否是可用,如果是,则从主用服务器上下载请求文件,然后更新文件下载请求中的“下载次数”和“文件下载状态”,最后将更新后的文件下载请求作为文件下载结果保存到输出消息队列中,
或,
资源管理进程装置启动多个文件下载线程单元,且每个文件下载线程单元分别和一个文件服务器绑定,即每个文件下载线程单元只负责从其绑定的文件服务器上下载文件,每个文件下载线程单元进一步包括有:
负荷分担请求提取部件,用于判断输入消息队列中是否有文件下载请求的“文件服务器编号”是自己所绑定的文件服务器编号,如果是,则从输入消息队列中取出所述文件下载请求,并转发给负荷分担下载执行部件;
负荷分担下载执行部件,用于查找文件服务器信息列表中自己所绑定的文件服务器的状态是否是可用,如果是,则从自己所绑定的文件服务器上下载请求文件,然后更新文件下载请求中的“下载次数”和“文件下载状态”,最后将更新后的文件下载请求作为文件下载结果保存到输出消息队列中。
11.根据权利要求10所述的系统,其特征在于,主备下载执行部件,当判断文件服务器信息列表中主用服务器的状态不可用时,将通知主用服务器重设部件,
文件下载线程单元还包括有:
主用服务器重设部件,用于判断是否还存在有优先级排在主用服务器之后的文件服务器,如果是,则将优先级排在主用服务器之后的文件服务器选作主用服务器,再通知主备下载执行部件继续判断文件服务器信息列表中主用服务器的状态是否可用;如果否,则将文件下载请求中的“文件下载状态”更新成下载失败状态,然后通知主备下载执行部件将更新后的文件下载请求作为文件下载结果保存到输出消息队列中;
主备结果处理部件,用于当主备下载执行部件从主用服务器上下载请求文件、并更新文件下载请求中的“下载次数”和“文件下载状态”之后,判断如果“文件下载状态”是下载成功状态、或“下载次数”达到一定阈值时,则通知主备下载执行部件将更新后的文件下载请求作为文件下载结果保存到输出消息队列中,如果“文件下载状态”不是下载成功状态、且“下载次数”没有达到一定阈值时,则通知主用服务器重设部件重新选用主用服务器。
12.根据权利要求10所述的系统,其特征在于,负荷分担请求提取部件,当判断输入消息队列中没有文件下载请求的“文件服务器编号”是自己所绑定的文件服务器编号时,继续判断输入消息队列中是否有文件下载请求的“文件服务器编号”是空,如果有,就从输入消息队列中取出“文件服务器编号”是空的文件下载请求,并转发给负荷分担下载执行部件,
负荷分担下载执行部件,当查找文件服务器信息列表中自己所绑定的文件服务器的状态不可用时,判断文件下载请求中的“下载次数”是否达到一定阈值,如果是,则将文件下载请求的“文件下载状态”更新成下载失败状态,并将更新后的文件下载请求作为文件下载结果保存到输出消息队列中;如果否,则将文件下载请求转发给文件服务器重设部件,
文件下载线程单元还包括有:
文件服务器重设部件,用于从文件服务器信息列表中挑选出一个状态是可用的文件服务器,然后将文件下载请求的“文件服务器编号”修改成所挑选出的可用状态的文件服务器编号,最后将修改后的文件下载请求再保存到输入消息队列中;
负荷分担结果处理部件,用于当负荷分担下载执行部件从文件服务器上下载请求文件、并更新文件下载请求中的“下载次数”和“文件下载状态”之后,判断如果“文件下载状态”是下载成功状态、或“下载次数”达到一定阈值时,通知负荷分担下载执行部件将更新后的文件下载请求作为文件下载结果保存到输出消息队列中,如果“文件下载状态”不是下载成功状态、且“下载次数”没有达到一定阈值时,将文件下载请求转发给文件服务器重设部件。
13.根据权利要求10所述的系统,其特征在于,资源管理进程装置为所有文件下载线程单元创建一个下载线程信息列表,所述下载线程信息列表保存有所有文件下载线程单元的数据,每个文件下载线程单元还包括有:
下载线程监测部件,用于当主备下载执行部件或负荷分担下载执行部件将文件下载结果保存到输出消息队列中之后,获取当前时间,将下载线程信息列表中自己所属的文件下载线程单元的“最近一次正常使用时间”更新为当前时间,
这样,资源管理进程装置还包括有:状态监测维护线程单元,所述状态监测维护线程单元进一步包括有:
下载线程状态监测部件,用于逐一读取文件下载线程信息列表中的每个文件下载线程单元,获取文件下载线程单元的“线程锁”,使用“线程锁”对文件下载线程信息列表中所述文件下载线程单元的数据进行加锁,然后读取所述文件下载线程单元的“最近一次正常使用时间”,并获取当前时间,然后判断当前时间和所述文件下载线程单元的“最近一次正常使用时间”的差值是否大于一定门限值,如果是,则取消所述文件下载线程单元,从文件下载线程信息列表中删除所述文件下载线程单元的数据,然后重新启动一个新的文件下载线程单元,将新的文件下载线程单元绑定到已取消的文件下载线程单元所绑定的文件服务器上,最后在文件下载线程信息列表中增加所述新的文件下载线程单元的数据;如果否,则对文件下载线程信息列表中所述文件下载线程单元的数据进行解锁。
14.根据权利要求8所述的系统,其特征在于,资源管理进程装置为每个文件服务器分别创建一个服务器监测线程单元:
服务器监测线程单元,用于定时向自己所监测的文件服务器发出访问请求,并判断访问请求是否被正常执行,如果是,则获取当前时间,然后将文件服务器信息列表中所监测的文件服务器的“最近一次正常使用时间”更新为当前时间,
资源管理进程装置还包括有:状态监测维护线程单元,所述状态监测维护线程单元进一步包括有:
服务器状态监测部件,用于读取文件服务器信息列表中的每个文件服务器,获取文件服务器的“线程锁”,并使用“线程锁”对文件服务器信息列表中所述文件服务器的数据进行加锁,然后读取所述文件服务器的“最近一次正常使用时间”,并获取当前时间,再判断当前时间和所述“最近一次正常使用时间”的差值是否大于一定门限值,如果是,则将文件服务器信息列表中所述文件服务器的“状态”更新为不可用;如果否,则将文件服务器信息列表中所述文件服务器的“状态”更新为可用,最后对文件服务器信息列表中所述文件服务器的数据进行解锁。
CN201610659938.3A 2016-08-12 2016-08-12 一种网络文件管理的实现方法和系统 Active CN106302709B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610659938.3A CN106302709B (zh) 2016-08-12 2016-08-12 一种网络文件管理的实现方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610659938.3A CN106302709B (zh) 2016-08-12 2016-08-12 一种网络文件管理的实现方法和系统

Publications (2)

Publication Number Publication Date
CN106302709A true CN106302709A (zh) 2017-01-04
CN106302709B CN106302709B (zh) 2019-04-30

Family

ID=57669811

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610659938.3A Active CN106302709B (zh) 2016-08-12 2016-08-12 一种网络文件管理的实现方法和系统

Country Status (1)

Country Link
CN (1) CN106302709B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108289126A (zh) * 2018-01-28 2018-07-17 丁超 用于上传或下载文件的方法、装置及计算机存储介质
CN109088907A (zh) * 2017-06-14 2018-12-25 北京京东尚科信息技术有限公司 文件传递方法及其设备
CN109120636A (zh) * 2018-09-07 2019-01-01 众安信息技术服务有限公司 对内容访问请求进行授权的方法和服务端设备
CN109697346A (zh) * 2018-11-29 2019-04-30 合肥工业大学 一种基于大数据的政务文件管理系统
CN112269672A (zh) * 2020-10-27 2021-01-26 上海淇馥信息技术有限公司 一种文件下载异常处理方法、装置及电子设备
WO2021139131A1 (zh) * 2020-01-09 2021-07-15 深圳壹账通智能科技有限公司 一种文件下载方法及相关产品

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103118076A (zh) * 2013-01-11 2013-05-22 烽火通信科技股份有限公司 升级服务器集群系统及其负载均衡方法
CN104378428A (zh) * 2014-11-14 2015-02-25 北京京东尚科信息技术有限公司 一种用于文件下载的方法和装置
US20150095460A1 (en) * 2013-10-01 2015-04-02 Penthera Partners, Inc. Downloading Media Objects

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103118076A (zh) * 2013-01-11 2013-05-22 烽火通信科技股份有限公司 升级服务器集群系统及其负载均衡方法
US20150095460A1 (en) * 2013-10-01 2015-04-02 Penthera Partners, Inc. Downloading Media Objects
CN104378428A (zh) * 2014-11-14 2015-02-25 北京京东尚科信息技术有限公司 一种用于文件下载的方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
传智播客高教产品研发部: "《Andorid移动应用基础教程》", 31 January 2015, 铁道出版社 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109088907A (zh) * 2017-06-14 2018-12-25 北京京东尚科信息技术有限公司 文件传递方法及其设备
CN109088907B (zh) * 2017-06-14 2021-10-01 北京京东尚科信息技术有限公司 文件传递方法及其设备
CN108289126A (zh) * 2018-01-28 2018-07-17 丁超 用于上传或下载文件的方法、装置及计算机存储介质
CN109120636A (zh) * 2018-09-07 2019-01-01 众安信息技术服务有限公司 对内容访问请求进行授权的方法和服务端设备
CN109697346A (zh) * 2018-11-29 2019-04-30 合肥工业大学 一种基于大数据的政务文件管理系统
WO2021139131A1 (zh) * 2020-01-09 2021-07-15 深圳壹账通智能科技有限公司 一种文件下载方法及相关产品
CN112269672A (zh) * 2020-10-27 2021-01-26 上海淇馥信息技术有限公司 一种文件下载异常处理方法、装置及电子设备
CN112269672B (zh) * 2020-10-27 2023-05-02 上海淇馥信息技术有限公司 一种文件下载异常处理方法、装置及电子设备

Also Published As

Publication number Publication date
CN106302709B (zh) 2019-04-30

Similar Documents

Publication Publication Date Title
CN106302709A (zh) 一种网络文件管理的实现方法和系统
CN100556038C (zh) 一种基于外部条件触发节点动作的内容分发方法
CN103562904B (zh) 在服务的次要位置重放作业
CN106302702A (zh) 数据的分片存储方法、装置及系统
CN111338773A (zh) 一种分布式定时任务调度方法、调度系统及服务器集群
CN108881512B (zh) Ctdb的虚拟ip均衡分配方法、装置、设备及介质
CN101771723A (zh) 数据同步方法
CN106790092B (zh) 远程过程调用服务端控制系统及方法
US10379834B2 (en) Tenant allocation in multi-tenant software applications
CN112153133B (zh) 一种数据共享方法、设备以及介质
US20160234129A1 (en) Communication system, queue management server, and communication method
CN104750757B (zh) 一种基于HBase的数据存储方法和设备
CN107635026B (zh) 一种获取ip的方法及装置
CN103488526A (zh) 在分布式系统中锁定业务资源的系统和方法
CN104793981B (zh) 一种虚拟机集群的在线快照管理方法及装置
CN110327621A (zh) 用于网络游戏客户端匹配的方法及设备
CN103647811B (zh) 一种实现应用访问后台服务的方法和装置
CN107122271B (zh) 一种恢复节点事件的方法、装置及系统
CN101778131A (zh) 数据同步系统
CN101789963A (zh) 数据同步系统
CN111913989A (zh) 分布式应用缓存刷新系统、方法、电子设备及存储介质
CN111158956A (zh) 一种集群系统的数据备份方法及相关装置
CN115037754A (zh) 一种负载均衡方法及装置
CN114116158A (zh) 一种基于sd-wan系统的任务调度方法及系统
CN113157476A (zh) 虚拟云环境中显卡故障的处理方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 310013, Zhejiang, Xihu District, Wensanlu Road, No. 398, 4 floor, Hangzhou

Applicant after: EB Information Technology Ltd.

Address before: 100191 Beijing, Zhichun Road, No. 9, hearing the building on the floor of the 7 floor,

Applicant before: EB Information Technology Ltd.

GR01 Patent grant
GR01 Patent grant
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: 310013 4th floor, No.398 Wensan Road, Xihu District, Hangzhou City, Zhejiang Province

Patentee after: Xinxun Digital Technology (Hangzhou) Co.,Ltd.

Address before: 310013 4th floor, No.398 Wensan Road, Xihu District, Hangzhou City, Zhejiang Province

Patentee before: EB Information Technology Ltd.