CN111935242A - 数据传输方法、装置、服务器以及存储介质 - Google Patents
数据传输方法、装置、服务器以及存储介质 Download PDFInfo
- Publication number
- CN111935242A CN111935242A CN202010687828.4A CN202010687828A CN111935242A CN 111935242 A CN111935242 A CN 111935242A CN 202010687828 A CN202010687828 A CN 202010687828A CN 111935242 A CN111935242 A CN 111935242A
- Authority
- CN
- China
- Prior art keywords
- server
- data
- distribution
- reading
- distribution server
- 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
Images
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
-
- 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/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
- H04L67/5682—Policies or rules for updating, deleting or replacing the stored data
-
- 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/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本公开关于一种数据传输方法、装置、服务器以及存储介质,属于数据传输技术领域,该方法包括:向数据源服务器发送对目标数据的数据读取请求,接收数据源服务器返回读取指示信息,按照读取指示信息携带的读取进度,从上层分发服务器读取目标数据。本公开数据源服务器基于分发节点树来响应分发服务器的数据需求,由于分发节点树表示对目标数据的读取进度快慢,因此,通过指示分发服务器从其上层分发服务器中读取数据,使得分发服务器执行数据的传输,数据源服务器只需完成分发节点树信息的维护以及向分发服务器分发节点信息的过程,无需进行数据的传输,减小了数据源服务器的所需带宽以及数据源服务器所需数量,极大的减小了资源的消耗。
Description
技术领域
本公开涉及数据传输技术领域,尤其涉及一种数据传输方法、装置、服务器以及存储介质。
背景技术
随着互联网技术的不断发展,短视频业务逐渐进入人们的生活。短视频业务领域内涉及到大量的数据传输,例如,为实现业务推送的数据传输,具体包括:分发服务器通过数据源服务器获取大量的用户数据,基于该用户数据以及机器学习模型确定用户对应的推送内容,再从数据源服务器拉取完整的推送内容。在这个过程中,需要通过分发服务器和数据源服务器对用户数据以及推送内容进行数据的在线传输,再进行后续的业务推送。
目前,数据传输方法通常为:通过kafka(卡夫卡)服务器集群进行数据的在线传输,相应过程可以:多个分发服务器想要获取用户数据或获取推送内容时,可以向kafka服务器集群发送数据获取请求,则服务器集群中的数据源服务器,对多个分发服务器的数据获取请求进行处理和数据传输。其中,kafka是一种高吞吐量的分布式发布订阅消息系统。
上述技术中,由于设置的分发服务器数量很多,需要大量的用户数据且会产生大量的推送内容,导致数据的在线传输量很大,通过服务器集群传输数据,其所需的传输带宽很大,所需的服务器数量很多,资源消耗巨大。
发明内容
本公开提供一种数据传输方法、装置、服务器以及存储介质,可以减小数据源服务器的所需带宽以及数据源服务器所需数量,减小了资源的消耗。本公开的技术方案如下:
根据本公开实施例的第一方面,提供一种数据传输方法,应用于数据系统的分发服务器,该分发服务器用于向客户端进行数据分发,该方法包括:
向该数据系统中的数据源服务器发送对目标数据的数据读取请求,该数据源服务器用于存储数据;
接收该数据源服务器响应于该数据读取请求返回的读取指示信息,该读取指示信息用于指示该分发服务器按照该读取指示信息所携带的读取进度从上层分发服务器进行读取;
按照该读取进度,从该上层分发服务器中读取该目标数据。
在一种可能的实现方式中,该上层分发服务器包括该分发服务器的父节点服务器和祖父节点服务器,按照该读取进度,从该上层分发服务器中读取该目标数据包括:
从该分发服务器的父节点服务器中,按照该读取进度,读取该父节点服务器中存储的目标数据;
若该目标数据读取失败,则从该分发服务器的祖父节点服务器中,按照该读取进度,读取该祖父节点服务器中存储的目标数据。
在一种可能的实现方式中,该上层分发服务器包括该分发服务器的父节点服务器和祖父节点服务器,该按照该读取进度,从该上层分发服务器中读取该目标数据包括:
从该分发服务器的祖父节点服务器中,按照该读取进度,读取该祖父节点服务器中存储的目标数据;
若该目标数据读取失败,则从该分发服务器的父节点服务器中,按照该读取进度,读取该父节点服务器中存储的目标数据。
在一种可能的实现方式中,该上层分发服务器包括该分发服务器的父节点服务器和祖父节点服务器,该按照该读取进度,从该上层分发服务器中读取该目标数据包括:
在该祖父节点服务器和该父节点服务器中,确定目标分发服务器,所述目标分发服务器为所述祖父节点服务器和所述父节点服务器中负载小的分发服务器;
从该目标分发服务器中,按照该读取进度,读取该目标分发服务器中存储的目标数据;
若该目标数据读取失败,则从除该目标分发服务器的另一分发服务器中,按照该读取进度,读取该另一分发服务器中存储的目标数据。
在一种可能的实现方式中,该按照该读取进度,从该上层分发服务器中读取该目标数据之后,该方法还包括:
若数据读取成功,则根据所读取到的数据,生成该目标数据的新的读取进度;
向该数据源服务器发送该新的读取进度;
若数据读取失败,则确定被读取失败的上层分发服务器;
向该数据源服务器发送分发服务器删除请求,该分发服务器删除请求用于指示该数据源服务器删除该被读取失败的上层分发服务器。
根据本公开实施例的第二方面,提供一种数据传输方法,应用于数据系统的数据源服务器,该数据源服务器用于存储数据,该方法包括:
响应于该数据系统中分发服务器对目标数据的数据读取请求,从分发节点树中,确定该分发服务器的上层分发服务器,该分发节点树用于表示多个分发服务器的读取进度排序;
获取该分发服务器对该目标数据的读取进度;
向该分发服务器发送读取指示信息,该读取指示信息用于指示该分发服务器按照该读取进度从该上层分发服务器进行读取。
在一种可能的实现方式中,该响应于分发服务器对目标数据的数据读取请求,从分发节点树中,确定该分发服务器的上层分发服务器包括:
响应于该分发服务器对目标数据的数据读取请求,获取该数据读取请求携带的分发服务器标识;
从该分发节点树中,基于该分发服务器标识,确定与该分发服务器标识相连接的上一层分发服务器以及与该上一层分发服务器相连接的上一层分发服务器中的至少一项,作为该上层分发服务器。
在一种可能的实现方式中,该响应于分发服务器对目标数据的数据读取请求之前,该方法还包括:
基于二叉树结构以及该多个分发服务器,构建初始分发节点树,该初始分发节点树用于表示多个分发服务器之间的层级关系;
响应于该目标数据对应分发节点树的确定请求,基于该多个分发服务器分别对该目标数据的读取进度,确定该读取进度由快到慢的顺序;
在初始分发节点树中按照该顺序,依次排列该多个分发服务器,得到该分发节点树。
在一种可能的实现方式中,该在初始分发节点树中按照该顺序,依次排列该多个分发服务器,得到该分发节点树之后,该方法还包括:
每隔目标时间段,根据该多个分发服务器的读取进度,更新该分发节点树中多个分发服务器的层级关系。
在一种可能的实现方式中,该根据该多个分发服务器的读取进度,更新该分发节点树中多个分发服务器的层级关系包括:
在该分发节点树中,按照该读取进度由快到慢的顺序重新排列该多个分发服务器,得到更新后的分发节点树。
在一种可能的实现方式中,该向该分发服务器发送读取指示信息之后,该方法还包括下述任一项:
获取该分发服务器返回的新的读取进度,基于该新的读取进度,更新该分发服务器的读取进度;
获取该分发服务器发送的分发服务器删除请求,从该分发节点树中删除被读取失败的上层分发服务器,该分发服务器删除请求用于指示该数据源服务器删除该被读取失败的上层分发服务器。
在一种可能的实现方式中,该响应于分发服务器对目标数据的数据读取请求之前,该方法还包括:
响应于该目标数据的数据写入请求,将该目标数据写入消息队列的多个分块中。
在一种可能的实现方式中,该读取进度采用分块序列号与在该分块内的偏移地址来表示。
根据本公开实施例的第三方面,提供一种数据传输装置,应用于数据系统的分发服务器,该分发服务器用于向客户端进行数据分发,该装置包括:
发送单元,被配置为执行向该数据系统中的数据源服务器发送对目标数据的数据读取请求,该数据源服务器用于存储数据;
接收单元,被配置为执行接收该数据源服务器响应于该数据读取请求返回的读取指示信息,该读取指示信息用于指示该分发服务器按照该读取指示信息所携带的读取进度从上层分发服务器进行读取;
读取单元,被配置为执行按照该读取进度,从该上层分发服务器中读取该目标数据。
在一种可能的实现方式中,该上层分发服务器包括该分发服务器的父节点服务器和祖父节点服务器,该读取单元,被配置为执行:
从该分发服务器的父节点服务器中,按照该读取进度,读取该父节点服务器中存储的目标数据;
若该目标数据读取失败,则从该分发服务器的祖父节点服务器中,按照该读取进度,读取该祖父节点服务器中存储的目标数据。
在一种可能的实现方式中,该上层分发服务器包括该分发服务器的父节点服务器和祖父节点服务器,该读取单元,还被配置为执行:
从该分发服务器的祖父节点服务器中,按照该读取进度,读取该祖父节点服务器中存储的目标数据;
若该目标数据读取失败,则从该分发服务器的父节点服务器中,按照该读取进度,读取该父节点服务器中存储的目标数据。
在一种可能的实现方式中,该上层分发服务器包括该分发服务器的父节点服务器和祖父节点服务器,该读取单元,还被配置为执行:
在该祖父节点服务器和该父节点服务器中,确定目标分发服务器,所述目标分发服务器为所述祖父节点服务器和所述父节点服务器中负载小的分发服务器;
从该目标分发服务器中,按照该读取进度,读取该目标分发服务器中存储的目标数据;
若该目标数据读取失败,则从除该目标分发服务器的另一分发服务器中,按照该读取进度,读取该另一分发服务器中存储的目标数据。
在一种可能的实现方式中,该装置还包括:
生成单元,被配置为执行若数据读取成功,则根据所读取到的数据,生成该目标数据的新的读取进度;
发送单元,还被配置为执行向该数据源服务器发送该新的读取进度;
确定单元,被配置为执行若数据读取失败,则确定被读取失败的上层分发服务器;
发送单元,还被配置为执行向该数据源服务器发送分发服务器删除请求,该分发服务器删除请求用于指示该数据源服务器删除该被读取失败的上层分发服务器。
根据本公开实施例的第四方面,提供一种数据传输装置,应用于数据系统的数据源服务器,该数据源服务器用于存储数据,该装置包括:
确定单元,被配置为执行响应于该数据系统中分发服务器对目标数据的数据读取请求,从分发节点树中,确定该分发服务器的上层分发服务器,该分发节点树用于表示多个分发服务器的读取进度排序;
获取单元,被配置为执行获取该分发服务器对该目标数据的读取进度;
发送单元,被配置为执行向该分发服务器发送读取指示信息,该读取指示信息用于指示该分发服务器按照该读取进度从该上层分发服务器进行读取。
在一种可能的实现方式中,该确定单元,被配置为执行:
响应于该分发服务器对目标数据的数据读取请求,获取该数据读取请求携带的分发服务器标识;
从该分发节点树中,基于该分发服务器标识,确定与该分发服务器标识相连接的上一层分发服务器以及与该上一层分发服务器相连接的上一层分发服务器中的至少一项,作为该上层分发服务器。
在一种可能的实现方式中,该装置还包括:
构建单元,被配置为执行基于二叉树结构以及该多个分发服务器,构建初始分发节点树,该初始分发节点树用于表示多个分发服务器之间的层级关系;
顺序确定单元,被配置为执行响应于该目标数据对应分发节点树的确定请求,基于该多个分发服务器分别对该目标数据的读取进度,确定该读取进度由快到慢的顺序;
排列单元,被配置为执行在该初始分发节点树中按照该顺序,依次排列该多个分发服务器,得到该分发节点树。
在一种可能的实现方式中,该装置还包括:
更新单元,被配置为执行每隔目标时间段,根据该多个分发服务器的读取进度,更新该分发节点树中多个分发服务器的层级关系。
在一种可能的实现方式中,该更新单元,被配置为执行:
在该分发节点树中,按照读取进度由快到慢的顺序重新排列该多个分发服务器,得到更新后的分发节点树。
在一种可能的实现方式中,该装置还包括下述任一项:
读取进度更新单元,被配置为执行获取该分发服务器返回的新的读取进度,基于该新的读取进度,更新该分发服务器的读取进度;
删除单元,被配置为执行获取该分发服务器发送的分发服务器删除请求,从该分发节点树中删除被读取失败的上层分发服务器,该分发服务器删除请求用于指示该数据源服务器删除该被读取失败的上层分发服务器。
在一种可能的实现方式中,该装置还包括:
数据写入单元,被配置为执行响应于该目标数据的数据写入请求,将该目标数据写入消息队列的多个分块中。
在一种可能的实现方式中,该读取进度采用分块序列号与在该分块内的偏移地址来表示。
根据本公开实施例的第五方面,提供一种数据传输方法,该方法包括:
数据系统的分发服务器向该数据系统中的数据源服务器发送对目标数据的数据读取请求,该分发服务器用于向客户端进行数据分发,该数据源服务器用于存储数据;
该数据源服务器响应于该分发服务器对该目标数据的数据读取请求,从分发节点树中,确定该分发服务器的上层分发服务器,该分发节点树用于表示多个分发服务器的读取进度排序,获取该分发服务器对该目标数据的读取进度,向该分发服务器发送读取指示信息,该读取指示信息用于指示该分发服务器按照该读取进度从该上层分发服务器进行读取;
该分发服务器接收该数据源服务器响应于该数据读取请求返回的读取指示信息;
该分发服务器按照该读取进度,从该上层分发服务器中读取该目标数据。
根据本公开实施例的第六方面,提供一种数据系统,该数据系统包括分发服务器和数据源服务器,其中,
该分发服务器用于向该数据源服务器发送对目标数据的数据读取请求,接收该数据源服务器响应于该数据读取请求返回的读取指示信息,该读取指示信息用于指示该分发服务器按照该读取指示信息所携带的读取进度从上层分发服务器进行读取,按照该读取进度,从该上层分发服务器中读取该目标数据;
该数据源服务器用于响应于该分发服务器对该目标数据的数据读取请求,从分发节点树中,确定该分发服务器的上层分发服务器,该分发节点树用于表示多个分发服务器的读取进度排序,获取该分发服务器对该目标数据的读取进度,向该分发服务器发送读取指示信息,该读取指示信息用于指示该分发服务器按照该读取进度从该上层分发服务器进行读取。
根据本公开实施例的第七方面,提供一种服务器,该服务器包括:
一个或多个处理器;
用于存储该处理器可执行指令的存储器;
其中,该处理器被配置为执行该指令,以实现上述的数据传输方法。
根据本公开实施例的第八方面,提供一种计算机可读存储介质,该计算机可读存储介质包括:当该计算机可读存储介质中的指令由服务器的处理器执行时,使得服务器能够执行上述的数据传输方法。
根据本公开实施例的第九方面,提供了一种计算机程序,该计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中,计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备能够执行上述的数据传输方法。
本公开的实施例提供的技术方案至少带来以下有益效果:
本公开实施例提供的技术方案,通过在任一个分发服务器有数据需求时,数据源服务器基于分发节点树的形式来响应其数据需求,由于分发节点树能够表示各个分发服务器对目标数据的读取进度快慢,因此,通过指示分发服务器从其上层分发服务器中读取数据,使得分发服务器执行数据的传输,在上述方案中,数据源服务器只需完成分发节点树信息的维护以及向分发服务器分发节点信息的过程,无需进行数据的传输,减小了数据源服务器的所需带宽以及数据源服务器所需数量,极大的减小了资源的消耗。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是根据一示例性实施例示出的一种数据传输方法的实施环境示意图;
图2是根据一示例性实施例示出的一种数据传输方法的流程图;
图3是根据一示例性实施例示出的一种数据传输方法的流程图;
图4是根据一示例性实施例示出的一种数据传输方法的流程图;
图5是根据一示例性实施例示出的一种分发节点树的示意图;
图6是根据一示例性实施例示出的一种读取数据的流程图;
图7是根据一示例性实施例示出的一种数据传输装置的框图;
图8是根据一示例性实施例示出的一种数据传输装置的框图;
图9是根据一示例性实施例示出的一种服务器的框图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
本公开所涉及的数据可以为经用户授权或者经过各方充分授权的数据。
图1是本公开实施例提供的一种数据传输方法的实施环境示意图,参见图1,该实施环境中包括:数据系统,该数据系统包括数据源服务器101与多个分发服务器102。
数据源服务器101与多个分发服务器102可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式文件系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。数据源服务器101与多个分发服务器102可以通过有线或无线通信方式进行直接或间接的连接,本申请实施例对此不作限定。可选地,数据源服务器101的数量可以为一个或多个,本申请实施例对此不加以限定。
数据源服务器101用于表示存储数据的服务器,具体用于响应于数据系统中分发服务器对目标数据的数据读取请求,从分发节点树中,确定该分发服务器的上层分发服务器,该分发节点树用于表示多个分发服务器的读取进度排序,获取该分发服务器对该目标数据的读取进度,向该分发服务器发送读取指示信息,该读取指示信息用于指示该分发服务器按照该读取进度从该上层分发服务器进行读取。
多个分发服务器102用于表示向客户端进行数据分发的服务器,对于多个分发服务器中的任一个分发服务器,具体用于向数据系统中的数据源服务器发送对目标数据的数据读取请求,接收该数据源服务器响应于该数据读取请求返回的读取指示信息,读取指示信息用于指示该分发服务器按照该读取指示信息所携带的读取进度从上层分发服务器进行读取,按照该读取进度,从该上层分发服务器中读取该目标数据。
图2是根据一示例性实施例示出的一种数据传输方法的流程图,如图2所示,该方法应用于数据系统的分发服务器,该分发服务器用于向客户端进行数据分发,包括以下步骤:
在步骤201中,分发服务器向该数据系统中的数据源服务器发送对目标数据的数据读取请求,该数据源服务器用于存储数据。
在步骤202中,分发服务器接收该数据源服务器响应于该数据读取请求返回的读取指示信息,该读取指示信息用于指示该分发服务器按照该读取指示信息所携带的读取进度从上层分发服务器进行读取。
在步骤203中,分发服务器按照该读取进度,从该上层分发服务器中读取该目标数据。
本公开实施例提供的技术方案,通过在任一个分发服务器有数据需求时,数据源服务器基于分发节点树的形式来响应其数据需求,由于分发节点树能够表示各个分发服务器对目标数据的读取进度快慢,因此,通过指示分发服务器从其上层分发服务器中读取数据,使得分发服务器执行数据的传输,在上述方案中,数据源服务器只需完成分发节点树信息的维护以及向分发服务器分发节点信息的过程,无需进行数据的传输,减小了数据源服务器的所需带宽以及数据源服务器所需数量,极大的减小了资源的消耗。
图3是根据一示例性实施例示出的一种数据传输方法的流程图,如图3所示,该方法应用于数据系统的数据源服务器,该数据源服务器用于存储数据,包括以下步骤:
在步骤301中,数据源服务器响应于该数据系统中分发服务器对目标数据的数据读取请求,从分发节点树中,确定该分发服务器的上层分发服务器,该分发节点树用于表示多个分发服务器的读取进度排序。
在步骤302中,数据源服务器获取该分发服务器对该目标数据的读取进度。
在步骤303中,数据源服务器向该分发服务器发送读取指示信息,该读取指示信息用于指示该分发服务器按照该读取进度从该上层分发服务器进行读取。
本公开实施例提供的技术方案,通过在任一个分发服务器有数据需求时,数据源服务器基于分发节点树的形式来响应其数据需求,由于分发节点树能够表示各个分发服务器对目标数据的读取进度快慢,因此,通过指示分发服务器从其上层分发服务器中读取数据,使得分发服务器执行数据的传输,在上述方案中,数据源服务器只需完成分发节点树信息的维护以及向分发服务器分发节点信息的过程,无需进行数据的传输,减小了数据源服务器的所需带宽以及数据源服务器所需数量,极大的减小了资源的消耗。
上述图2至图3所示仅为本公开的基本流程,下面基于一种具体实施方式,来对本公开提供的方案进行进一步阐述,图4是根据一示例性实施例示出的一种数据传输方法的流程图,参见图4,该方法包括:
在步骤401中,数据源服务器基于二叉树结构以及多个分发服务器,构建初始分发节点树,该初始分发节点树用于表示多个分发服务器之间的层级关系。
其中,数据源服务器用于存储数据。分发服务器用于向客户端进行数据分发。二叉树结构是指每个节点最多有两个子节点的树结构。在二叉树结构中,位于二叉树结构最顶端的节点为根节点,直接位于一个节点之上的节点为该节点的父节点,直接位于一个节点之下的节点为该节点的子节点,位于一个节点之上两层的节点为该节点的祖父节点(也可以称为爷爷节点)。初始分发节点树是指第一次建立的分发节点树。应理解地,初始分发节点树的构建过程可以在实施本方案之前提前完成。
在一种可能的实现方式中,数据源服务器可以确定出该数据源服务器对应的多个分发服务器,在二叉树结构中,按照多个分发服务器的默认顺序,依次排列该多个分发服务器,得到初始分发节点树。可选地,默认顺序可以是按照多个分发服务器的顺序编号依次排列得到的顺序,或者,默认顺序也可以为随机顺序,随机顺序是指将多个分发服务器随机排列得到的顺序。本公开实施例对选用何种顺序不作限定。
可选地,数据源服务器可以采用消息队列的方式来存储数据。其中,消息队列用于表示在传输过程中存储消息数据的队列,通常消息队列基于时间序列存储数据,该时间序列是指按照时间先后顺序排序所形成的数列。需要说明的是,该多个分块可以基于消息队列以及目标分块大小确定得到,该目标分块大小可以为预先设定的分块大小。按照消息队列的时间序列,将该消息队列划分为目标分块大小的多个分块。例如,该目标分块大小可以为32MB,若消息队列大小为1G(1024MB),则该消息队列可以划分为1024/32=32个分块。分块可以采用block来表示,每个分块可以采用分块序列号(block id)作为分块标识,id(identification,身份标识符)用于表示分块的唯一身份标识,该id为序列号1、2等。例如,(block 1)可以表示序列号1对应的分块、(block 2)可以表示序列号2对应的分块。存储至消息队列内的数据可以采用分块序列号与在该分块内的偏移地址来表示,如(block id,block offset),block offset用于表示偏移地址,偏移地址是指数据存储位置相对于分块首位置的偏移量。例如,对于字节长度为10位的分块,0000000000可以表示偏移量为0对应的偏移地址,0000001003可以表示偏移量为1003对应的偏移地址。
在一种可能的实现方式中,数据源服务器响应于该目标数据的数据写入请求,将该目标数据写入消息队列的多个分块中,相应过程可以为:数据源服务器响应于该目标数据的数据写入请求,将该目标数据依次写入消息队列的多个分块中,若当前分块写满数据,则在与当前分块序列号相邻的下一个分块中继续写入该目标数据。若该多个分块均写满数据,则可以新建一个或多个分块,基于前一个分块的分块序列号,确定新建的一个或多个分块的分块序列号,将目标数据继续写入该新建的一个或多个分块内。后续采用目标数据来表示分块服务器从数据源服务器上待读取的数据,目标数据可以为由各种数字符号、字母符号组成的文字、图形、音频、视频等。
在步骤402中,数据源服务器响应于目标数据对应分发节点树的确定请求,基于该多个分发服务器对该目标数据的读取进度,确定该读取进度由快到慢的顺序。
其中,读取进度用于表示分发服务器读取目标数据的进度,读取进度也可以称为读取点。读取进度也可以采用分块序列号与在该分块内的偏移地址来表示,如(block id,block offset),此时block offset可以表示读取进度对应数据存储位置相对于分块首位置的偏移量。例如,若分发服务器对应的读取进度为(block 3,0000001003),则表示该分发服务器读取到了第3个分块内偏移量为1003对应偏移地址的数据。
在一种可能的实现方式中,数据源服务器确定读取进度顺序的过程可以为:数据源服务器获取到目标数据对应分发节点树的确定请求后,根据该多个分发服务器和目标数据查询分发服务器信息库,得到多个分发服务器对目标数据的读取进度,根据该多个分发服务器对目标数据的读取进度由快到慢进行排序,得到读取进度由快到慢的顺序。其中,数据源服务器可以关联有分发服务器信息库,该分发服务器信息库用于记录该多个分发服务器对不同数据的读取进度。
例如,对于分发服务器1和分发服务器2,若分发服务器1的读取进度为(block 3,0000000003),分发服务器2的读取进度为(block 3,0000001003),可知,该两个分发服务器均读取到第3个分块,而分发服务器2的读取偏移量1003大于该分发服务器2的读取偏移量3,因此分发服务器2的读取进度快,分发服务器1的读取进度慢。又如,若分发服务器1的读取进度为(block 4,0000000003),分发服务器2的读取进度为(block 3,0000001003),由于分发服务器1已经读取到第4个分块,而分发服务器2读取到第3个分块,因此分发服务器1的读取进度快,分发服务器2的读取进度慢。
在步骤403中,数据源服务器在初始分发节点树中按照该顺序,依次排列该多个分发服务器,得到该分发节点树,分发节点树用于表示多个分发服务器的读取进度排序。
在一种可能的实现方式中,数据源服务器确定出该多个分发服务器读取进度由快到慢的顺序后,按照读取进度由快到慢的顺序,在初始分发节点树中由上层至下层依次排列该多个分发服务器,得到分发节点树。
例如,图5是根据一示例性实施例示出的一种分发节点树的示意图,如图5所示,在分发节点树中,该多个分发服务器可以采用Node0、Node1……Node6等来表示,其中,Node0作为根节点位于二叉树结构最顶端的节点,Node1和Node2为Node0的子节点,Node0为Node1和Node2的父节点,图5中还包括了服务节点(Server),该服务节点用于表示本公开实施例中的数据源服务器。通过上述方法,按照读取进度由快到慢的顺序来排列分发服务器,可以保证读取进度最快的分发服务器位于分发节点树的顶端,进而保证读取数据最多的服务器作为分发节点树的根节点,从而保证实现安全可靠的数据分发。
在步骤404中,每隔目标时间段,数据源服务器根据该多个分发服务器的读取进度,更新该分发节点树中多个分发服务器的层级关系。
其中,目标时间段用于表示预先设定的固定时间段,如1秒或2秒。
在一种可能的实现方式中,每隔目标时间段,数据源服务器根据该多个分发服务器的读取进度,重新确定读取进度由快到慢的顺序,在该分发节点树中,按照该读取进度由快到慢的顺序,由上层至下层重新排列该多个分发服务器,得到更新后的分发节点树,从而达到更新该分发节点树中多个分发服务器的层级关系的效果。另外,若数据源服务器确定出多个分发服务器的读取进度顺序相同,则无需更新分发节点树,维持当前分发节点树中多个分发服务器的顺序即可,也即是维持当前分发节点树的层级关系。
可选地,数据源服务器在更新分发节点树的过程中,若该分发节点树中存在下线的分发服务器,则数据源服务器将该下线的分发服务器删除,根据分发节点树中其余分发服务器的读取进度,重新确定读取进度由快到慢的顺序,在该分发节点树中,按照该读取进度由快到慢的顺序,由上层至下层重新排列该多个其余分发服务器,得到更新后的分发节点树。
应理解地,步骤404中数据源服务器更新该分发节点树的过程与前述步骤及后述步骤无前后次序要求,在本公开实施例中,每隔目标时间段,数据源服务器自动执行更新该分发节点树的过程。
需要说明的是,上述步骤402至步骤403中,以数据源服务器接收目标数据对应分发节点树的确定请求时,存在已经读取该目标数据的分发服务器为例进行说明,进而可以确定出读取进度由快到慢的顺序,确定目标数据对应分发节点树。在另一种可能的实现方式中,若上述数据源服务器接收目标数据对应分发节点树的确定请求时,不存在已经读取该目标数据的分发服务器,则多个分发服务器的读取进度均相同,均为零,此时可以维持初始分发节点树,在后续多个分发服务器进行数据读取的过程中,执行步骤404,同样可以得到分发节点树。
对于分发节点树中任一分发服务器,该分发服务器均可以向数据源服务器发起数据读取请求,进而基于数据源服务器返回的数据读取指示,来进行数据读取,具体过程参见步骤405至步骤413。需要说明的是,数据源服务器基于分发节点树分发目标数据时,只向分发节点树中的根节点服务器发送目标数据,由根节点服务器向其子节点服务器发送目标数据,进而分发节点树中每个分发服务器想要获取目标数据时,均由自身的上层分发服务器来发送目标数据。通过这种方式,充分利用了分发服务器的带宽,降低了数据源服务器的数据传输量,大大降低了数据源服务器的数据输出压力。
在步骤405中,分发服务器向数据源服务器发送对目标数据的数据读取请求。
在一种可能的实现方式中,对于分发节点树中任一台分发服务器,若该分发服务器想要读取目标数据时,基于目标数据标识与该分发服务器标识,生成数据读取请求,该数据读取请求携带目标数据标识与分发服务器标识,向数据源服务器发送对目标数据的数据读取请求。
在另一种可能的实现方式中,对于分发节点树中任一台分发服务器,若该分发服务器想要读取目标数据时,基于目标数据标识以及目标数据标识和消息队列标识的对应关系,确定目标数据标识对应的消息队列标识,根据消息队列标识和分发服务器标识,生成数据读取请求,该数据读取请求携带消息队列标识与分发服务器标识,向数据源服务器发送对目标数据的数据读取请求。在该过程中,分发服务器可以存储有目标数据标识和消息队列标识的对应关系,在向数据源服务器发送数据读取请求时,可以携带有消息队列标识,进而数据源服务器可以直接确定对应的消息队列,提高了数据源服务器处理数据读取请求的效率。
在步骤406中,数据源服务器响应于分发服务器对目标数据的数据读取请求,从分发节点树中,确定该分发服务器的上层分发服务器。
其中,该上层分发服务器包括该分发服务器的父节点服务器和祖父节点服务器。父节点服务器是指位于该分发服务器上一层的分发服务器,祖父节点服务器也可以称为爷爷节点服务器,祖父节点服务器是指位于该分发服务器上两层的分发服务器。
在一种可能的实现方式中,数据源服务器响应于分发服务器对目标数据的数据读取请求,根据该数据读取请求,确定该数据读取请求对应的消息队列,并确定该数据读取请求对应分发服务器的上层分发服务器。
可选地,数据源服务器确定消息队列的过程可以为下述任一项:一种可能的实现方式中,数据源服务器获取该数据读取请求携带的目标数据标识,根据该目标数据标识以及目标数据标识和消息队列标识的对应关系,确定该目标数据标识对应的消息队列标识,也就确定出该数据读取请求对应的消息队列。在该方法中,数据源服务器可以存储有目标数据标识和消息队列标识的对应关系,根据该数据读取请求携带的目标数据标识可以快速确定出其对应的消息队列。又一种可能的实现方式中,数据源服务器获取该数据读取请求携带的消息队列标识,根据该消息队列标识,确定该消息队列标识对应的消息队列,作为该数据读取请求对应的消息队列。在该方法中,由分发服务器确定其对应的消息队列标识,数据源服务器可以直接确定对应的消息队列,提高了数据源服务器处理数据读取请求的效率。本公开实施例对选用何种方式确定消息队列不作限定。
可选地,数据源服务器确定上层分发服务器的过程可以为下述任一项:一种可能的实现方式中,从该分发节点树中,基于该分发服务器标识,确定与该分发服务器标识相连接的上一层分发服务器以及与该上一层分发服务器相连接的上一层分发服务器中的至少一项,也即是确定该分发服务器的父节点服务器和祖父节点服务器中的至少一项,作为该分发服务器在该分发节点树中的上层分发服务器。在该方法中,上层分发服务器可以为父节点服务器或祖父节点服务器,通过父节点服务器或祖父节点服务器向其后代节点服务器传输数据,可以实现以树状的形式分发数据,降低了数据源服务器的输出压力。又一种可能的实现方式中,数据源服务器确定该分发服务器的上层分发服务器的过程也可以包括:从该分发节点树中,基于该分发服务器标识,确定与该分发服务器标识相连接的上一层分发服务器以及与该上一层分发服务器相连接的上一层分发服务器,也即是确定该分发服务器的父节点服务器和祖父节点服务器,将该父节点服务器和祖父节点服务器作为该分发服务器在该分发节点树中的上层分发服务器。在该方法中,上层分发服务器包括父节点服务器和祖父节点服务器两项,通过向分发服务器发送其父节点服务器以及祖父节点服务器,确保分发服务器能够读取到数据,也确保了父节点服务器或祖父节点服务器能够安全可靠的向其后代节点服务器传输数据,在一个分发服务器传输失败时可以由另一个分发服务器来进行数据传输,提高了数据传输的可靠性。本公开实施例对上层分发服务器具体包括一项或两项不作限定。
例如,如图5所示,若该分发服务器标识为Node5,则与该分发服务器标识相连接的上一层分发服务器为Node2,与该上一层分发服务器相连接的上一层分发服务器为Node0,也即是确定出该分发服务器对应的父节点服务器和祖父节点服务器。
需要说明的是,上述步骤406以有上层分发服务器的分发服务器为例进行说明。特别的地,数据源服务器响应于分发服务器对目标数据的数据读取请求,根据该数据读取请求携带的分发服务器标识,可以确定该分发服务器在分发节点树中的位置,若该分发服务器为分发节点树的根节点服务器,则数据源服务器向该根节点服务器传输目标数据。另外,数据源服务器确定出数据读取请求携带的目标数据后,若该分发节点树中不存在已获取该目标数据分发服务器,则由数据源服务器向根节点服务器传输该目标数据,再由根节点服务器向其余分发服务器传输该目标数据。在该过程中,根节点服务器可以为待读取目标数据的分发服务器中的任一分发服务器。
在步骤407中,数据源服务器获取该分发服务器对该目标数据的读取进度。
在一种可能的实现方式中,数据源服务器获取该数据读取请求携带的分发服务器标识,根据分发服务器标识在数据源服务器关联的分发服务器信息库中查询,得到分发服务器标识对应的读取进度,作为该分发服务器对该目标数据的读取进度。
应理解地,若该分发服务器上次已开始读取目标数据,但未读取完成,则该读取进度为上次读取结束时刻对应的读取进度。若该分发服务器为初次读取目标数据,则该读取进度为目标数据的起始点。
在步骤408中,数据源服务器向该分发服务器发送读取指示信息,该读取指示信息用于指示该分发服务器按照该读取进度从该上层分发服务器进行读取。
在一种可能的实现方式中,数据源服务器获取到该分发服务器的上层分发服务器和该分发服务器对该目标数据的读取进度后,根据该分发服务器的上层分发服务器和该分发服务器对该目标数据的读取进度生成读取指示信息,将该读取指示信息发送至分发服务器,以指示该分发服务器按照该读取进度从该上层分发服务器进行读取。
在步骤409中,分发服务器接收该数据源服务器响应于该数据读取请求返回的读取指示信息,读取指示信息用于指示该分发服务器按照该读取指示信息所携带的读取进度从上层分发服务器进行读取。
在一种可能的实现方式中,分发服务器接收该数据源服务器返回的读取指示信息后,获取该读取指示信息携带的分发服务器在分发节点树中的上层分发服务器和分发服务器对该目标数据的读取进度,以进行后续数据读取过程。
在步骤410中,分发服务器按照该读取进度,从该上层分发服务器中读取该目标数据。
在一种可能的实现方式中,分发服务器接收到该数据源服务器返回的该分发服务器在分发节点树中的上层分发服务器和该分发服务器对该目标数据的读取进度后,按照该分发服务器对该目标数据的读取进度,从该上层分发服务器中读取该目标数据,并将读取到的目标数据存储至该分发服务器,便于后续在其后代节点服务器想要读取目标数据时,可以为其后代节点服务器分发目标数据。
可选地,分发服务器从上层分发服务器读取目标数据的过程可以包括下述任一项:一种可能的实现方式中,分发服务器从该分发服务器的父节点服务器中,按照该读取进度,读取该父节点服务器中存储的目标数据,若该目标数据读取失败,则从该分发服务器的祖父节点服务器中,按照该读取进度,读取该祖父节点服务器中存储的目标数据。由此可以看出,通过向分发服务器发送其父节点服务器以及祖父节点服务器,能够保证父节点服务器或祖父节点服务器安全可靠的向其后代节点服务器传输数据,在一个分发服务器传输失败时可以由另一个分发服务器来进行数据传输,并且,通过先读取父节点服务器,若读取失败才读取祖父节点服务器的方式,优先向与分发服务器读取进度相近的父节点服务器读取数据,对于父节点服务器来说,每个父节点服务器所连接的负载最多为两个,负载较小,能够提高数据传输的效率,避免了多个分发服务器均向祖父节点服务器读取数据时由于负载过多而造成传输慢的问题。又一种可能的实现方式中,分发服务器从该分发服务器的祖父节点服务器中,按照该读取进度,读取该祖父节点服务器中存储的目标数据,若该目标数据读取失败,则从该分发服务器的父节点服务器中,按照该读取进度,读取该父节点服务器中存储的目标数据。在该过程中,先读取祖父节点服务器,若读取失败才读取父节点服务器,由于祖父节点服务器的读取进度比父节点服务器的读取进度快,能够使该分发服务器更快的读取到目标数据,提高了分发服务器读取数据的效率。另一种可能的实现方式中,分发服务器在该祖父节点服务器和该父节点服务器中,确定目标分发服务器,目标分发服务器为该祖父节点服务器和该父节点服务器中负载小的分发服务器。从该目标分发服务器中,按照该读取进度,读取该目标分发服务器中存储的目标数据,若该目标数据读取失败,则从除该目标分发服务器的另一分发服务器中,按照该读取进度,读取该另一分发服务器中存储的目标数据。在该过程中,通过判断负载来确定目标分发服务器,能够选出负载最小的分发服务器,与负载最小的分发服务器进行数据传输,能够提高数据的传输效率,避免因负载多而造成传输慢的问题。
在步骤411中,若数据读取成功,则分发服务器根据所读取到的数据,生成该目标数据的新的读取进度,向该数据源服务器发送该新的读取进度,若数据读取失败,则确定被读取失败的上层分发服务器,向该数据源服务器发送分发服务器删除请求,该分发服务器删除请求用于指示该数据源服务器删除该被读取失败的上层分发服务器。
在一种可能的实现方式中,若数据读取成功,则分发服务器基于所读取到的数据,生成用新的读取进度,向该数据源服务器发送该新的读取进度,以指示该数据源服务器进行读取进度的更新。若目标数据读取失败,则分发服务器在分发节点树中确定被读取失败的上层分发服务器,基于该被读取失败的上层分发服务器标识,生成分发服务器删除请求,以指示该数据源服务器删除被读取失败的上层分发服务器。
在步骤412中,数据源服务器获取该分发服务器返回的新的读取进度,基于该新的读取进度,更新该分发服务器的读取进度。
在步骤413中,数据源服务器获取该分发服务器发送的分发服务器删除请求,从该分发节点树中删除该被读取失败的上层分发服务器。
应理解地,在一次数据读取过程中,上述步骤412与步骤413仅会出现其中一项。另外,在下个分发服务器请求读取数据时,通过每隔目标时间段的更新,可以自动为该下个分发服务器分配其对应的父节点服务器和祖父节点服务器。
例如,图6是根据一示例性实施例示出的一种数据读取流程示意图,如图6所示,分发服务器可以为读取节点(reader)服务器,数据源服务器可以为服务节点(Server),读取节点服务器A的数据读取流程主要分为三个步骤:第一步、读取节点服务器A向服务节点发送请求(Request),询问读取节点服务器A在分发节点树中父节点服务器和祖父节点服务器,以及读取节点服务器A在当前时刻的读取进度。服务节点确定并返回读取节点服务器A在分发节点树中父节点服务器B和祖父节点服务器C以及读取进度(block id,offset)。第二步、读取节点服务器A向父节点服务器B发送请求(Request),按照读取进度,从父节点服务器B(或祖父节点服务器C)上读取目标数据,并确定出新的读取进度。第三步、读取节点服务器A根据自身读取情况,生成数据读取结果,向服务节点发送数据读取结果,以指示服务节点执行读取进度更新或删除分发服务器的过程。
本公开实施例提供的技术方案,通过在任一个分发服务器有数据需求时,数据源服务器基于分发节点树的形式来响应其数据需求,由于分发节点树能够表示各个分发服务器对目标数据的读取进度快慢,因此,通过指示分发服务器从其上层分发服务器中读取数据,使得分发服务器执行数据的传输,在上述方案中,数据源服务器只需完成分发节点树信息的维护以及向分发服务器分发节点信息的过程,无需进行数据的传输,减小了数据源服务器的所需带宽以及数据源服务器所需数量,极大的减小了资源的消耗。另外,本公开实施例中通过设置二叉树结构的分发节点树,使得每个分发服务器所连接的负载最多为两个,每个分发服务器的输出数据最多为读取数据的两倍,减小了分发服务器的负载,能够提高数据传输的效率。由上述技术方案可以发现,数据源服务器的开销仅为轻量级的建树以及向分发服务器分发节点信息,极大的减小了数据源服务器的资源开销,并且,通过分发节点树来进行数据的传输,一个数据源服务器可以支持向多个分发服务器传输数据。
本公开实施例还提供了基于上述数据传输方法所进行的实际应用效果,通过使用8个数据源服务器,可以完成对2000个分发服务器的在线数据传输,每秒的数据传输量为150MB/s,并且还可以继续增加分发服务器的数量。相比较现有技术中,使用kafka服务器集群,按照所需带宽计算至少需要100个数据源服务器才能实现,极大的减小了资源消耗。
图7是根据一示例性实施例示出的一种数据传输装置的框图。参照图7,该装置包括发送单元701,接收单元702和读取单元703。
发送单元701,被配置为执行向该数据系统中的数据源服务器发送对目标数据的数据读取请求,该数据源服务器用于存储数据;
接收单元702,被配置为执行接收该数据源服务器响应于该数据读取请求返回的读取指示信息,该读取指示信息用于指示该分发服务器按照该读取指示信息所携带的读取进度从上层分发服务器进行读取;
读取单元703,被配置为执行按照该读取进度,从该上层分发服务器中读取该目标数据。
在一种可能的实现方式中,该上层分发服务器包括该分发服务器的父节点服务器和祖父节点服务器,该读取单元703,被配置为执行:
从该分发服务器的父节点服务器中,按照该读取进度,读取该父节点服务器中存储的目标数据;
若该目标数据读取失败,则从该分发服务器的祖父节点服务器中,按照该读取进度,读取该祖父节点服务器中存储的目标数据。
在一种可能的实现方式中,该上层分发服务器包括该分发服务器的父节点服务器和祖父节点服务器,该读取单元,还被配置为执行:
从该分发服务器的祖父节点服务器中,按照该读取进度,读取该祖父节点服务器中存储的目标数据;
若该目标数据读取失败,则从该分发服务器的父节点服务器中,按照该读取进度,读取该父节点服务器中存储的目标数据。
在一种可能的实现方式中,该上层分发服务器包括该分发服务器的父节点服务器和祖父节点服务器,该读取单元,还被配置为执行:
在该祖父节点服务器和该父节点服务器中,确定目标分发服务器,所述目标分发服务器为所述祖父节点服务器和所述父节点服务器中负载小的分发服务器;
从该目标分发服务器中,按照该读取进度,读取该目标分发服务器中存储的目标数据;
若该目标数据读取失败,则从除该目标分发服务器的另一分发服务器中,按照该读取进度,读取该另一分发服务器中存储的目标数据。
在一种可能的实现方式中,该装置还包括:
生成单元,被配置为执行若数据读取成功,则根据所读取到的数据,生成该目标数据的新的读取进度;
发送单元701,还被配置为执行向该数据源服务器发送该新的读取进度;
确定单元,被配置为执行若数据读取失败,则确定被读取失败的上层分发服务器;
发送单元701,还被配置为执行向该数据源服务器发送分发服务器删除请求,该分发服务器删除请求用于指示该数据源服务器删除该被读取失败的上层分发服务器。
本公开实施例提供的技术方案,通过在任一个分发服务器有数据需求时,数据源服务器基于分发节点树的形式来响应其数据需求,由于分发节点树能够表示各个分发服务器对目标数据的读取进度快慢,因此,通过指示分发服务器从其上层分发服务器中读取数据,使得分发服务器执行数据的传输,在上述方案中,数据源服务器只需完成分发节点树信息的维护以及向分发服务器分发节点信息的过程,无需进行数据的传输,减小了数据源服务器的所需带宽以及数据源服务器所需数量,极大的减小了资源的消耗。
关于上述实施例中的装置,其中各个单元执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图8是根据一示例性实施例示出的一种数据传输装置的框图。参照图8,该装置包括确定单元801,获取单元802和发送单元803。
确定单元801,被配置为执行响应于该数据系统中分发服务器对目标数据的数据读取请求,从分发节点树中,确定该分发服务器的上层分发服务器,该分发节点树用于表示多个分发服务器的读取进度排序;
获取单元802,被配置为执行获取该分发服务器对该目标数据的读取进度;
发送单元803,被配置为执行向该分发服务器发送读取指示信息,该读取指示信息用于指示该分发服务器按照该读取进度从该上层分发服务器进行读取。
在一种可能的实现方式中,该确定单元801,被配置为执行:
响应于该分发服务器对目标数据的数据读取请求,获取该数据读取请求携带的分发服务器标识;
从该分发节点树中,基于该分发服务器标识,确定与该分发服务器标识相连接的上一层分发服务器以及与该上一层分发服务器相连接的上一层分发服务器中的至少一项,作为该分发服务器在该分发节点树中的上层分发服务器。
在一种可能的实现方式中,该装置还包括:
构建单元,被配置为执行基于二叉树结构以及该多个分发服务器,构建初始分发节点树,该初始分发节点树用于表示多个分发服务器之间的层级关系;
顺序确定单元,被配置为执行响应于该目标数据对应分发节点树的确定请求,基于该多个分发服务器分别对该目标数据的读取进度,确定该读取进度由快到慢的顺序;
排列单元,被配置为执行在初始分发节点树中按照该顺序,依次排列该多个分发服务器,得到该分发节点树。
在一种可能的实现方式中,该装置还包括:
更新单元,被配置为执行每隔目标时间段,根据该多个分发服务器的读取进度,更新该分发节点树中多个分发服务器的层级关系。
在一种可能的实现方式中,该更新单元,被配置为执行:
在该分发节点树中,按照该读取进度由快到慢的顺序重新排列该多个分发服务器,得到更新后的分发节点树。
在一种可能的实现方式中,该装置还包括下述任一项:
读取进度更新单元,被配置为执行获取该分发服务器返回的新的读取进度,基于该新的读取进度,更新该分发服务器的读取进度;
删除单元,被配置为执行获取该分发服务器发送的分发服务器删除请求,从该分发节点树中删除该被读取失败的上层分发服务器,该分发服务器删除请求用于指示该数据源服务器删除该被读取失败的上层分发服务器。
在一种可能的实现方式中,该装置还包括:
数据写入单元,被配置为执行响应于该目标数据的数据写入请求,将该目标数据写入消息队列的多个分块中。
在一种可能的实现方式中,该读取进度采用分块序列号与在该分块内的偏移地址来表示。
本公开实施例提供的技术方案,通过在任一个分发服务器有数据需求时,数据源服务器基于分发节点树的形式来响应其数据需求,由于分发节点树能够表示各个分发服务器对目标数据的读取进度快慢,因此,通过指示分发服务器从其上层分发服务器中读取数据,使得分发服务器执行数据的传输,在上述方案中,数据源服务器只需完成分发节点树信息的维护以及向分发服务器分发节点信息的过程,无需进行数据的传输,减小了数据源服务器的所需带宽以及数据源服务器所需数量,极大的减小了资源的消耗。
关于上述实施例中的装置,其中各个单元执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图9是根据一示例性实施例示出的一种服务器的框图,该服务器900可因配置或性能不同而产生比较大的差异,可以包括一个或多个处理器(Central Processing Units,CPU)901和一个或多个的存储器902,其中,该一个或多个存储器902中存储有至少一条程序代码,该至少一条程序代码由该一个或多个处理器901加载并执行以实现上述各个方法实施例提供的数据传输方法。当然,该服务器900还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该服务器900还可以包括其他用于实现设备功能的部件,在此不做赘述。
在示例性实施例中,还提供了一种包括指令的存储介质,例如包括指令的存储器902,上述指令可由服务器900的处理器901执行以完成上述数据传输方法。可选地,存储介质可以是非临时性计算机可读存储介质,例如,该非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (10)
1.一种数据传输方法,其特征在于,应用于数据系统的分发服务器,所述分发服务器用于向客户端进行数据分发,所述方法包括:
向所述数据系统中的数据源服务器发送对目标数据的数据读取请求,所述数据源服务器用于存储数据;
接收所述数据源服务器响应于所述数据读取请求返回的读取指示信息,所述读取指示信息用于指示所述分发服务器按照所述读取指示信息所携带的读取进度从上层分发服务器进行读取;
按照所述读取进度,从所述上层分发服务器中读取所述目标数据。
2.根据权利要求1所述的数据传输方法,其特征在于,所述上层分发服务器包括所述分发服务器的父节点服务器和祖父节点服务器,所述按照所述读取进度,从所述上层分发服务器中读取所述目标数据包括:
从所述分发服务器的父节点服务器中,按照所述读取进度,读取所述父节点服务器中存储的目标数据;
若所述目标数据读取失败,则从所述分发服务器的祖父节点服务器中,按照所述读取进度,读取所述祖父节点服务器中存储的目标数据。
3.一种数据传输方法,其特征在于,应用于数据系统的数据源服务器,所述数据源服务器用于存储数据,所述方法包括:
响应于所述数据系统中分发服务器对目标数据的数据读取请求,从分发节点树中,确定所述分发服务器的上层分发服务器,所述分发节点树用于表示多个分发服务器的读取进度排序;
获取所述分发服务器对所述目标数据的读取进度;
向所述分发服务器发送读取指示信息,所述读取指示信息用于指示所述分发服务器按照所述读取进度从所述上层分发服务器进行读取。
4.根据权利要求3所述的数据传输方法,其特征在于,所述响应于分发服务器对目标数据的数据读取请求,从分发节点树中,确定所述分发服务器的上层分发服务器包括:
响应于所述分发服务器对目标数据的数据读取请求,获取所述数据读取请求携带的分发服务器标识;
从所述分发节点树中,基于所述分发服务器标识,确定与所述分发服务器标识相连接的上一层分发服务器以及与所述上一层分发服务器相连接的上一层分发服务器中的至少一项,作为所述上层分发服务器。
5.根据权利要求3所述的数据传输方法,其特征在于,所述响应于分发服务器对目标数据的数据读取请求之前,所述方法还包括:
基于二叉树结构以及所述多个分发服务器,构建初始分发节点树,所述初始分发节点树用于表示多个分发服务器之间的层级关系;
响应于所述目标数据对应分发节点树的确定请求,基于所述多个分发服务器分别对所述目标数据的读取进度,确定读取进度由快到慢的顺序;
在所述初始分发节点树中按照所述顺序,依次排列所述多个分发服务器,得到所述分发节点树。
6.一种数据传输装置,其特征在于,所述装置包括多个功能单元,所述多个功能单元用于实现如权利要求1至5中任一项所述的数据传输方法。
7.一种数据传输方法,其特征在于,所述方法包括:
数据系统的分发服务器向所述数据系统中的数据源服务器发送对目标数据的数据读取请求,所述分发服务器用于向客户端进行数据分发,所述数据源服务器用于存储数据;
所述数据源服务器响应于所述分发服务器对所述目标数据的数据读取请求,从分发节点树中,确定所述分发服务器的上层分发服务器,所述分发节点树用于表示多个分发服务器的读取进度排序,获取所述分发服务器对所述目标数据的读取进度,向所述分发服务器发送读取指示信息,所述读取指示信息用于指示所述分发服务器按照所述读取进度从所述上层分发服务器进行读取;
所述分发服务器接收所述数据源服务器响应于所述数据读取请求返回的读取指示信息;
所述分发服务器按照所述读取进度,从所述上层分发服务器中读取所述目标数据。
8.一种服务器,其特征在于,所述服务器包括:
一个或多个处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1至5中任一项所述的数据传输方法。
9.一种计算机可读存储介质,其特征在于,当所述计算机可读存储介质中的指令由服务器的处理器执行时,使得服务器能够执行如权利要求1至5中任一项所述的数据传输方法。
10.一种计算机程序,其特征在于,所述计算机程序包括计算机指令,所述计算机指令存储在计算机可读存储介质中,计算机设备的处理器从计算机可读存储介质读取所述计算机指令,处理器执行所述计算机指令,使得所述计算机设备能够执行如权利要求1至5中任一项所述的数据传输方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010687828.4A CN111935242B (zh) | 2020-07-16 | 2020-07-16 | 数据传输方法、装置、服务器以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010687828.4A CN111935242B (zh) | 2020-07-16 | 2020-07-16 | 数据传输方法、装置、服务器以及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111935242A true CN111935242A (zh) | 2020-11-13 |
CN111935242B CN111935242B (zh) | 2023-06-02 |
Family
ID=73313666
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010687828.4A Active CN111935242B (zh) | 2020-07-16 | 2020-07-16 | 数据传输方法、装置、服务器以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111935242B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113656095A (zh) * | 2021-08-06 | 2021-11-16 | 北京数码大方科技股份有限公司 | 配置数据的处理方法及装置 |
CN114760356A (zh) * | 2020-12-29 | 2022-07-15 | 北京金山云网络技术有限公司 | 数据读取请求处理方法、装置及数据读取请求处理系统 |
CN115002103A (zh) * | 2022-08-04 | 2022-09-02 | 正链科技(深圳)有限公司 | 一种分布式网络中数据极速传输的方法及系统 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050015511A1 (en) * | 2003-07-02 | 2005-01-20 | Nec Laboratories America, Inc. | Accelerated large data distribution in overlay networks |
US7171491B1 (en) * | 2000-01-25 | 2007-01-30 | Cisco Technology, Inc. | Methods and apparatus for managing data distribution in a network |
CN1941736A (zh) * | 2005-09-30 | 2007-04-04 | 西门子通信技术(北京)有限公司 | 一种内容分发系统及其用户请求重定向方法 |
CN101277248A (zh) * | 2007-03-26 | 2008-10-01 | 刘军波 | 一种网络数据分发方法及系统 |
CN102546525A (zh) * | 2010-12-07 | 2012-07-04 | 中国移动通信集团公司 | 一种多媒体内容分发方法、系统和装置 |
CN109547574A (zh) * | 2019-01-04 | 2019-03-29 | 平安科技(深圳)有限公司 | 一种数据传输方法及相关装置 |
CN110839061A (zh) * | 2019-10-16 | 2020-02-25 | 北京达佳互联信息技术有限公司 | 数据分发方法、装置及存储介质 |
CN110891079A (zh) * | 2018-09-11 | 2020-03-17 | 北京奇虎科技有限公司 | 文件分发方法、源服务器、节点服务器及文件分发系统 |
-
2020
- 2020-07-16 CN CN202010687828.4A patent/CN111935242B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7171491B1 (en) * | 2000-01-25 | 2007-01-30 | Cisco Technology, Inc. | Methods and apparatus for managing data distribution in a network |
US20050015511A1 (en) * | 2003-07-02 | 2005-01-20 | Nec Laboratories America, Inc. | Accelerated large data distribution in overlay networks |
CN1941736A (zh) * | 2005-09-30 | 2007-04-04 | 西门子通信技术(北京)有限公司 | 一种内容分发系统及其用户请求重定向方法 |
CN101277248A (zh) * | 2007-03-26 | 2008-10-01 | 刘军波 | 一种网络数据分发方法及系统 |
CN102546525A (zh) * | 2010-12-07 | 2012-07-04 | 中国移动通信集团公司 | 一种多媒体内容分发方法、系统和装置 |
CN110891079A (zh) * | 2018-09-11 | 2020-03-17 | 北京奇虎科技有限公司 | 文件分发方法、源服务器、节点服务器及文件分发系统 |
CN109547574A (zh) * | 2019-01-04 | 2019-03-29 | 平安科技(深圳)有限公司 | 一种数据传输方法及相关装置 |
CN110839061A (zh) * | 2019-10-16 | 2020-02-25 | 北京达佳互联信息技术有限公司 | 数据分发方法、装置及存储介质 |
Non-Patent Citations (2)
Title |
---|
CHING-LUNG CHANG*: ""The Design of P2P-based VoD System with VCR Functionality"", 《2012 INTERNATIONAL CONFERENCE ON INFORMATION SECURITY AND INTELLIGENT CONTROL》 * |
郝娉婷: ""软件定义内容分发网络中的关键技术研究"", 《中国博士学位论文全文数据库 信息科技辑》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114760356A (zh) * | 2020-12-29 | 2022-07-15 | 北京金山云网络技术有限公司 | 数据读取请求处理方法、装置及数据读取请求处理系统 |
CN113656095A (zh) * | 2021-08-06 | 2021-11-16 | 北京数码大方科技股份有限公司 | 配置数据的处理方法及装置 |
CN113656095B (zh) * | 2021-08-06 | 2023-08-04 | 北京数码大方科技股份有限公司 | 配置数据的处理方法及装置 |
CN115002103A (zh) * | 2022-08-04 | 2022-09-02 | 正链科技(深圳)有限公司 | 一种分布式网络中数据极速传输的方法及系统 |
CN115002103B (zh) * | 2022-08-04 | 2022-11-29 | 正链科技(深圳)有限公司 | 一种分布式网络中数据极速传输的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111935242B (zh) | 2023-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111935242B (zh) | 数据传输方法、装置、服务器以及存储介质 | |
CN108564164B (zh) | 一种基于spark平台的并行化深度学习方法 | |
US11296940B2 (en) | Centralized configuration data in a distributed file system | |
CN108173774B (zh) | 一种客户端的升级方法及系统 | |
CN108390933B (zh) | 消息分发方法、装置、服务器及存储介质 | |
CN111447248A (zh) | 一种文件传输的方法及装置 | |
CN104954468A (zh) | 资源的分配方法及装置 | |
CN104052803A (zh) | 一种去中心化的分布式渲染方法及渲染系统 | |
CN111770355B (zh) | 媒体服务器确定方法、装置、服务器以及存储介质 | |
CN105868231A (zh) | 缓存数据的更新方法及装置 | |
JP5960820B2 (ja) | ツリー構造の管理方法、情報処理システム、及び、プログラム | |
CN106357778A (zh) | 一种会话信息的共享方法、装置及系统 | |
CN105868251A (zh) | 一种缓存数据更新方法及装置 | |
US11265182B2 (en) | Messaging to enforce operation serialization for consistency of a distributed data structure | |
US20200412795A1 (en) | Merge trees for collaboration | |
CN108540505B (zh) | 一种内容更新方法及装置 | |
CN111083204B (zh) | 文件传输方法、装置及存储介质 | |
KR20180073128A (ko) | 데이터 블록 비교에 의한 데이터 업데이트 방법 | |
CN110839061B (zh) | 数据分发方法、装置及存储介质 | |
CN116684416A (zh) | 一种网元集群中的镜像分发方法、装置和系统 | |
CN110286854B (zh) | 群成员管理和群消息处理的方法、装置、设备及存储介质 | |
CN111586438B (zh) | 一种业务数据的处理方法、装置及系统 | |
CN112804313B (zh) | 基于跨域边缘节点的数据同步方法、装置、设备及介质 | |
CN110300140A (zh) | 用于云分发网络中内容更新的方法、刷新客户端及网络节点 | |
CN114860726A (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 |