CN106941532A - 一种应用于分布式***的数据传输方法及装置 - Google Patents
一种应用于分布式***的数据传输方法及装置 Download PDFInfo
- Publication number
- CN106941532A CN106941532A CN201710202441.3A CN201710202441A CN106941532A CN 106941532 A CN106941532 A CN 106941532A CN 201710202441 A CN201710202441 A CN 201710202441A CN 106941532 A CN106941532 A CN 106941532A
- Authority
- CN
- China
- Prior art keywords
- server node
- data
- target
- thread
- target data
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明实施例提供了一种应用于分布式***的数据传输方法及装置,其中,所述方法应用于目标服务器节点,所述方法包括:接收上一级节点发送的目标数据,其中,所述目标数据为所述上一级节点在获得所述目标数据后,判断出所述目标数据对应的当前层级中的固定服务器节点为所述目标服务器节点后所发送的;在对所述目标数据执行与所述服务器节点相对应的数据处理后,将所述目标数据发送至所述目标数据对应的所述目标服务器节点中的固定线程,以使得所述固定线程将接收到的所述目标数据发送至下一级节点。这样,使得数据接收端接收到的多个数据的顺序与所述多个数据发出的顺序一致,从而提高了***的推送效果以及数据接收端的用户体验。
Description
技术领域
本发明涉及网络传输技术领域,特别是涉及一种应用于分布式***的数据传输方法及装置。
背景技术
分布式***普遍应用于现有的网络***中,尤其是即时通信***、云推送***等。分布式***中采用多服务器和多线程对数据尤其是大规模的数据进行处理并传输,每个数据根据需求会传输给进行相应数据处理的层级中的服务器节点,从而对其进行相应的处理。例如,当数据需要进行过滤和敏感字查询时,首先在过滤的层级中随机选择一个服务器节点对该数据进行过滤处理,然后将过滤处理后的数据传输至进行敏感字查询处理的层级,同样在敏感字查询处理的层级中随机选择一个服务器节点对数据进行敏感字查询的处理,最后将数据发送至数据接收端,其中,每一层级都会有多个相应的服务器节点,每个服务器节点又同时会对应多个线程。
然而,多个数据在进行相应地处理之后传输给同一数据接收端时,由于在数据处理的各层级中是随机选择处理的服务器节点,因此待处理的多个数据可能分配给不同的服务器节点,分别对其进行处理,即时分配在同一服务器,也可能分配给该服务器的不同线程,进而将数据传输至数据接收端。由于每个服务器、同一服务器节点的每个线程处理数据的速度是不一样的,因此每个数据在传输过程中的时间是不一样的,这样,会带来数据接收端接收到的多个数据的顺序与该多个数据发出的顺序不一致的问题,而如果多个数据的顺序关系决定信息含义,无疑使得存在顺序关系的多个数据的正确含义无法被获知。
发明内容
本发明实施例的目的在于提供一种应用于分布式***的数据传输方法及装置,解决了数据接收端接收到的多个数据的顺序与该多个数据发出的顺序不一致的问题。具体技术方案如下:
第一方面,本发明实施例提供了一种应用于分布式***的数据传输方法,应用于目标服务器节点,其中,所述目标服务器节点为所述分布式***中的任一服务器节点;所述方法包括:
接收上一级节点发送的目标数据,其中,所述目标数据为所述上一级节点在获得所述目标数据后,判断出所述目标数据对应的当前层级中的固定服务器节点为所述目标服务器节点后所发送的,其中,所述当前层级为所述目标服务器节点所在的层级,所述固定服务器节点为所述上一级节点根据预设服务器节点分配算法所确定出的,其中,所述预设服务器节点分配算法为基于所传输数据所对应的数据接收端来分配下一层级的服务器节点的算法;
在对所述目标数据执行与所述目标服务器节点相对应的数据处理后,将所述目标数据发送至所述目标数据对应的所述目标服务器节点中的固定线程,以使得所述固定线程将接收到的所述目标数据发送至下一级节点,所述固定线程为所述目标服务器节点根据预设线程分配算法所确定的,所述预设线程分配算法为基于所传输数据所对应的数据接收端来分配服务器节点中的线程的算法,其中,所述下一级节点为数据接收端或下一层级中的服务器节点,所述下一层级中的服务器节点为根据所述预设服务器节点分配算法所确定出的、所述目标数据对应的下一层级中的固定服务器节点。
可选地,所述将所述目标数据发送至所述目标数据对应的所述目标服务器节点中的固定线程的步骤,包括:
调用所述目标数据对应的所述目标服务器节点中的固定线程的超文本传输协议HTTP接口或者远程过程调用协议RPC接口,向所述固定线程发送所述目标数据。
可选地,所述将所述目标数据发送至所述目标数据对应的所述目标服务器节点中的固定线程之前,所述方法还包括:
判断所述目标数据对应的所述目标服务器节点中的固定线程当前是否可用,如果是,继续执行所述将所述目标数据发送至所述目标数据对应的所述服务器节点中的固定线程的步骤。
可选地,所述方法还包括:
当判断出所述目标数据对应的所述目标服务器节点中的固定线程当前不可用时,确定所述目标数据对应的第一线程,所述目标数据对应的第一线程为所述目标服务器节点根据所述预设线程分配算法重新确定的;
将所述目标数据发送至所述第一线程,以使得所述第一线程将接收到的所述目标数据发送至下一级节点。
可选地,所述预设服务器节点分配算法包括:
哈希算法;或者
互联网协议IP地址分配算法。
可选地,所述哈希算法为一致性哈希算法。
可选地,所述预设线程分配算法包括:
哈希算法;或者
互联网协议IP地址分配算法。
可选地,所述哈希算法为一致性哈希算法。
第二方面,本发明实施例提供了一种应用于分布式***的数据传输装置,应用于目标服务器节点,其中,所述目标服务器节点为所述分布式***中的任一服务器节点;所述装置包括:
接收模块,用于接收上一级节点发送的目标数据,其中,所述目标数据为所述上一级节点在获得所述目标数据后,判断出所述目标数据对应的当前层级中的固定服务器节点为所述目标服务器节点后所发送的,其中,所述当前层级为所述目标服务器节点所在的层级,所述固定服务器节点为所述上一级节点根据预设服务器节点分配算法所确定出的,其中,所述预设服务器节点分配算法为基于所传输数据所对应的数据接收端来分配下一层级的服务器节点的算法;
第一发送模块,用于在对所述目标数据执行与所述目标服务器节点相对应的数据处理后,将所述目标数据发送至所述目标数据对应的所述目标服务器节点中的固定线程,以使得所述固定线程将接收到的所述目标数据发送至下一级节点,所述固定线程为所述目标服务器节点根据预设线程分配算法所确定的,所述预设线程分配算法为基于所传输数据所对应的数据接收端来分配服务器节点中的线程的算法,其中,所述下一级节点为数据接收端或下一层级中的服务器节点,所述下一层级中的服务器节点为根据所述预设服务器节点分配算法所确定出的、所述目标数据对应的下一层级中的固定服务器节点。
可选地,所述第一发送模块包括:
调用子模块,用于调用所述目标数据对应的所述目标服务器节点中的固定线程的超文本传输协议HTTP接口或者远程过程调用协议RPC接口;
第一发送子模块,用于向所述固定线程发送所述目标数据。
可选地,所述装置还包括:
判断模块,用于在所述第一发送模块将所述目标数据发送至所述目标数据对应的所述目标服务器节点中的固定线程之前,判断所述目标数据对应的所述目标服务器节点中的固定线程当前是否可用,如果是,触发所述第一发送模块。
可选地,所述装置还包括:
确定模块,用于当判断出所述目标数据对应的所述目标服务器节点中的固定线程当前不可用时,确定所述目标数据对应的第一线程,所述第一线程为所述目标服务器节点根据所述预设线程分配算法重新确定的;
第二发送模块,用于将所述目标数据发送至所述第一线程,以使得所述目标数据对应的第一线程将接收到的所述目标数据发送至下一级节点。
可选地,所述预设服务器节点分配算法包括:
哈希算法;或者
互联网协议IP地址分配算法。
可选地,所述哈希算法为一致性哈希算法。
可选地,所述预设线程分配算法包括:
哈希算法;或者
互联网协议IP地址分配算法。
可选地,所述哈希算法为一致性哈希算法。
本发明实施例提供的一种应用于分布式***的数据传输方法中,通过接收上一级节点发送的数据,其中,所述数据为所述上一级节点在获得所述数据后,按照预设服务器节点分配算法确定出所述目标服务器节点为所述数据对应的固定服务器节点后所发送的;在对所述数据执行与所述目标服务器节点相对应数据处理后,将接收到的所述数据发送至固定线程,以使得所述固定线程将接收到的所述数据发送至所述下一级节点。可见,通过本方案,多个数据传输至同一数据接收端时,所经过的服务器节点及线程相同,而服务器节点和线程在处理数据时是按照数据的接收顺序来处理,这样,使得数据接收端接收到的多个数据的顺序与所述多个数据发出的顺序一致,从而提高了***的推送效果以及数据接收端的用户体验。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种应用于分布式***的数据传输方法的一种流程图;
图2为本发明实施例提供的一种应用于分布式***的数据传输方法的另一种流程图;
图3为本发明实施例提供的一种应用于分布式***的数据传输装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了使得数据接收端接收到的多个数据的顺序与该多个数据发出的顺序一致,从而提高***的推送效果以及数据接收端的用户体验,本发明实施例提供了一种应用于分布式***的数据传输方法及装置。
下面首先对本发明实施例提供了一种应用于分布式***的数据传输方法进行介绍。
需要说明的是,本发明实施例所提供的数据传输方法应用于分布式***中,与现有技术相同的是,该分布式***采用多服务器和多线程的方式对数据进行处理并传输,具体的,根据处理需求每个数据会传输给进行相应数据处理的层级中的服务器节点,从而对其进行相应的处理,之后通过服务器节点下的线程传输至下一层级或者数据接收端。其中,每个数据的处理需求是不一样的,只需进行简单处理的数据可能只需要经过几个层级甚至一个层级的处理就可以发送至数据接收端,而需要进行复杂处理的数据可能会需要经过更多的层级进行数据处理。
本发明实施例提供的一种应用于分布式***的数据传输方法应用于目标服务器节点,需要强调的是,该目标服务器节点可以是分布式***中任一层级中的任一服务器节点。
如图1所示,本发明实施例提供的一种应用于分布式***的数据传输方法,可以包括如下步骤:
S101,接收上一级节点发送的目标数据,其中,该目标数据为上一级节点在获得目标数据后,判断出该目标数据对应的当前层级中的固定服务器节点为该目标服务器节点后所发送的,其中,当前层级为该目标服务器节点所在的层级,固定服务器节点为上一级节点根据预设服务器节点分配算法所确定出的,其中,预设服务器节点分配算法为基于所传输数据所对应的数据接收端来分配下一层级的服务器节点的算法。
其中,上一级节点可以是服务器节点,该服务器节点可以是上一层级中的处理并传输目标数据的服务器节点;当然,上一级节点还可以是数据的发送端,例如即时通信***、云推送***等。
当上一级节点为上一层级的服务器节点时,该服务器节点为传输的每一个数据在当前层级中分配各个数据相对应的固定服务器节点,以进行相应地处理和传输,分配固定服务器节点的依据可以是所传输的数据的接收端,即根据所传输数据的接收端分配当前层级的固定服务器节点,因此,同一数据接收端的数据可以被分配到当前层级中的同一服务器节点,当然,不同数据接收端的数据也可能分配到同一服务器节点。
并且,在一种具体实现方式中,上一层级的服务器节点通过预设服务器节点分配算法来确定当前层级的固定服务器节点,预设服务器节点分配算法可以是互联网协议IP地址分配算法,具体地,根据数据接收端的IP地址进行IP区间划分,将不同区间的IP所对应的数据接收端划分给不同的服务器节点进行处理,而同一区间内的IP所对应的数据接收端分配给同一服务器节点进行处理。示例地,将数据接收端的IP划分为两个IP区间,分别为IP为159.226.1.1-159.226.1.3的区间以及IP为159.226.1.4-159.226.1.6的区间,M层级中有2个服务器节点分别为A服务器节点、B服务器节点,并且,IP区间159.226.1.1-159.226.1.6中所对应的数据接收端所要接收的数据都需要经过M层级进行相关的数据处理,因此,可以通过IP地址分配算法可以将IP区间159.226.1.1-159.226.1.3所对应的数据接收端将要接收的数据分配给A服务器节点,由A服务器节点对数据进行处理,而将IP区间159.226.1.4-159.226.1.6所对应的数据接收端将要接收的数据分配给B服务器节点,这样,A服务器节点只处理IP为159.226.1.1、159.226.1.2、159.226.1.3所对应的数据接收端所接收的数据,B服务器节点只处理IP为为159.226.1.4、159.226.1.5、159.226.1.6所对应的数据接收端所接收的数据。当然,IP地址的区间划分并不限于按照连续IP地址进行划分,还可以随机选择进行划分以及其他的划分方式。
当然,预设服务器节点分配算法还可以是哈希算法,优选地,哈希算法可以为一致性哈希算法,通过对每一层级的服务器节点进行计算,进而分配给数据接收端。示例地,N层级有3个服务器节点分别为A服务器节点、B服务器节点、C服务器节点,同时有6个数据接收端所要接收的数据需要经过N层级的服务器节点进行处理,6个数据接收端分别为数据接收端1、数据接收端2、数据接收端3、数据接收端4、数据接收端5、数据接收端6,则可以经过N层级的上一层级的服务器节点通过一致性哈希算法将6个数据接收端所要接收的数据分配给N层级中的服务器节点,例如,将数据接收端1和数据接收端4所要接收的数据分配给A服务器节点进行处理并传输,将数据接收端2和数据接收端5所要接收的数据分配给B服务器节点进行处理并传输,将数据接收端3和数据接收端6所要接收的数据分配给C服务器节点进行处理并传输。当然,其他的哈希算法同样可以作为预设服务器节点分配算法。而且,其他固定输入能产生固定输出的算法也是同样可以为预设服务器节点分配算法。
同样地,当上一级节点为数据的数据发送端时,该数据发送端发送的数据发送到可以通过互联网协议IP地址分配算法或哈希算法,尤其是一致性哈希算法,确定当前层级中为各数据分配的相对应的固定服务器节点,并将数据发送至该数据对应的当前层级中的固定服务器。与上一级节点为上一层级的服务器节点的情况类似,在此不作赘述。
在上一级节点将目标数据发送至当前层级中该目标数据对应的目标服务器节点时,可以通过调用该目标数据对应的目标服务器节点的HTTP(HyperText TransferProtocol,超文本传输协议)接口或者RPC(Remote Procedure Call Protocol,远程过程调用协议)接口,进而向该目标服务器节点发送数据。示例地,上一级节点为节点A,其中,节点A可以是服务器节点,也可以是数据发送端,当前层级的目标服务器节点为服务器节点B,当节点A将数据发送至服务器节点B时,节点A调用服务器节点B的HTTP接口,将数据发送至服务器节点B,其中,当节点A为服务器节点时,实质上是通过节点A中的为该服务器节点B所分配的固定线程来调用服务器节点B的HTTP接口。另外地,可以为该目标数据对应的当前层级的目标服务器节点建立消息队列,通过消息队列的方式将目标数据发送至该目标数据对应的当前层级的目标服务器节点。当然,具体实现数据传输的方式并不仅限于此。
S102,在对目标数据执行与目标服务器节点相对应的数据处理后,将目标数据发送至目标数据对应的目标服务器节点中的固定线程,以使得固定线程将接收到的目标数据发送至下一级节点,固定线程为目标服务器节点根据预设线程分配算法所确定的,预设线程分配算法为基于所传输数据所对应的数据接收端来分配服务器节点中的线程的算法,其中,下一级节点为数据接收端或下一层级中的服务器节点,下一层级中的服务器节点为根据预设服务器节点分配算法所确定出的、所述目标数据对应的下一层级中的固定服务器节点。
在目标服务器节点接收到目标数据之后,可以对该目标数据进行相对应地数据处理,因为上一层级的服务器节点将目标数据发送至当前层级的目标服务器节点的目的是进行相应地数据处理,例如过滤、敏感字检查等等,在处理完成之后可以将目标数据发送至目标数据对应的目标服务器节点中的固定线程,以使得该固定线程将接收到的目标数据发送至下一级节点。其中,下一级节点可以为下一层级中的服务器节点,例如可以是进行计算处理的层级中的一台服务器,还可以为数据接收端,例如用户的手机终端等。
与固定服务器节点的选择类似,固定线程的选择是基于所传输数据对应的数据接收端来分配的,因此,同一数据接收端的数据可以分配到同一服务器节点中的同一线程,当然,不同数据接收端的数据也可能分配到同一线程。而且,传输每个数据所对应的固定线程可以是固定服务器节点通过预设线程分配算法所确定的,预设线程分配算法同样可以是互联网协议IP地址分配算法、哈希算法,尤其是一致性哈希算法以及其他的固定输入能产生固定输出的算法。
举例而言,具有过滤处理功能的服务器节点A有线程1、线程2,有两个数据接收端分别为数据接收端M和数据接收端N,且两个数据接收端所接收的数据都需要进行数据的过滤处理,服务器节点A为预设服务器节点分配算法确定的数据接收端M和数据接收端N的固定服务器,服务器节点A经一致性哈希算法确定线程1为数据接收端M所接收的数据分配的固定线程,线程2为数据接收端N所接收的数据分配的固定线程,因此,数据接收端M所接收的数据传输的路径一定是经过服务器节点A以及线程1,而数据接收端N所接收的数据传输的路径一定是经过服务器节点A以及线程2。
在目标服务器节点将目标数据发送至该目标数据对应的目标服务器节点中的固定线程时,可以通过调用该目标数据对应的目标服务器节点中的固定线程的HTTP接口或者RPC接口,进而向该固定线程发送数据。另外地,可以为该目标数据对应的目标服务器节点中的固定线程建立消息队列,通过消息队列的方式将目标数据发送至该目标数据对应的目标服务器节点中的固定线程。将数据发送至固定线程的具体实现方式与上述将数据发送至固定服务器节点的具体实现方式相似,在此不作赘述。
需要说明的是,预设服务器节点分配算法和预设线程分配算法都可以是互联网协议IP地址分配算法、哈希算法、尤其是一致性哈希算法以及其他固定输入能产生固定输出的算法中的一种,但是预设服务器节点分配算法和预设线程分配算法具体使用哪一种算法并不受彼此的限制,两者既可以相同也可以不同。举例而言,可以通过一致性哈希算法确定相应的固定服务器节点,然后通过一致性哈希算法继续确定相应的固定线程;或者,通过一致性哈希算法确定相应的固定服务器,然后通过互联网协议IP地址分配算法确定相应的固定线程;又或者,通过互联网协议IP地址分配算法确定相应的固定服务器,然后通过一致性哈希算法确定相应的固定线程等等,各种算法组合的方式都可以。
本发明实施例提供的一种应用于分布式***的数据传输方法中,通过接收上一级节点发送的数据,其中,所述数据为所述上一级节点在获得所述数据后,按照预设服务器节点分配算法确定出所述目标服务器节点为所述数据对应的固定服务器节点后所发送的;在对所述数据执行与所述目标服务器节点相对应数据处理后,将接收到的所述数据发送至固定线程,以使得所述固定线程将接收到的所述数据发送至所述下一级节点。这样,使得数据接收端接收到的多个数据的顺序与所述多个数据发出的顺序一致,从而提高了***的推送效果以及数据接收端的用户体验。
为了保证在使得数据接收端接收到的多个数据的顺序与所述多个数据发出的顺序一致的同时,具有一定的容错机制,可以及时的解决固定服务器节点或固定线程损坏的问题,本发明实施例提供了以下具体实现方式。
如图2所示,本发明实施例提供的一种应用于分布式***的数据传输方法,可以包括如下步骤:
S201,接收上一级节点发送的目标数据,其中,该目标数据为上一级节点在获得目标数据后,判断出该目标数据对应的当前层级中的固定服务器节点为所述目标服务器节点后所发送的,其中,当前层级为目标服务器节点所在的层级,固定服务器节点为上一级节点根据预设服务器节点分配算法所确定出的,其中,预设服务器节点分配算法为基于所传输数据所对应的数据接收端来分配下一层级的服务器节点的算法。
本实施例中,S201与上述实施例的S101相似,在此不做赘述。
S202,对目标数据执行与目标服务器节点相对应的数据处理;
需要说明的是,本实施例中,可以先对目标数据进行相应地数据处理,待数据处理完成后再进行该目标数据对应的目标服务器节点中的固定线程是否可用的判断;当然,还可以先判断目标数据对应的目标服务器节点中的固定线程是否可用,然后再进行目标数据的相应地数据处理;或者,还可以判断目标数据对应的目标服务器节点中的固定线程是否可用与目标数据的数据处理同时进行。
S203,判断目标数据对应的目标服务器节点中的固定线程当前是否可用,如果是,执行S204,如果否,执行S205;
当接收到上一级节点发送的目标数据之后,并发送至该目标数据对应的目标服务器节点中的固定线程之前,可以对该目标数据对应的目标服务器节点中的固定线程进行判断,判断该固定线程是否可用,当可用时,则继续执行将目标数据发送至该目标数据对应的目标服务器节点中的固定线程,当该固定线程不可用时,例如当线程损坏或者被占用等不可接收数据的情况时,则可以利用预设线程分配算法重新确定一个该目标数据对应的目标服务器中的固定线程。在确定固定线程完好的情况下发出对应的数据,在判断出固定线程损坏的情况下重新确定新的固定线程,这样不仅可以节省带宽等资源,而且提高了传输效率。
S204,将目标数据发送至目标数据对应的目标服务器节点中的固定线程,以使得固定线程将接收到的所述目标数据发送至下一级节点,固定线程为目标服务器节点根据预设线程分配算法所确定的,预设线程分配算法为基于所传输数据所对应的数据接收端来分配服务器节点中的线程的算法,其中,下一级节点为数据接收端或下一层级中的服务器节点,下一层级中的服务器节点为根据预设服务器节点分配算法所确定出的、所述目标数据对应的下一层级中的固定服务器节点。
本实施例中,S204与上述实施例的S102相似,在此不做赘述。
S205,确定目标数据对应的第一线程,该目标数据对应的第一线程为目标服务器节点根据预设线程分配算法重新确定的;
当判断出目标数据对应的目标服务器节点中的固定线程当前不可用时,通过预设线程分配算法重新确定一个该目标数据对应的目标服务器节点中的固定线程,并且该线程成为该目标数据对应的数据接收端所接收的数据分配的固定线程。示例地,服务器节点M下面有3个线程分别为线程1、线程2、线程3,服务器节点M根据一致性哈希算法确定线程1为数据接收端A的固定线程、线程2为数据接收端B的固定线程、线程3为数据接收端C的固定线程,当线程2损坏不能接收数据时,服务器节点M通过一致性哈希算法重新确定线程3为数据接收端B的新的固定线程,这样还是可以保证数据接收端接收到的多个数据的顺序与所述多个数据发出的顺序一致。
S206,将目标数据发送至目标数据对应的第一线程,以使得目标数据对应的第一线程将接收到的该目标数据发送至下一级节点。
在确定出目标数据所对应的目标服务器节点中的新的固定线程之后,服务器节点可以将目标数据发送至该新确定的固定线程,由该新确定的固定线程再发送至下一级节点,其中,下一级节点同样可以是服务器节点或者数据接收端。
需要说明的是,上述实施例提供的线程的容错方案同样适用于服务器节点,当当前层级中的固定服务器节点损坏或者不能进行相应的数据处理以及传输时,***可以将该固定服务器节点损坏的信息通知该固定服务器节点的上一级节点,该上一级节点可以通过预设服务器节点分配算法重新确定当前层级中其他的服务器节点作为新的固定服务器节点。示例地,上一层级中的目标数据所对应的节点为上一级节点A,当前层级中的该目标数据所对应的固定服务器节点为服务器节点B,并且当前层级中还包括服务器节点C和服务器节点D,当服务器节点B损坏后,上一层级中的上一级节点A通过一致性哈希算法再次确定服务器节点C为该目标数据所对应的新的固定服务器节点。
本发明实施例提供的一种应用于分布式***的数据传输方法,不仅保证了数据接收端接收到的多个数据的顺序与所述多个数据发出的顺序一致的同时,还具有一定的容错机制,可以及时的解决固定服务器节点或固定线程损坏的问题,更加有效地提高了***的推送效果以及用户体验。
相应于上述提供的方法实施例,本发明实施例还提供了一种应用于分布式***的数据传输装置,应用于目标服务器节点,其中,所述目标服务器节点为所述分布式***中的任一服务器节点;如图3所示,所述装置可以包括:
接收模块310,用于接收上一级节点发送的目标数据,其中,所述目标数据为所述上一级节点在获得所述目标数据后,判断出所述目标数据对应的当前层级中的固定服务器节点为所述目标服务器节点后所发送的,其中,所述当前层级为所述目标服务器节点所在的层级,所述固定服务器节点为所述上一级节点根据预设服务器节点分配算法所确定出的,其中,所述预设服务器节点分配算法为基于所传输数据所对应的数据接收端来分配下一层级的服务器节点的算法;
第一发送模块320,用于在对所述目标数据执行与所述目标服务器节点相对应的数据处理后,将所述目标数据发送至所述目标数据对应的所述目标服务器节点中的固定线程,以使得所述固定线程将接收到的所述目标数据发送至下一级节点,所述固定线程为所述目标服务器节点根据预设线程分配算法所确定的,所述预设线程分配算法为基于所传输数据所对应的数据接收端来分配服务器节点中的线程的算法,其中,所述下一级节点为数据接收端或下一层级中的服务器节点,所述下一层级中的服务器节点为根据所述预设服务器节点分配算法所确定出的、所述目标数据对应的下一层级中的固定服务器节点。
本发明实施例提供的一种应用于分布式***的数据传输装置中,通过接收上一级节点发送的数据,其中,所述数据为所述上一级节点在获得所述数据后,按照预设服务器节点分配算法确定出所述目标服务器节点为所述数据对应的固定服务器节点后所发送的;在对所述数据执行与所述目标服务器节点相对应数据处理后,将接收到的所述数据发送至固定线程,以使得所述固定线程将接收到的所述数据发送至所述下一级节点。可见,通过本方案,多个数据传输至同一数据接收端时,所经过的服务器节点及线程相同,而服务器节点和线程在处理数据时是按照数据的接收顺序来进行处理,这样,使得数据接收端接收到的多个数据的顺序与所述多个数据发出的顺序一致,从而提高了***的推送效果以及数据接收端的用户体验。
可选地,在一种具体实现方式中,所述第一发送模块320包括:
调用子模块,用于调用所述目标数据对应的所述目标服务器节点中的固定线程的超文本传输协议HTTP接口或者远程过程调用协议RPC接口;
第一发送子模块,用于向所述固定线程发送所述目标数据。
更进一步的,本发明实施例提供的一种应用于分布式***的数据传输装置还可以包括:
判断模块,用于在所述第一发送模块将所述目标数据发送至所述目标数据对应的所述目标服务器节点中的固定线程之前,判断所述目标数据对应的所述目标服务器节点中的固定线程当前是否可用,如果是,触发所述第一发送模块320。
可选地,在另一种具体实现方式中,该装置还可以包括:
确定模块,用于当判断出所述目标数据对应的所述目标服务器节点中的固定线程当前不可用时,确定所述目标数据对应的第一线程,所述目标数据对应的第一线程为所述目标服务器节点根据所述预设线程分配算法重新确定的;
第二发送模块,用于将所述目标数据发送至所述第一线程,以使得所述目标数据对应的第一线程将接收到的所述目标数据发送至下一级节点。
可选地,在另一种具体实现方式中,所述预设服务器节点分配算法包括:
哈希算法;或者
互联网协议IP地址分配算法。
优选地,所述哈希算法可以为一致性哈希算法。
可选地,在另一种具体实现方式中,所述预设线程分配算法包括:
哈希算法;或者
互联网协议IP地址分配算法。
优选地,所述哈希算法可以为一致性哈希算法。
对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于***实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (16)
1.一种应用于分布式***的数据传输方法,其特征在于,应用于目标服务器节点,其中,所述目标服务器节点为所述分布式***中的任一服务器节点;所述方法包括:
接收上一级节点发送的目标数据,其中,所述目标数据为所述上一级节点在获得所述目标数据后,判断出所述目标数据对应的当前层级中的固定服务器节点为所述目标服务器节点后所发送的,其中,所述当前层级为所述目标服务器节点所在的层级,所述固定服务器节点为所述上一级节点根据预设服务器节点分配算法所确定出的,其中,所述预设服务器节点分配算法为基于所传输数据所对应的数据接收端来分配下一层级的服务器节点的算法;
在对所述目标数据执行与所述目标服务器节点相对应的数据处理后,将所述目标数据发送至所述目标数据对应的所述目标服务器节点中的固定线程,以使得所述固定线程将接收到的所述目标数据发送至下一级节点,所述固定线程为所述目标服务器节点根据预设线程分配算法所确定的,所述预设线程分配算法为基于所传输数据所对应的数据接收端来分配服务器节点中的线程的算法,其中,所述下一级节点为数据接收端或下一层级中的服务器节点,所述下一层级中的服务器节点为根据所述预设服务器节点分配算法所确定出的、所述目标数据对应的下一层级中的固定服务器节点。
2.根据权利要求1所述的方法,其特征在于,所述将所述目标数据发送至所述目标数据对应的所述目标服务器节点中的固定线程的步骤,包括:
调用所述目标数据对应的所述目标服务器节点中的固定线程的超文本传输协议HTTP接口或者远程过程调用协议RPC接口,向所述固定线程发送所述目标数据。
3.根据权利要求1所述的方法,其特征在于,所述将所述目标数据发送至所述目标数据对应的所述目标服务器节点中的固定线程之前,所述方法还包括:
判断所述目标数据对应的所述目标服务器节点中的固定线程当前是否可用,如果是,继续执行所述将所述目标数据发送至所述目标数据对应的所述服务器节点中的固定线程的步骤。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
当判断出所述目标数据对应的所述目标服务器节点中的固定线程当前不可用时,确定所述目标数据对应的第一线程,所述目标数据对应的第一线程为所述目标服务器节点根据所述预设线程分配算法重新确定的;
将所述目标数据发送至所述第一线程,以使得所述第一线程将接收到的所述目标数据发送至下一级节点。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述预设服务器节点分配算法包括:
哈希算法;或者
互联网协议IP地址分配算法。
6.根据权利要求5所述的方法,其特征在于,所述哈希算法为一致性哈希算法。
7.根据权利要求1-4任一项所述的方法,其特征在于,所述预设线程分配算法包括:
哈希算法;或者
互联网协议IP地址分配算法。
8.根据权利要求7所述的方法,其特征在于,所述哈希算法为一致性哈希算法。
9.一种应用于分布式***的数据传输装置,其特征在于,应用于目标服务器节点,其中,所述目标服务器节点为所述分布式***中的任一服务器节点;所述装置包括:
接收模块,用于接收上一级节点发送的目标数据,其中,所述目标数据为所述上一级节点在获得所述目标数据后,判断出所述目标数据对应的当前层级中的固定服务器节点为所述目标服务器节点后所发送的,其中,所述当前层级为所述目标服务器节点所在的层级,所述固定服务器节点为所述上一级节点根据预设服务器节点分配算法所确定出的,其中,所述预设服务器节点分配算法为基于所传输数据所对应的数据接收端来分配下一层级的服务器节点的算法;
第一发送模块,用于在对所述目标数据执行与所述目标服务器节点相对应的数据处理后,将所述目标数据发送至所述目标数据对应的所述目标服务器节点中的固定线程,以使得所述固定线程将接收到的所述目标数据发送至下一级节点,所述固定线程为所述目标服务器节点根据预设线程分配算法所确定的,所述预设线程分配算法为基于所传输数据所对应的数据接收端来分配服务器节点中的线程的算法,其中,所述下一级节点为数据接收端或下一层级中的服务器节点,所述下一层级中的服务器节点为根据所述预设服务器节点分配算法所确定出的、所述目标数据对应的下一层级中的固定服务器节点。
10.根据权利要求9所述的装置,其特征在于,所述第一发送模块包括:
调用子模块,用于调用所述目标数据对应的所述目标服务器节点中的固定线程的超文本传输协议HTTP接口或者远程过程调用协议RPC接口;
第一发送子模块,用于向所述固定线程发送所述目标数据。
11.根据权利要求9所述的装置,其特征在于,所述装置还包括:
判断模块,用于在所述第一发送模块将所述目标数据发送至所述目标数据对应的所述目标服务器节点中的固定线程之前,判断所述目标数据对应的所述目标服务器节点中的固定线程当前是否可用,如果是,触发所述第一发送模块。
12.根据权利要求11所述的装置,其特征在于,所述装置还包括:
确定模块,用于当判断出所述目标数据对应的所述目标服务器节点中的固定线程当前不可用时,确定所述目标数据对应的第一线程,所述第一线程为所述目标服务器节点根据所述预设线程分配算法重新确定的;
第二发送模块,用于将所述目标数据发送至所述第一线程,以使得所述目标数据对应的第一线程将接收到的所述目标数据发送至下一级节点。
13.根据权利要求9-12任一项所述的装置,其特征在于,所述预设服务器节点分配算法包括:
哈希算法;或者
互联网协议IP地址分配算法。
14.根据权利要求13所述的装置,其特征在于,所述哈希算法为一致性哈希算法。
15.根据权利要求9-12任一项所述的装置,其特征在于,所述预设线程分配算法包括:
哈希算法;或者
互联网协议IP地址分配算法。
16.根据权利要求15所述的装置,其特征在于,所述哈希算法为一致性哈希算法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710202441.3A CN106941532B (zh) | 2017-03-30 | 2017-03-30 | 一种应用于分布式***的数据传输方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710202441.3A CN106941532B (zh) | 2017-03-30 | 2017-03-30 | 一种应用于分布式***的数据传输方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106941532A true CN106941532A (zh) | 2017-07-11 |
CN106941532B CN106941532B (zh) | 2019-07-12 |
Family
ID=59464624
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710202441.3A Active CN106941532B (zh) | 2017-03-30 | 2017-03-30 | 一种应用于分布式***的数据传输方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106941532B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107360261A (zh) * | 2017-09-07 | 2017-11-17 | 北京奇艺世纪科技有限公司 | 一种http请求处理方法、装置及电子设备 |
CN112631788A (zh) * | 2021-01-06 | 2021-04-09 | 上海哔哩哔哩科技有限公司 | 数据传输方法及数据传输服务器 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070127421A1 (en) * | 2005-12-07 | 2007-06-07 | D Amico Thomas V | Method and apparatus for broadcast in an ad hoc network using elected broadcast relay nodes |
CN103412897A (zh) * | 2013-07-25 | 2013-11-27 | 中国科学院软件研究所 | 一种基于分布式结构的并行数据处理方法 |
CN103685021A (zh) * | 2014-01-02 | 2014-03-26 | 网神信息技术(北京)股份有限公司 | 数据传输方法及装置 |
CN104066142A (zh) * | 2013-03-22 | 2014-09-24 | ***通信集团湖南有限公司 | 一种确定无线传感器网络中数据传输路径的方法及装置 |
CN104735103A (zh) * | 2013-12-19 | 2015-06-24 | ***通信集团湖南有限公司 | 一种分布式数据的管理和接收方法、装置 |
-
2017
- 2017-03-30 CN CN201710202441.3A patent/CN106941532B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070127421A1 (en) * | 2005-12-07 | 2007-06-07 | D Amico Thomas V | Method and apparatus for broadcast in an ad hoc network using elected broadcast relay nodes |
CN104066142A (zh) * | 2013-03-22 | 2014-09-24 | ***通信集团湖南有限公司 | 一种确定无线传感器网络中数据传输路径的方法及装置 |
CN103412897A (zh) * | 2013-07-25 | 2013-11-27 | 中国科学院软件研究所 | 一种基于分布式结构的并行数据处理方法 |
CN104735103A (zh) * | 2013-12-19 | 2015-06-24 | ***通信集团湖南有限公司 | 一种分布式数据的管理和接收方法、装置 |
CN103685021A (zh) * | 2014-01-02 | 2014-03-26 | 网神信息技术(北京)股份有限公司 | 数据传输方法及装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107360261A (zh) * | 2017-09-07 | 2017-11-17 | 北京奇艺世纪科技有限公司 | 一种http请求处理方法、装置及电子设备 |
CN107360261B (zh) * | 2017-09-07 | 2020-07-10 | 北京奇艺世纪科技有限公司 | 一种http请求处理方法、装置及电子设备 |
CN112631788A (zh) * | 2021-01-06 | 2021-04-09 | 上海哔哩哔哩科技有限公司 | 数据传输方法及数据传输服务器 |
CN112631788B (zh) * | 2021-01-06 | 2023-11-28 | 上海哔哩哔哩科技有限公司 | 数据传输方法及数据传输服务器 |
Also Published As
Publication number | Publication date |
---|---|
CN106941532B (zh) | 2019-07-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11128603B2 (en) | Method and system for providing a transaction forwarding service in blockchain implementations | |
TWI675339B (zh) | 虛擬物品的分配方法、系統及伺服器 | |
CN102004673A (zh) | 多核处理器负载均衡的处理方法及*** | |
CN109359992A (zh) | 一种新型的区块链分区分片方式和装置 | |
CN104486236B (zh) | 负载分担的方法和路由设备 | |
CN113645278B (zh) | 一种区块链的跨链消息传输方法、设备、存储介质 | |
CN113472659B (zh) | 转发路径的确定方法、装置及sdn控制器 | |
CN107623731A (zh) | 一种任务调度方法、客户端、服务集群及*** | |
CN110555079A (zh) | 数据处理方法、装置、设备以及存储介质 | |
CN106941532A (zh) | 一种应用于分布式***的数据传输方法及装置 | |
CN101640823A (zh) | 一种多分析***分流的方法和设备 | |
CN104301241B (zh) | 一种soa动态负载分发方法与*** | |
CN109348434A (zh) | 一种场景信息的发送方法、发送装置及终端设备 | |
CN105933271B (zh) | 一种基于加密机的数据处理方法及装置 | |
CN103684792A (zh) | 一种oam的安全认证方法以及oam报文发送/接收装置 | |
CN107577700A (zh) | 数据库容灾的处理方法及装置 | |
CN106850686A (zh) | 一种云计算*** | |
CN105933270A (zh) | 一种云加密机的处理方法及装置 | |
CN106302432B (zh) | 一种基于车联网的通信装置及控制方法 | |
CN106921588A (zh) | 一种流量控制方法、装置及设备 | |
CN104378426A (zh) | 一种用于实时信息分发***的负载均衡方法 | |
CN109525553B (zh) | 一种url请求的传输保护方法、中间设备、服务器及*** | |
CN109711842A (zh) | 一种平行链定期汇合的区块链网络的账本记账方法 | |
CN105763617A (zh) | 一种负载均衡方法和*** | |
CN116112572A (zh) | 一种业务处理方法、装置、网络设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |