一种节点连接方法及相关设备与流程

文档序号:16007868发布日期:2018-11-20 20:17阅读:166来源:国知局
本申请涉及计算机网络领域,尤其涉及一种节点连接方法及相关设备。
背景技术
:在星际文件系统中,为了保证网络的正常运行对等网络(PeertoPeer,P2P)协议规定节点需不断的发现其他节点。如图1所示,P2P网络中包括多个对等节点,每个节点与其他节点直接或间接连接。请求节点定期向与本节点直接连接的其他节点发送findpeer请求,其中,findpeer请求包括的请求参数为一个随机生成的节点标识信息(randomIdentification,randomID),任何一个节点都可以作为请求节点向与之连接的其他节点发送findpeer请求。其他节点接收到该请求之后,根据randomID返回若干个节点的标识信息给请求节点,请求节点再向这若干个节点发送握手请求,以便于之建立连接,若连接成功,则更新请求节点的路由信息。由于请求节点将findpeer请求发送给了与之连接的每个节点,当网络中存在数据巨大的节点时,将造成网络流量的巨大消耗,影响网络运行的流畅性。技术实现要素:本申请实施例提供一种节点连接方法及相关设备。可以节省网络流量、提高网络运行的流畅度。本申请第一方面提供了一种节点连接方法,所述方法应用于第一主节点,包括:接收与所述第一主节点连接的第一从节点发送的第一连接请求;根据所述第一连接请求,从其他主节点中选择第二主节点;向所述第二主节点发送第二连接请求,所述第二连接请求用于指示所述第二主节点从与所述第二主节点连接的多个从节点中选择第二从节点;接收所述第二主节点发送的所述第二从节点的目标标识信息;向所述第一从节点发送所述目标标识信息,所述目标标识信息用于指示所述第一从节点与所述第二从节点建立连接。其中,所述第一连接请求包括随机生成的从节点标识信息;所述根据所述第一连接请求,从其他主节点中选择第二主节点包括:获取所述其他主节点中每个主节点的主节点标识信息;根据所述从节点标识信息和所述主节点标识信息,确定所述每个主节点与所述从节点标识信息对应的从节点的连接距离;将与所述从节点标识信息对应的从节点的所述连接距离小于预设阈值的主节点确定为所述第二主节点。其中,所述根据所述从节点标识信息和所述主节点标识信息,确定所述每个主节点与所述从节点标识信息对应的从节点的连接距离包括:对所述从节点标识信息与所述主节点标识信息进行异或运算;根据所述异或运算的结果,确定所述连接距离。其中,所述第一连接请求包括待存储文件的第一特征码;所述根据所述第一连接请求,从其他主节点中选择第二主节点包括:获取所述其他主节点中每个主节点的主节点标识信息;根据所述第一特征码与所述主节点标识信息,确定所述待存储文件与所述每个主节点的传输距离;将与所述待存储文件的所述传输距离最近的主节点确定为所述第二主节点。其中,所述根据所述第一特征码与所述主节点标识信息,确定所述待存储文件与所述每个主节点的传输距离包括:对所述第一特征码与所述主节点标识信息进行异或运算;根据所述异或运算的结果,确定所述传输距离。其中,所述第一连接请求包括待读取文件的第二特征码;所述根据所述第一连接请求,从其他主节点中选择第二主节点包括:获取所述其他主节点中每个主节点存储的至少一个文件特征码;将所述第二特征码与所述至少一个文件特征码中的每个文件特征码进行匹配,确定所述至少一个文件特征码中是否包含所述第二特征码;将所存储的所述至少一个文件特征码中包含所述第二特征码的主节点确定为所述第二主节点。相应地,本申请第二方面提供了另一种节点连接方法,所述方法应用于第二主节点,包括:接收第一主节点发送的第二连接请求,所述第二连接请求由所述第一主节点接收到与所述第一主节点连接的第一从节点发送的第一连接请求、并根据所述第一连接请求从其他主节点中选择所述第二主节点之后发送的;根据所述第二连接请求,从与所述第二主节点连接的多个从节点中选择第二从节点;向所述第一主节点发送所述第二从节点的目标标识信息,所述目标标识信息用于在被所述第一主节点转发给所述第一从节点之后指示所述第一从节点与所述第二从节点建立连接。其中,所述第二连接请求包括随机生成的从节点标识信息;所述根据所述第二连接请求,从与所述第二主节点连接的多个从节点中选择第二从节点包括:获取所述多个从节点中每个从节点的所述目标标识信息;根据所述从节点标识信息与所述目标标识信息,确定所述每个从节点与所述从节点标识信息对应的从节点的连接距离;将与所述从节点标识信息对应的从节点的所述连接距离小于预设阈值的从节点确定为所述第二从节点。其中,所述根据所述从节点标识信息与所述目标标识信息,确定所述每个从节点与所述从节点标识信息对应的从节点的连接距离包括:对所述从节点标识信息与所述目标标识信息进行异或运算;根据所述异或运算的结果,确定所述连接距离。其中,所述第二连接请求包括待存储文件的第一特征码;所述根据所述第二连接请求,从与所述第二主节点连接的多个从节点中选择第二从节点包括:获取所述多个从节点中每个从节点的所述目标标识信息;根据所述第一特征码和所述目标标识信息,确定所述待存储文件与所述每个从节点的传输距离;将与所述待存储文件的所述传输距离最近的从节点确定为所述第二从节点。其中,所述根据所述第一特征码和所述目标标识信息,确定所述待存储文件与所述每个从节点的传输距离包括:对所述第一特征码与所述目标标识信息进行异或运算;根据所述异或运算的结果,确定所述传输距离。其中,所述第二连接请求包括待读取文件的第二特征码;所述根据所述第二连接请求,从与所述第二主节点连接的多个从节点中选择第二从节点包括:从文件路由表中查找与所述第二特征码对应的从节点,所述文件路由表包括文件特征码与从节点的对应关系,所述文件特征码为所述多个从节点上存储的文件的特征码;将与所述第二特征码对应的从节点作为所述第二从节点。本申请实施例第三方面提供了一种第一主节点,包括:接收模块,用于接收与所述第一主节点连接的第一从节点发送的第一连接请求;选择模块,用于根据所述第一连接请求,从其他主节点中选择第二主节点;发送模块,向所述第二主节点发送第二连接请求,所述第二连接请求用于指示所述第二主节点从与所述第二主节点连接的多个从节点中选择第二从节点;所述接收模块,还用于接收所述第二主节点发送的所述第二从节点的目标标识信息;所述发送模块,还用于向所述第一从节点发送所述目标标识信息,所述目标标识信息用于指示所述第一从节点与所述第二从节点建立连接。其中,所述第一连接请求包括随机生成的从节点标识信息;所述选择模块还用于:获取所述其他主节点中每个主节点的主节点标识信息;根据所述从节点标识信息和所述主节点标识信息,确定所述每个主节点与所述从节点标识信息对应的从节点的连接距离;将与所述从节点标识信息对应的从节点的所述连接距离小于预设阈值的主节点确定为所述第二主节点。其中,所述选择模块还用于:对所述从节点标识信息与所述主节点标识信息进行异或运算;根据所述异或运算的结果,确定所述连接距离。其中,所述第一连接请求包括待存储文件的第一特征码;所述选择模块还用于:获取所述其他主节点中每个主节点的主节点标识信息;根据所述第一特征码与所述主节点标识信息,确定所述待存储文件与所述每个主节点的传输距离;将与所述待存储文件的所述传输距离最近的主节点确定为所述第二主节点。其中,所述选择模块还用于:对所述第一特征码与所述主节点标识信息进行异或运算;根据所述异或运算的结果,确定所述传输距离。其中,所述第一连接请求包括待读取文件的第二特征码;所述选择模块还用于:获取所述其他主节点中每个主节点存储的至少一个文件特征码;将所述第二特征码与所述至少一个文件特征码中的每个文件特征码进行匹配,确定所述至少一个文件特征码中是否包含所述第二特征码;将所存储的所述至少一个文件特征码中包含所述第二特征码的主节点确定为所述第二主节点。本申请实施例的第四方面提供了一种第二主节点,包括:接收模块,用于接收第一主节点发送的第二连接请求,所述第二连接请求由所述第一主节点接收到与所述第一主节点连接的第一从节点发送的第一连接请求、并根据所述第一连接请求从其他主节点中选择所述第二主节点之后发送的;选择模块,用于根据所述第二连接请求,从与所述第二主节点连接的多个从节点中选择第二从节点;发送模块,用于向所述第一主节点发送所述第二从节点的目标标识信息,所述目标标识信息用于在被所述第一主节点发转发给所述第一从节点之后指示所述第一从节点与所述第二从节点建立连接。其中,所述第二连接请求包括随机生成的从节点标识信息;所述选择模块还用于:获取所述多个从节点中每个从节点的所述目标标识信息;根据所述从节点标识信息与所述目标标识信息,确定所述每个从节点与所述从节点标识信息对应的从节点的连接距离;将与所述从节点标识信息对应的从节点的所述连接距离小于预设阈值的从节点确定为所述第二从节点。其中,所述选择模块还用于:对所述从节点标识信息与所述目标标识信息进行异或运算;根据所述异或运算的结果,确定所述传输距离。其中,所述第二连接请求包括待存储文件的第一特征码;所述选择模块还用于:获取所述多个从节点中每个从节点的所述目标标识信息;根据所述第一特征码和所述目标标识信息,确定所述待存储文件与所述每个从节点的传输距离;将与所述待存储文件的所述传输距离最近的从节点确定为所述第二从节点。其中,所述选择模块还用于:对所述第一特征码与所述目标标识信息进行异或运算;根据所述异或运算的结果,确定所述传输距离。其中,所述第二连接请求包括待读取文件的第二特征码;所述选择模块还用于:从文件路由表中查找与所述第二特征码对应的从节点,所述文件路由表包括文件特征码与从节点的对应关系,所述文件特征码为所述多个从节点上存储的文件的特征码;将与所述第二特征码对应的从节点作为所述第二从节点。相应地,本申请提供了一种存储介质,其中,所述存储介质用于存储应用程序,所述应用程序用于在运行时执行本申请实施例第一方面公开的一种节点连接方法。相应地,本申请提供了一种应用程序,其中,所述应用程序用于在运行时执行本申请实施例第一方面公开的一种节点连接方法。实施本申请实施例,第一主节点首先接收与该第一主节点连接的第一从节点发送的第一连接请求;接着根据第一连接请求,从其他主节点中选择第二主节点,并向第二主节点发送第二连接请求,第二连接请求用于指示第二主节点从与该第二主节点连接的多个从节点中选择第二从节点;然后接收第二主节点发送的第二从节点的目标标识信息;最后向第一从节点发送目标标识信息,该目标标识信息用于指示第一从节点与第二从节点建立连接,可以节省网络流量、提高网络运行的流畅度。附图说明为了更清楚地说明本申请实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是
背景技术
提供的一种P2P网络结构示意图;图2是本申请实施例提供的另一种P2P网络结构示意图;图3是本申请实施例提供的一种P2P网络逻辑架构示意图;图4是本申请实施例提供的一种从节点入网的流程示意图;图5是本申请实施例提供的一种节点连接方法的流程示意图;图6是本申请实施例提供的另一种节点连接方法的流程示意图;图7是本申请实施例提供的一种第一主节点的结构示意图;图8是本申请实施例提供的一种第二主节点的结构示意图;图9是本申请实施例提供的另一种第一主节点的结构示意图;图10是本申请实施例提供的另一种第二主节点的结构示意图。具体实施方式下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。请参考图2,图2是本申请实施例提供的另一种P2P网络结构示意图。如图所示,该P2P网络中包括多个主节点,每个主节点连接了多个从节点。其中,主节点可以是不负责存储文件只提供文件的路由信息和与之连接的从节点的路由信息的节点,例如,文件服务器、数据库服务器等。从节点可以是能够存储文件的节点,如个人计算机、手机等。所有从节点之间可以建立连接,生成路由信息,并将路由信息存储于对应的主节点上,然后从节点之间可以进行文件的传输。本申请实施例P2P网络的逻辑架构如图3所示,其中,主节点与主节点、主节点与从节点之间的通信都是基于P2P协议实现的。为了保证网络的正常,P2P协议规定从节点需要不断发现其他从节点并与之建立连接。需要说明的是,当一个新的从节点需要加入该P2P网络时,如图4所示,该新的从节点可以首先向任意一个主节点发送入网请求,所述入网请求中可以包括该新的从节点的标识信息,然后接收入网请求的主节点根据该新的从节点的标识信息和网络中的所有主节点的标识信息,确定该新的从节点与每个主节点的连接距离,其中,本申请中的连接距离与机器的物理距离无关,仅仅是逻辑上的一种约定。然后指示该新的从节点连接在与之距离最近的主节点上。基于上述P2P网络,本申请实施例提供了如下节点连接方法。请参考图5,图5是本申请实施例提供的一种节点连接方法的流程示意图。如图所示,本申请实施例中的方法包括:S501,第一主节点接收与所述第一主节点连接的第一从节点发送的第一连接请求。具体实现中,第一主节点上可以连接多个从节点,第一从节点可以是多个从节点的任意一个。其中,每个从节点可以按照预设时间间隔(如1分钟/次)、或在需要读取文件、或有文件需要存储时,向第一主节点发送连接请求。S502,根据所述第一连接请求,从其他主节点中选择第二主节点。具体实现中,第一连接请求可以包括随机生成的从节点标识信息,其中,从节点标识信息可以为第一从节点随机生成的一个16位的字符串,如ag1gdg890juh781d。第一从节点每次向第一主节点发送的第一连接请求中所包括的从节点标识信息均不相同。第一主节点可以首先获取与该第一主节点连接的其他主节点的主节点标识信息,其中,主节点标识信息可以但不限于为根据安全哈希(Hash)算法得到的一个16位的字符串;接着根据所述从节点标识信息和所述主节点标识信息,确定所述每个主节点与所述从节点标识信息对应的从节点的连接距离,其中,可以通过对所述从节点标识信息与所述主节点标识信息进行异或运算,再根据所述异或运算的结果,确定所述连接距离。例如,从节点标识信息与主节点标识信息的异或结果为0010000010000101,则可以将该异或结果中数字1的最高位的位数14作为连接距离,其中,1的最高位的位数越大表示连接距离越远、或将前缀0的个数2作为连接距离,其中,前缀0的个数越多表示连接距离越近。然后将与所述从节点标识信息对应的从节点的所述连接距离小于预设阈值的主节点确定为所述第二主节点,其中,预设阈值可以为14、3等任意数。可选的,第一连接请求包括第一从节点中的待存储文件的第一特征码,其中,第一特征码可以是根据安全Hash算法得到的该待存储文件的Hash值,该Hash值可以为一个16位的字符串。第一主节点可以首先获取所述其他主节点中每个主节点的主节点标识信息;接着根据所述第一特征码与所述主节点标识信息,确定所述待存储文件与所述每个主节点的传输距离,其中,可以将所述第一特征码与所述主节点标识信息进行异或运算,再根据所述异或运算的结果,确定所述传输距离,其中,本申请中的传输距离与物理传输距离无关,仅仅是逻辑上的一种约定。例如,第一特征码与主节点标识信息的异或结果为0000100010000101,则可以将该异或结果中数字1的最高位的位数12作为传输距离,其中,1的最高位的位数越大表示传输距离越远、或将前缀0的个数4作为连接距离,其中,前缀的0的个数越多表示传输距离越近:然后将与所述待存储文件的所述传输距离最近的主节点确定为第二主节点。可选的,第一连接请求包括第一从节点待读取文件的第二特征码,第一从节点首先获取该待读取文件的第二特征码,其中,第二特征码可以但不限于为根据安全Hash算法得到的待读取文件的Hash值。第一主节点可以首先获取所述其他主节点中每个主节点存储的至少一个文件特征码,其中,每个主节点上存储的文件特征码为与该主节点连接的从节点上存储的文件的特征码。接着将所述第二特征码与所述至少一个文件特征码中的每个文件特征码进行匹配,确定所述至少一个文件特征码中是否包含所述第二特征码;然后将所存储的所述至少一个文件特征码中包含所述第二特征码的主节点确定为所述第二主节点。可选的,第一主节点上也存储了与该主节点连接的从节点上存储的文件的特码,因此可以在根据所述第一连接请求,从其他主节点中选择第二主节点之前,首先将第一主节点上存储的至少一个文件特征码与第二特征码进行匹配,确定该至少一个文件特征码中是否包含第二特征码,若包含,则表示待读取的文件存储在于第一主节点连接的从节点上,因此无需再执行根据所述连接请求,从其他主节点中选择第二主节点的操作;若不包含,则表示待读取的文件没有存储在于第一主节点连接的从节点上,因此需要执行根据所述连接请求,从其他主节点中选择第二主节点的操作。S503,第一主节点向所述第二主节点发送第二连接请求,所述第二连接请求用于指示所述第二主节点从与所述第二主节点连接的多个从节点中选择第二从节点。S504,第一主节点接收所述第二主节点发送的所述第二从节点的目标标识信息。其中,目标标识信息可以但不限于为一个16位的字符串。S505,第一主节点向所述第一从节点发送所述目标标识信息,所述目标标识信息用于指示所述第一从节点与所述第二从节点建立连接。具体实现中,第一从节点可以向第二从节点发送握手请求,当接收到第二从节点发送的反馈信息时,说明第二从节点处于在线状态并且接受第一从节点的握手请求、确认与第一从节点建立连接关系。在与第二从节点建立连接后,第一从节点可以更新本节点的路由信息,并将更新后的路由信息存储在第一主节点中;然后,第一从节点可以将待存储文件存储在第二从节点中、或根据待读取文件的第二特征码从第二从节点中读取文件。在上述第一从节点与第二从节点建立连接的过程中,第一从节点的连接请求均通过主节点进行处理,任何其他从节点不会接收到第一从节点的连接请求,从而节省了大量的网络流量。在本申请实施例中,第一主节点首先接收与该第一主节点连接的第一从节点发送的第一连接请求;接着根据第一连接请求,从其他主节点中选择第二主节点,并向第二主节点发送第二连接请求,第二连接请求用于指示第二主节点从与该第二主节点连接的多个从节点中选择第二从节点;然后接收第二主节点发送的第二从节点的目标标识信息;最后向第一从节点发送目标标识信息,该目标标识信息用于指示第一从节点与第二从节点建立连接,可以节省网络流量、提高网络运行的流畅度。请参考图6,图6是本申请实施例提供的另一种节点连接方法的流程示意图。如图所示,本申请实施例中的方法包括:S601,第一从节点向第一主节点发送第一连接请求。具体实现中,第一从节点可以是与第一主节点连接的多个从节点中的任意一个。其中,第一从节点可以照预设时间间隔(如1分钟/次)、或在需要读取文件、或有文件需要存储时,向第一主节点发送第一连接请求S602,第一主节点根据第一连接请求,从其他主节点中选择第二主节点。本步骤与上一实施例中的S502相同,本步骤不再赘述。S603,第一主节点向第二主节点发送第二连接请求。S604,第二主节点根据第二连接请求,从与该第二主节点连接的多个从节点中选择第二从节点。具体实现中,第二连接请求可以包括随机生成的从节点标识信息。第二主节点可以首先获取所述多个从节点中每个从节点的所述目标标识信息;接着根据所述从节点标识信息与所述目标标识信息,确定所述每个从节点与所述从节点标识信息对应的从节点的连接距离,其中,可以对所述从节点标识信息与所述目标标识信息进行异或运算,根据所述异或运算的结果,确定所述连接距离;然后将与所述从节点标识信息对应的从节点的所述连接距离小于预设阈值的从节点确定为所述第二从节点。可选的,第二连接请求包括第一从节点中的待存储文件的第一特征码,其中,第一特征码可以是根据安全Hash算法得到的该待存储文件的Hash值,该Hash值可以为一个16位的字符串。第二主节点可以首先获取所述多个从节点中每个从节点的目标标识信息;接着根据第一特征码与所述目标标识信息,确定所述待存储文件与所述每个从节点的传输距离,其中,可以对第一特征码与目标标识信息进行异或运算,再根据异或运算的结果,确定传输距离。例如,第一特征码与目标标识信息的异或结果为0000100010000101,则可以将该异或结果中数字1的最高位的位数12作为传输距离,其中,1的最高位的位数越大表示传输距离越远、或将前缀0的个数4作为连接距离,其中,前缀0的个数越多表示传输距离越近:然后将与所述待存储文件的所述传输距离最近的从节点确定为第二从节点。可选的,第二连接请求包括第一从节点待读取文件的第二特征码。第二主节点可以从文件路由表中查找与所述第二特征码对应的从节点,所述文件路由表包括文件特征码与从节点的对应关系,所述文件特征码为所述多个从节点上存储的文件的特征码。其中,文件路由表存储于第二主节点中,该文件特征码可以但不限于是利用安全Hash算法计算得到的文件的Hash值。例如:第一从节点待读取文件的特征码为bhhi08hggyhu9876。如表1所示,文件路由表中包括多个文件特征码,以及每个文件特征码对应的从节点,其中,abdghu9ybg23780d与从节点1对应、bhhi08hggyhu9876和cy6tnj2190huby21与从节点2对应、以及vet690f7vhu1gy70与从节点3对应。从节点1、从节点2和从节点3都是连接在第二主节点上的从节点。因此,可以从文件路由表中查找到与待读取文件的特征码为bhhi08hggyhu9876对应的为从节点2,所以将从节点2确定为第二从节点。表1.文件路由表文件特征码从节点abdghu9ybg23780d从节点1bhhi08hggyhu9876从节点2cy6tnj2190huby21从节点2vet690f7vhu1gy70从节点3S605,第二主节点向第一主节点发送第二从节点的目标标识信息。S606,第一主节点向第一从节点发送第二从节点的目标标识信息。S607,第一从节点根据目标标识信息与第二从节点建立连接。具体实现中,第一从节点可以向第二从节点发送握手请求,当接收到第二从节点发送的反馈信息时,说明第二从节点处于在线状态并且接受的第一从节点的握手请求,确认与第一从节点建立连接关系。然后第一从节点可以更新本节点的路由信息,并将更新后的路由信息存储在第一主节点中。在本申请实施例中,第一主节点首先接收与该第一主节点连接的第一从节点发送的第一连接请求;接着根据第一连接请求,从其他主节点中选择第二主节点,并向第二主节点发送第二连接请求,第二连接请求用于指示第二主节点从与该第二主节点连接的多个从节点中选择第二从节点;然后接收第二主节点发送的第二从节点的目标标识信息;最后向第一从节点发送目标标识信息,该目标标识信息用于指示第一从节点与第二从节点建立连接,可以节省网络流量、提高网络运行的流畅度。请参考图7,图7是本申请实施例提供的一种第一主节点的结构示意图。如图所示,本申请实施例中的第一主节点包括:接收模块701,用于接收与所述第一主节点连接的第一从节点发送的第一连接请求。具体实现中,第一主节点上可以连接多个从节点,第一从节点可以是多个从节点的任意一个。其中,每个从节点可以按照预设时间间隔(如1分钟/次)、或在需要读取文件、或有文件需要存储时,向第一主节点发送第一连接请求。选择模块702,用于根据所述第一连接请求,从其他主节点中选择第二主节点。具体实现中,第一连接请求可以包括随机生成的从节点标识信息,其中,从节点标识信息可以为第一从节点随机生成的一个16位的字符串,如ag1gdg890juh781d。第一从节点每次向第一主节点发送的连接请求中所包括的从节点标识信息均不相同。第一主节点可以首先获取与该第一主节点连接的其他主节点的主节点标识信息,其中,主节点标识信息可以但不限于为根据安全哈希(Hash)算法得到的一个16位的字符串;接着根据所述从节点标识信息和所述主节点标识信息,确定所述每个主节点与所述从节点标识信息对应的从节点的连接距离,其中,可以通过对所述从节点标识信息与所述主节点标识信息进行异或运算,再根据所述异或运算的结果,确定所述连接距离。例如,从节点标识信息与主节点标识信息的异或结果为0010000010000101,则可以将该异或结果中数字1的最高位的位数14作为连接距离,其中,1的最高位的位数越大表示连接距离越远、或将前缀0个数2作为连接距离,其中,前缀的0的个数越多表示连接距离越近。然后将与所述从节点标识信息对应的从节点的所述连接距离小于预设阈值的主节点确定为所述第二主节点,其中,预设阈值可以为14、3等任意数。可选的,第一连接请求包括第一从节点中的待存储文件的第一特征码,其中,第一特征码可以是根据安全Hash算法得到的该待存储文件的Hash值,该Hash值可以为一个16位的字符串。第一主节点可以首先获取所述其他主节点中每个主节点的主节点标识信息;接着根据所述第一特征码与所述主节点标识信息,确定所述待存储文件与所述每个主节点的传输距离,其中,可以将所述第一特征码与所述主节点标识信息进行异或运算,再根据所述异或运算的结果,确定所述传输距离,其中,本申请中的传输距离与物理传输距离无关,仅仅是逻辑上的一种约定。例如,第一特征码与主节点标识信息的异或结果为0000100010000101,则可以将该异或结果中数字1的最高位的位数12作为传输距离,其中,1的最高位的位数越大表示传输距离越远、或将前缀0的个数4作为连接距离,其中,前缀的0的个数越多表示传输距离越近:然后将与所述待存储文件的所述传输距离最近的主节点确定为第二主节点。可选的,第一连接请求包括第一从节点待读取文件的第二特征码,第一从节点首先获取该待读取文件的第二特征码,其中,第二特征码可以但不限于为根据安全Hash算法得到的待读取文件Hash值。第一主节点可以首先获取所述其他主节点中每个主节点存储的至少一个文件特征码,其中,每个主节点上存储的文件特征码为与该主节点连接的从节点上存储的文件的特征码。接着将所述第二特征码与所述至少一个文件特征码中的每个文件特征码进行匹配,确定所述至少一个文件特征码中是否包含所述第二特征码;然后将所存储的所述至少一个文件特征码中包含所述第二特征码的主节点确定为所述第二主节点。可选的,第一主节点上也存储了与该主节点连接的从节点上存储的文件的特码,因此可以选择模块702还用于根据所述连接请求,从其他主节点中选择第二主节点之前,首先将第一主节点上存储的至少一个文件特征码与第二特征码进行匹配,确定该至少一个文件特征码中是否包含第二特征码,若包含,则表示待读取的文件存储在于第一主节点连接的从节点上,因此无需再执行根据所述连接请求,从其他主节点中选择第二主节点的操作;若不包含,则表示待读取的文件没有存储在于第一主节点连接的从节点上,因此需要执行根据所述连接请求,从其他主节点中选择第二主节点的操作。发送模块703,用于向所述第二主节点发送第二连接请求,所述第二连接请求用于指示所述第二主节点从与所述第二主节点连接的多个从节点中选择第二从节点。接收模块701,还用于接收所述第二主节点发送的所述第二从节点的第一标识信息。其中,目标标识信息可以但不限于为一个16位的字符串。发送模块703,还用于向所述第一从节点发送所述目标标识信息,所述目标标识信息用于指示所述第一从节点与所述第二从节点建立连接。具体实现中,第一从节点可以向第二从节点发送握手请求,当接收到第二从节点发送的反馈信息时,说明第二从节点处于在线状态并且接受第一从节点的握手请求、确认与第一从节点建立连接。在与第二从节点建立连接后,第一从节点可以更新本节点的路由信息,并将更新后的路由信息存储在第一主节点中;然后,第一从节点可以将待存储文件存储在第二从节点中、或根据待读取文件的第二特征码从第二从节点中读取文件。在本申请实施例中,第一主节点首先接收与该第一主节点连接的第一从节点发送的第一连接请求;接着根据第一连接请求,从其他主节点中选择第二主节点,并向第二主节点发送第二连接请求,第二连接请求用于指示第二主节点从与该第二主节点连接的多个从节点中选择第二从节点;然后接收第二主节点发送的第二从节点的目标标识信息;最后向第一从节点发送目标标识信息,该目标标识信息用于指示第一从节点与第二从节点建立连接,可以节省网络流量、提高网络运行的流畅度。请参考图8,图8是本申请实施例提供的一种第二主节点的结构示意图。如图所示,本申请实施例中的第二主节点包括:接收模块801,用于接收第一主节点发送的第二连接请求。其中,第二连接请求由所述第一主节点接收到与所述第一主节点连接的第一从节点发送的第一连接请求、并根据所述第一连接请求从其他主节点中选择所述第二主节点之后发送的。选择模块802,用于根据第二连接请求,从与第二主节点连接的多个从节点中选择第二从节点。具体实现中,第二连接请求可以包括随机生成的从节点标识信息。第二主节点可以首先获取所述多个从节点中每个从节点的所述目标标识信息;接着根据所述从节点标识信息与所述目标标识信息,确定所述每个从节点与所述从节点标识信息对应的从节点的连接距离,其中,可以对所述从节点标识信息与所述目标标识信息进行异或运算,根据所述异或运算的结果,确定所述连接距离;然后将与所述从节点标识信息对应的从节点的所述连接距离小于预设阈值的从节点确定为所述第二从节点。可选的,第二连接请求包括第一从节点中的待存储文件的第一特征码,其中,第一特征码可以是根据安全Hash算法得到的该待存储文件的Hash值,该Hash值可以为一个16位的字符串。第二主节点可以首先获取所述多个从节点中每个从节点的目标标识信息;接着根据第一特征码与所述目标标识信息,确定所述待存储文件与所述每个从节点的传输距离,其中,可以对第一特征码与目标标识信息进行异或运算,再根据异或运算的结果,确定传输距离。例如,第一特征码与目标标识信息的异或结果为0000100010000101,则可以将该异或结果中数字1的最高位的位数12作为传输距离,其中,1的最高位的位数越大表示传输距离越远、或将前缀0的个数4作为连接距离,其中,前缀的0的个数越多表示传输距离越近:然后将与所述待存储文件的所述传输距离最近的从节点确定为第二从节点。可选的,第二连接请求包括第一从节点待读取文件的第二特征码。第二主节点可以从文件路由表中查找与所述第二特征码对应的从节点,所述文件路由表包括文件特征码与从节点的对应关系,所述文件特征码为所述多个从节点上存储的文件的特征码。其中,文件路由表存储于第二主节点中,该文件特征码可以但不限于是利用安全Hash算法计算得到的文件的Hash值。发送模块803,用于向第一主节点发送第二从节点的目标标识信息。其中,该目标标识信息在被第一主节点转发给第一从节点之后指示该第一从节点与第二从节点建立连接。在本申请实施例中,第一主节点首先接收与该第一主节点连接的第一从节点发送的第一连接请求;接着根据第一连接请求,从其他主节点中选择第二主节点,并向第二主节点发送第二连接请求,第二连接请求用于指示第二主节点从与该第二主节点连接的多个从节点中选择第二从节点;然后接收第二主节点发送的第二从节点的目标标识信息;最后向第一从节点发送目标标识信息,该目标标识信息用于指示第一从节点与第二从节点建立连接,可以节省网络流量、提高网络运行的流畅度。请参考图9,图9是本申请实施例提供的一种第一主节点的结构示意图。如图所示,该第一主节点可以包括:至少一个处理器901,例如CPU,至少一个通信接口902,至少一个存储器903,至少一个总线904。其中,总线904用于实现这些组件之间的连接通信。其中,本申请实施例中电子设备的通信接口902是有线发送端口,也可以为无线设备,例如包括天线装置,用于与其他节点设备进行信令或数据的通信。存储器903可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器。存储器903可选的还可以是至少一个位于远离前述处理器901的存储装置。存储器903中存储一组程序代码,且处理器901用于调用存储器中存储的程序代码,用于执行以下操作:接收与所述第一主节点连接的第一从节点发送的第一连接请求;根据所述第一连接请求,从其他主节点中选择第二主节点;向所述第二主节点发送第二连接请求,所述第二连接请求用于指示所述第二主节点从与所述第二主节点连接的多个从节点中选择第二从节点;接收所述第二主节点发送的所述第二从节点的目标标识信息;向所述第一从节点发送所述目标标识信息,所述目标标识信息用于指示所述第一从节点与所述第二从节点建立连接。其中,所述第一连接请求包括随机生成的从节点标识信息;处理器901还用于执行如下操作步骤:获取所述其他主节点中每个主节点的主节点标识信息;根据所述从节点标识信息和所述主节点标识信息,确定所述每个主节点与所述从节点标识信息对应的从节点的连接距离;将与所述从节点标识信息对应的从节点的所述连接距离小于预设阈值的主节点确定为所述第二主节点。其中,处理器901还用于执行如下操作步骤:对所述从节点标识信息与所述主节点标识信息进行异或运算;根据所述异或运算的结果,确定所述连接距离。其中,所述第一连接请求包括待存储文件的第一特征码;处理器901还用于执行如下操作步骤:获取所述其他主节点中每个主节点的主节点标识信息;根据所述第一特征码与所述主节点标识信息,确定所述待存储文件与所述每个主节点的传输距离;将与所述待存储文件的所述传输距离最近的主节点确定为所述第二主节点。其中,处理器901还用于执行如下操作步骤:对所述第一特征码与所述主节点标识信息进行异或运算;根据所述异或运算的结果,确定所述传输距离。其中,所述第一连接请求包括待读取文件的第二特征码;处理器901还用于执行如下操作步骤:获取所述其他主节点中每个主节点存储的至少一个文件特征码;将所述第二特征码与所述至少一个文件特征码中的每个文件特征码进行匹配,确定所述至少一个文件特征码中是否包含所述第二特征码;将所存储的所述至少一个文件特征码中包含所述第二特征码的主节点确定为所述第二主节点。进一步的,处理器还可以与存储器和通信接口相配合,执行上述申请实施例中第一主节点的操作。请参考图10,图10是本申请实施例提供的一种第二主节点的结构示意图。如图所示,该第二主节点可以包括:至少一个处理器1001,例如CPU,至少一个通信接口1002,至少一个存储器1003,至少一个总线1004。其中,总线1004用于实现这些组件之间的连接通信。其中,本申请实施例中电子设备的通信接口1002是有线发送端口,也可以为无线设备,例如包括天线装置,用于与其他节点设备进行信令或数据的通信。存储器1003可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器。存储器1003可选的还可以是至少一个位于远离前述处理器1001的存储装置。存储器1003中存储一组程序代码,且处理器1001用于调用存储器中存储的程序代码,用于执行以下操作:接收第一主节点发送的第二连接请求,所述第二连接请求由所述第一主节点接收到与所述第一主节点连接的第一从节点发送的第一连接请求、并根据所述第一连接请求从其他主节点中选择所述第二主节点之后发送的;根据所述第二连接请求,从与所述第二主节点连接的多个从节点中选择第二从节点;向所述第一主节点发送所述第二从节点的目标标识信息,所述目标标识信息被所述第一主节点发送给所述第一从节点用于指示所述第一从节点与所述第二从节点建立连接。其中,所述第二连接请求包括随机生成的从节点标识信息;处理器1001还用于执行如下操作步骤:获取所述多个从节点中每个从节点的所述目标标识信息;根据所述从节点标识信息与所述每个从节点的所述目标标识信息,确定所述每个从节点与所述从节点标识信息对应的从节点的连接距离;将与所述从节点标识信息对应的从节点的所述连接距离小于预设阈值的从节点确定为所述第二从节点。其中,处理器1001还用于执行如下操作步骤:对所述从节点标识信息与所述每个从节点的所述目标标识信息进行异或运算;根据所述异或运算的结果,确定所述传输距离。其中,所述第二连接请求包括待存储文件的第一特征码;处理器1001还用于执行如下操作步骤:获取所述多个从节点中每个从节点的所述目标标识信息;根据所述第一特征码和所述每个从节点的所述目标标识信息,确定所述待存储文件与所述每个从节点的传输距离;将与所述待存储文件的所述传输距离最近的从节点确定为所述第二从节点。其中,处理器1001还用于执行如下操作步骤:对所述第一特征码与所述每个从节点的所述目标标识信息进行异或运算;根据所述异或运算的结果,确定所述传输距离。其中,所述第二连接请求包括待读取文件的第二特征码;处理器1001还用于执行如下操作步骤:从文件路由表中查找与所述第二特征码对应的从节点,所述文件路由表包括文件特征码与从节点的对应关系,所述文件特征码为所述多个从节点上存储的文件的特征码;将与所述第二特征码对应的从节点作为所述第二从节点。进一步的,处理器还可以与存储器和通信接口相配合,执行上述申请实施例中第二主节点的操作。在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘SolidStateDisk(SSD))等。以上所述的具体实施方式,对本申请的目的、技术方案和有益效果进行了进一步详细说明。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1