一种文件传输方法及系统的制作方法_2

文档序号:9399353阅读:来源:国知局
收到待传输文件后,本节点和第一节点均具有待传输文件,即本节点和第一节点均可检测到待传输文件,使其均作为分发节点,分别从未传输列表中选取一个节点编号,并继续对其他待传输的节点进行文件的传输,例如,本节点将待传输文件继续发送给待传输的第五节点,第一节点将待传输文件发送给待传输的第三节点,则本节点、第一节点、第五节点和第四节点上均可检测到待传输文件,使得本节点、第一节点、第五节点和第四节点分别继续向不同的待传输节点传输文件,直到所有节点上均具有待传输文件为止。在文件传输过程中,能够检测到待传输文件的节点,即分发节点由I个变为2个,再由2个变为4个,成指数增加,提高集群中文件传输的效率。
[0053]进一步地,所述在检测到待传输文件时,从未传输列表中随机选取一个节点编号,具体包括:
[0054]定时循环读取预设的传输标识;
[0055]若所述传输标识为真,则判定检测到待传输文件,从未传输列表中随机选取一个节点编号;
[0056]若所述传输标识为假,则判定未检测到待传输文件,继续等待读取传输标识。
[0057]需要说明的是,每个节点均定时循环读取本节点中的传输标识Flag,若传输标识Flag为真,则说明本节点具有待传输文件,可以向需要接受所述待传输文件的节点发送待传输文件;若传输标识Flag为假,则说明本节点不具有待传输文件,继续等待下一次传输标识Flag的读取。
[0058]另外,节点在不具有待传输文件时,预先设置其传输标识Flag为假,节点在接收到待传输文件时,将传输标识Flag由假修改为真。
[0059]进一步地,所述在检测到待传输文件时,从未传输列表中随机选取一个节点编号之后,还包括:
[0060]将所选取的节点编号添加到正在传输列表中;
[0061]在所述待传输文件发送成功后,从所述正在传输列表中去除所述节点编号。
[0062]需要说明的是,在选取一个节点编号后,将该节点编号添加到正在传输列表中,并从未传输列表中去除该节点编号,以便及时记录集群中各个节点的传输状态。然后,向该节点编号相应的节点发送待传输文件,并在待传输文件成功发送到该节点编号相应的第一节点时,将该节点编号从正在传输列表中去除。
[0063]进一步地,所述文件传输方法还包括:
[0064]在将所述待传输文件发送给所述第一节点时,检测剩余带宽是否超过预设的阈值;
[0065]若超过所述阈值,则向需要接收所述待传输文件的第二节点传输所述待传输文件;
[0066]若未超过所述阈值,则等待所述待传输文件的循环检测。
[0067]需要说明的是,在本节点向第一节点传输文件的过程中,检测本节点上剩余网络带宽,若剩余网络带宽超过预设的阈值,则说明本节点网络带宽较空闲,可继续向另一个节点传输文件,本节点继续从未传输列表中选取一个节点编号,并将该节点编号从未传输列表中去除,向该节点编号相应的第二节点发送待传输文件;若剩余网络带宽未超过预设的阈值,则说明本节点网络带宽繁忙,等待第一节点的传输完成后,释放出空闲带宽,再进行下一个节点的传输。在本节点采用多线程的传输方式,既能有效防止大文件传输导致的网络堵塞,又能进一步提尚传输效率。
[0068]进一步地,所述文件传输方法还包括:
[0069]实时检测所述未传输列表和所述正在传输列表中的变化信息;
[0070]将所述变化信息发送给所述集群中的其他节点,使所述其他节点根据所述变化信息更新其未传输列表和正在传输列表。
[0071]需要说明的是,每个节点上均包括未传输列表和正在传输列表,在每个节点上的未传输列表和正在传输列表中的节点编号发生变化时,将该变化信息发送给集群中的其他节点,使其他节点同步更新自己的未传输列表和正在传输列表,以防止其他节点对相同节点的重复传输。例如,本节点将待传输文件发送给第一节点,在第一节点向第三节点发送该待传输文件时,从第一节点的未传输列表中去除第三节点的节点编号,则第一节点的未传输列表发生变化。将该变化信息发送给包括本节点在内的集群中的其他节点,本节点在接收到该变化信息后,更新本节点上的未传输列表,使更新后的本节点的未传输列表不具有第三节点的编号,以防止本节点向第三节点重复传输所述待传输文件。
[0072]进一步地,所述文件传输方法还包括:
[0073]当检测到所述未传输列表和所述正在传输列表中均无节点编号时,结束所述集群中所述待传输文件的传输。
[0074]其中,当检测到未传输列表中没有节点编号时,则说明集群中没有待传输的节点,当进一步检测到正在传输列表中没有节点编号时,则说明集群中没有正在传输的节点,待传输文件均已发送成功,集群中的所有节点均已具有所述待传输文件,传输完毕。
[0075]进一步地,所述在定时循环检测到待传输文件时,从未传输列表中随机选取一个节点编号之前,还包括:
[0076]安装安全外壳协议SSH,并将公钥复制到所述集群的其他节点上;
[0077]获取并保存分配的节点编号。
[0078]需要说明的是,在集群传输文件之前,需先对集群初始化,在集群中的每个节点上安装SSH(Secure Shell,安全外壳协议),并将每个节点上的公钥Key复制到其他节点上,从而保证节点之间可以进行文件的无密码传输。然后,对每个节点进行编号,如集群中的节点编号为I到N。
[0079]参见图2,是本发明提供的文件传输方法的第二个实施例的流程示意图,包括:
[0080]S21、每个节点均定时循环自动判断预设的传输标识是否为对外发送待传输文件;若是,则执行步骤S22,若否,则继续等待;
[0081]S22、从未传输列表中随机选取一个节点编号;
[0082]S23、将所述节点编号加入正在传输列表中,并从所述未传输列表中去除所述节点编号;
[0083]S24、将所述待传输文件发送给所述节点编号相应的第一节点;
[0084]S25、传输成功后,将所述节点编号从所述正在传输列表中去除,并使所述第一节点将其传输标识修改为对外发送待传输文件;
[0085]S26、在所述未传输列表和正在传输列表中均无节点编号时,完成所述集群中所述待传输文件的传输。
[0086]本发明实施例提供的文件传输方法,能够设置未传输列表,将需要接受待传输文件的节点的节点编号存储其中,使每个具有待传输文件的节点均可从未传输列表中选取一个节点编号来进行传输,提高集群中的传输效率,并及时将已选取的待传输节点相应的节点编号从未传输列表中去除,避免重复传输;采用多线程的传输方式,在向待传输的第一节点进行传输的过程中,检测剩余带宽,若剩余带宽超过预设的阈值,则继续向待传输的第二节点传输文件,既能有效防止大文件传输导致的网络堵塞,又能进一步提高传输效率。
[0087]相应的,本发明还提供一种文件传输系统,能够实现上述实施例中的文件传输方法的所有流程。
[0088]参见图3,是本发明提供的文件传输系统的第一个实施例的结构示意图,所述文件传输系统包括集群;所述集群中的每个节点I均包括:
[0089]节点编号获取模块11,用于在定时循环检测到待传输文件时,从未传输列表中随机选取一个节点编号;所述未传输列表记载了集群中需要接收所述待传输文件的节点的节点编号;
[0090]节点编号去除模块12,用于从所述未传输列表中去除所选取的节点编号;以及,
[0091]发送模块13,用于将所述待传输文件发送给所选取的节点编号相应的第一节点,使所述第一节点定时循环检测到所述待传输文件,并向需要接收所述待传输文件
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1