CN112748879B - 数据获取方法、***、装置、计算机设备和存储介质 - Google Patents
数据获取方法、***、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN112748879B CN112748879B CN202011622404.6A CN202011622404A CN112748879B CN 112748879 B CN112748879 B CN 112748879B CN 202011622404 A CN202011622404 A CN 202011622404A CN 112748879 B CN112748879 B CN 112748879B
- Authority
- CN
- China
- Prior art keywords
- mirror image
- data
- cache node
- data packet
- client
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种数据获取方法、***、装置、计算机设备和存储介质。该方法包括:调度器接收第一客户端发送的数据获取请求,若分布式镜像仓库中存在空闲的镜像缓存节点,则从空闲的镜像缓存节点中确定至少一个镜像缓存节点,调用至少一个镜像缓存节点从分布式镜像仓库中的分布式存储***中,获取数据获取请求中的数据包标识对应的至少一个数据块,并将至少一个数据块组成数据包发送给第一客户端。在本方法中,基于分布式存储***对各个镜像数据进行分块存储,实现服务能力和存储容量的水平扩展,解决单机存储容量问题,且,通过基于分布式存储***部署多个镜像缓存节点,极大的减少分布式存储***的带宽压力,缩短数据包的读取延迟。
Description
技术领域
本申请涉及互联网技术领域,特别是涉及一种数据获取方法、***、装置、计算机设备和存储介质。
背景技术
Linux容器(Linux containers,LXC)是一种内核虚拟化技术,可以提供轻量级的虚拟化,以便隔离进程和资源,现在比较成型的技术就是通过Docker容器技术来简化软件的部署和发布。容器技术的核心在于通过镜像将运行环境打包,在容器镜像的发布管理中,镜像仓库负责镜像的存储和分发。
现有技术基于Docker Registry开源私有镜像仓库、磁盘文件***实现整个镜像文件的存储和分发,并对Docker Registry开源私有镜像仓库进行了扩展和增强,例如,VMware Harbor、Sonatype Nexus、SUSE Portus等镜像库。
但是,上述基于磁盘文件***的镜像仓库,是以整个镜像文件为单位进行存储或分发,导致镜像仓库进程读取延迟大,无法满足高并发高吞吐镜像请求需要。
发明内容
基于此,有必要针对上述技术问题,提供一种能够减少读取延迟的数据获取方法、***、装置、计算机设备和存储介质。
第一方面,提供一种数据获取方法,该方法包括:
接收第一客户端发送的数据获取请求;数据获取请求包括数据包标识;
若分布式镜像仓库中存在空闲的镜像缓存节点,则从空闲的镜像缓存节点中确定至少一个镜像缓存节点;
调用至少一个镜像缓存节点从分布式镜像仓库中的分布式存储***中,获取数据包标识对应的至少一个数据块;分布式存储***用于对各个镜像数据进行分块存储;
将至少一个数据块组成数据包发送给第一客户端。
在本实施例中,分布式存储***用于对各个镜像数据进行分块存储,实现服务能力和存储容量的水平扩展,解决单机存储容量问题,且,通过基于分布式存储***部署多个镜像缓存节点,极大的减少分布式存储***的带宽压力,缩短数据包的读取延迟。
在其中一个实施例中,上述方法还包括:
若分布式镜像仓库中不存在空闲的镜像缓存节点,则根据数据包标识确定至少一个第二客户端;第二客户端为存储有数据包标识对应数据块的其他客户端;
从至少一个第二客户端中获取数据包标识对应的至少一个数据块;
将至少一个数据块组成数据包发送给第一客户端。
在本实施例中,调度器在镜像缓存节点占用的情况下,还可以从其他客户端节点进行数据包的获取,缩短数据包的读取延迟,从而满足高并发场景下的镜像操作。
在其中一个实施例中,上述方法还包括:
确定各镜像缓存节点的资源是否正在被调度;
若镜像缓存节点的资源未被调度,则确定镜像缓存节点为空闲的镜像缓存节点。
在本实施例中,调度器可以根据各镜像缓存节点的资源调度情况确定空闲的镜像缓存节点,以执行相应的数据包获取操作,避免了由于镜像缓存节点资源被占用,数据包获取任务一直被挂起的情况,该判断方式简单有效,提高了数据包获取的效率。
在其中一个实施例中,上述调用镜像缓存节点从分布式存储***中获取数据包标识对应的数据块,包括:
向各镜像缓存节点发送数据获取请求,以使镜像缓存节点根据数据获取请求中的数据包标识,分别向分布式存储***获取数据包标识对应的数据块;
接收镜像缓存节点返回的数据块。
在本实施例中,调度器调用镜像缓存节点从分布式***中获取数据块,通过镜像缓存节点向分布式存储***获取数据包,极大的减少分布式存储***的带宽压力。
第二方面,提供一种数据获取***,该***包括:分布式存储***、多个镜像缓存节点、调度器、以及第一客户端;
第一客户端,用于向调度器发送第一数据获取请求;第一数据获取请求包括数据包标识;
调度器,用于在分布式镜像仓库中存在空闲的镜像缓存节点的情况下,从空闲的镜像缓存节点中确定至少一个镜像缓存节点;
调度器,还用于调用镜像缓存节点从分布式镜像仓库中的分布式存储***中,获取数据包标识对应的至少一个数据块,并将至少一个数据块组成数据包发送给第一客户端;分布式存储***用于对各个镜像数据进行分块存储。
在本实施例中,分布式存储***用于对各个镜像数据进行分块存储,实现服务能力和存储容量的水平扩展,解决单机存储容量问题,且,通过基于分布式存储***部署多个镜像缓存节点,通过调度器确定并调用空闲的镜像缓存节点,向分布式存储***获取数据包,极大的减少分布式存储***的带宽压力。
在其中一个实施例中,上述***还包括多个第二客户端;
调度器,还用于在分布式镜像仓库中不存在空闲的镜像缓存节点的情况下,根据数据包标识确定至少一个第二目标客户端,并第二目标客户端发送第一数据获取请求;第二目标客户端为存储有数据包标识对应数据块的第二客户端;
第二目标客户端,用于向调度器发送数据包标识对应的至少一个数据块;
调度器,还用于将至少一个数据块组成数据包发送给第一客户端。
在本实施例中,调度器在镜像缓存节点占用的情况下,还可以从其他客户端节点进行数据包的获取,缩短数据包的读取延迟,从而满足高并发场景下的镜像操作。
在其中一个实施例中,上述数据获取请求中还包括第一客户端的客户端标识;
镜像缓存节点,还用于根据第一数据获取请求中的客户端标识生成用户标识,并向分布式存储***发送包括用户标识和数据包标识的第二数据获取请求;
分布式存储***,用于根据用户标识对镜像缓存节点进行合法性验证,若镜像缓存节点合法,则根据数据包标识向镜像缓存节点反馈对应的数据块。
在本实施例中,分布式存储***可以对镜像缓存节点进行合法性认证,增加了分布式存储***中数据的安全性和保密性。
第三方面,提供一种数据获取装置,该装置包括:
接收模块,用于接收第一客户端发送的数据获取请求;数据获取请求包括数据包标识;
确定模块,用于若分布式镜像仓库中存在空闲的镜像缓存节点,则从空闲的镜像缓存节点中确定至少一个镜像缓存节点;
获取模块,用于调用至少一个镜像缓存节点从分布式镜像仓库中的分布式存储***中,获取数据包标识对应的至少一个数据块;分布式存储***用于对各个镜像数据进行分块存储;
发送模块,用于将至少一个数据块组成数据包发送给第一客户端。
第四方面,提供一种计算机设备,包括存储器和处理器,该存储器存储有计算机程序,该处理器执行该计算机程序时实现上述第一方面任一所述的数据获取方法。
第五方面,提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述第一方面任一所述的数据获取方法。
上述数据获取方法、***、装置、计算机设备和存储介质,调度器接收第一客户端发送的数据获取请求,若分布式镜像仓库中存在空闲的镜像缓存节点,则从空闲的镜像缓存节点中确定至少一个镜像缓存节点,调用至少一个镜像缓存节点从分布式镜像仓库中的分布式存储***中,获取数据获取请求中的数据包标识对应的至少一个数据块,并将至少一个数据块组成数据包发送给第一客户端。在本方法中,基于分布式存储***对各个镜像数据进行分块存储,实现服务能力和存储容量的水平扩展,解决单机存储容量问题,且,通过基于分布式存储***部署多个镜像缓存节点,极大的减少分布式存储***的带宽压力,缩短数据包的读取延迟。
附图说明
图1为一个实施例中数据获取方法的应用环境图;
图2为一个实施例中数据获取***的结构示意图;
图3为一个实施例中数据获取方法的流程示意图;
图4为一个实施例中数据获取方法的流程示意图;
图5为一个实施例中数据获取方法的流程示意图;
图6为一个实施例中数据获取方法的流程示意图;
图7为一个实施例中数据获取方法的流程示意图;
图8为一个实施例中数据获取装置的结构框图;
图9为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的数据获取方法,可以应用于如图1所示的应用环境中。图1给出了数据获取***的结构示意图,其中,第一客户端101通过网络与调度器102进行通信,调度器102通过网络与镜像缓存节点103通信,镜像缓存节点103通过网络与分布式存储***104通信。其中,第一客户端101可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备;调度器102可以为部署负载均衡器的处理器;镜像缓存节点103为基于容器技术构建的分布式镜像仓库的缓存节点;分布式存储***104为后端分布式存储,实现服务能力和存储容量的水平扩展,解决单机存储容量问题,可选地,分布式存储***104可以为ParaStor300S。
在一个实施例中,如图1所示,提供了一种数据获取***,该***包括:分布式存储***、多个镜像缓存节点、调度器、以及第一客户端;
第一客户端,用于向调度器发送第一数据获取请求;第一数据获取请求包括数据包标识;
调度器,用于在分布式镜像仓库中存在空闲的镜像缓存节点的情况下,从空闲的镜像缓存节点中确定至少一个镜像缓存节点;
调度器,还用于调用镜像缓存节点从分布式镜像仓库中的分布式存储***中,获取数据包标识对应的至少一个数据块,并将至少一个数据块组成数据包发送给第一客户端;分布式存储***用于对各个镜像数据进行分块存储。
在本实施例中,第一客户端向调度器发送包括数据包标识、第一客户端标识的第一数据获取请求,调度器在接收到数据获取请求之后,在分布式镜像仓库中存在空闲的镜像缓存节点的情况下,从空闲的镜像缓存节点中确定至少一个镜像缓存节点,调用镜像缓存节点从分布式镜像仓库中的分布式存储***中,获取数据包标识对应的至少一个数据块,接收至少一个镜像缓存节点返回的数据块,并将至少一个数据块组成数据包返回给第一客户端,完成第一客户端的一次数据获取。
可选地,在大规模集群下,为了实现对多个镜像缓存节点的流量负载均衡,调度器中还可以部署DNS负载均衡处理器,DNS负载均衡处理器用于获取各镜像缓存节点的资源调度情况,并确定空闲的镜像缓存节点。
在本实施例中,分布式存储***用于对各个镜像数据进行分块存储,实现服务能力和存储容量的水平扩展,解决单机存储容量问题,且,通过基于分布式存储***部署多个镜像缓存节点,通过调度器确定并调用空闲的镜像缓存节点,向分布式存储***获取数据包,极大的减少分布式存储***的带宽压力。
在一个实施例中,如图2所示,上述***还包括多个第二客户端105;
调度器,还用于在分布式镜像仓库中不存在空闲的镜像缓存节点的情况下,根据数据包标识确定至少一个第二目标客户端,并向第二目标客户端发送第一数据获取请求;第二目标客户端为存储有数据包标识对应数据块的第二客户端;
第二目标客户端,用于向调度器发送数据包标识对应的至少一个数据块;
调度器,还用于将至少一个数据块组成数据包发送给第一客户端。
在本实施例中,调度器根据各镜像缓存节点的资源占用情况,确定当前不存在空闲的镜像缓存节点,此时,调度器可以获取与第一客户端所处同一网络中的其他客户端的数据存储情况,即获取其他客户端所存储的数据块标识,在确定存在存储有第一客户端所需的数据块标识的情况下,将当前客户端确认为第二客户端。可选地,根据第一客户端所需的数据块的个数,可以确定至少一个第二客户端。
可选地,调度器也可以在接收到第一客户端的数据获取请求的情况下,直接向其他客户端获取数据获取请求中数据包标识对应的数据块,由于其他客户端中的数据块为已有数据块,从其他客户端获取数据块可以降低数据获取延迟,减少镜像缓存节点并发操作。从技术方面,本实施例可以基于Dragonfly框架来实现P2P方式拉取镜像。
在本实施例中,调度器在镜像缓存节点占用的情况下,还可以从其他客户端节点进行数据包的获取,缩短数据包的读取延迟,从而满足高并发场景下的镜像操作。
在其中一个实施例中,上述数据获取请求中还包括第一客户端的客户端标识;
镜像缓存节点,还用于根据第一数据获取请求中的客户端标识生成用户标识,并向分布式存储***发送包括用户标识和数据包标识的第二数据获取请求;
分布式存储***,用于根据用户标识对镜像缓存节点进行合法性验证,若镜像缓存节点合法,则根据数据包标识向镜像缓存节点反馈对应的数据块。
其中,用户标识可以为根据客户端标识生成的随机字符串。在本实施例中,分布式存储***在接收到第二数据获取请求之后,不确定发送第二数据获取请求的就是镜像缓存节点,此时,分布式存储***可以对第二数据获取请求进行解析,判断第二数据获取请求中是否包括用户标识,若不包括用户标识,则确定当前访问节点为非法节点;若第二数据获取请求包括用户标识,则确定当前访问节点为合法节点。从技术实现角度说明,本实施例可以采用Docker Registry官方提供的basic auth的base64位编码方式进行合法性认证。
在本实施例中,分布式存储***在确定当前访问节点为合法节点之后,根据第二数据获取请求中的数据包标识或数据块标识,向访问节点返回相应的数据块,这里访问节点即为镜像缓存节点,镜像缓存节点在获取到相应的数据块之后,将该数据库返回至调度器中,可选地,镜像缓存节点在向调度器返回数据块之后,可以删除当前用户标识并释放资源,等待下一次的数据获取请求本实施例对此不做限定。
在本实施例中,分布式存储***可以对镜像缓存节点进行合法性认证,增加了分布式存储***中数据的安全性和保密性。
下面将通过实施例并结合附图具体地对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。需要说明的是,本申请图3-图7实施例提供的数据获取方法,其执行主体为数据获取***中的调度器,也可以是数据获取装置,该数据获取装置可以通过软件、硬件或者软硬件结合的方式成为调度器的部分或全部。下述方法实施例中,均以执行主体是调度器为例来进行说明。
在一个实施例中,如图3所示,提供了一种数据获取方法,应用于上述实施例提供的数据获取***,涉及的是调度器接收第一客户端发送的数据获取请求,若分布式镜像仓库中存在空闲的镜像缓存节点,则从空闲的镜像缓存节点中确定至少一个镜像缓存节点,调用至少一个镜像缓存节点从分布式镜像仓库中的分布式存储***中,获取数据获取请求中的数据包标识对应的至少一个数据块,并将至少一个数据块组成数据包发送给第一客户端的过程,包括以下步骤:
S201、接收第一客户端发送的数据获取请求;数据获取请求包括数据包标识。
其中,数据获取请求为第一客户端发送的获取所需数据包的请求,可选地,该数据获取请求中包括数据包标识、第一客户端的客户端标识;由于本方法的应用场景为分布式镜像仓库,数据包标识可以包括至少一个数据块的标识。
在本实施例中,调度器接收第一客户端发送的数据获取请求,其中第一客户端为任意一个当前发起数据获取请求的客户端,这里我们可以默认第一客户端为当前时间段第一个向调度器发送数据获取请求的客户端,本实施例对此不做限定。
S202、若分布式镜像仓库中存在空闲的镜像缓存节点,则从空闲的镜像缓存节点中确定至少一个镜像缓存节点。
其中,分布式镜像仓库中包括分布式存储***和多个镜像缓存节点,各镜像缓存节点用于接收调度器发送的数据获取请求,并根据获取请求执行相应的数据包获取操作。
在本实施例中,调度器在接收到第一客户端发送的数据获取请求之后,需要确定至少一个镜像缓存节点来根据数据获取请求获取数据包。在确定镜像缓存节点之前,调度器可以根据各镜像缓存节点的资源状态来确定是否存在空闲的镜像缓存节点执行该数据包获取操作。若分布式镜像仓库中存在空闲的镜像缓存节点,调度器确定至少一个空闲的镜像缓存节点用于执行数据包获取操作,本实施例对此不做限定。
S203、调用至少一个镜像缓存节点从分布式镜像仓库中的分布式存储***中,获取数据包标识对应的至少一个数据块;分布式存储***用于对各个镜像数据进行分块存储。
其中,镜像数据被分块存储至分布式存储***中,因此,调度器需要根据第一客户端的数据包标识确定所需获取到数据块的数量,从而确定调用相应数量的空闲镜像缓存节点执行获取数据块操作。
在本实施例中,调度器根据数据块的数量,调用相应数量的镜像缓存节点从分布式存储***中获取数据块,示例地,调度器确定数据包标识包括两个数据块标识,则调用两个镜像缓存节点,分别从分布式存储***中获取两个数据块标识对应的数据块,本实施例对此不做限定。
S204、将至少一个数据块组成数据包发送给第一客户端。
在本实施例中,调度器在获取到至少一个镜像缓存节点返回的数据块之后,将数据包进行打包处理,并返回至第一客户端。示例地,调度器接收到两个镜像缓存节点发送的数据块,将两个数据块打包生成数据包,并将数据包返回至第一客户端,本实施例对此不做限定。
上述数据获取方法中,调度器接收第一客户端发送的数据获取请求,若分布式镜像仓库中存在空闲的镜像缓存节点,则从空闲的镜像缓存节点中确定至少一个镜像缓存节点,调用至少一个镜像缓存节点从分布式镜像仓库中的分布式存储***中,获取数据获取请求中的数据包标识对应的至少一个数据块,并将至少一个数据块组成数据包发送给第一客户端。在本方法中,基于分布式存储***对各个镜像数据进行分块存储,实现服务能力和存储容量的水平扩展,解决单机存储容量问题,且,通过基于分布式存储***部署多个镜像缓存节点,极大的减少分布式存储***的带宽压力,缩短数据包的读取延迟。
在高并发的场景下,镜像缓存节点也存在被占用的情况,在这种情况下,在一个实施例中,如图4所示,上述方法还包括:
S301、若分布式镜像仓库中不存在空闲的镜像缓存节点,则根据数据包标识确定至少一个第二客户端;第二客户端为存储有数据包标识对应数据块的其他客户端。
其中,第二客户端指的是从与第一客户端处于同一网络中的其他客户端中,确定的存储有第一客户端所需要的数据块的客户端。
在本实施例中,调度器根据各镜像缓存节点的资源占用情况,确定当前不存在空闲的镜像缓存节点,此时,调度器可以获取与第一客户端所处同一网络中的其他客户端的数据存储情况,即获取其他客户端所存储的数据块标识,在确定存在存储有第一客户端所需的数据块标识的情况下,将当前客户端确定为第二客户端,可选地,根据第一客户端所需的数据块,可以确定至少一个第二客户端。可选地,调度器也可以在接收到第一客户端的数据获取请求的情况下,直接向其他客户端获取数据获取请求中数据包标识对应的数据块,由于其他客户端中的数据块为已有数据块,从其他客户端获取数据块可以降低数据获取延迟,减少镜像缓存节点并发操作。
S302、从至少一个第二客户端中获取数据包标识对应的至少一个数据块。
在本实施例中,可选地,数据包标识包括至少一个数据块标识,调度器在确定第二客户端之后,根据数据块标识,从相应的第二客户端中获取数据块标识对应的数据块。
S303、将至少一个数据块组成数据包发送给第一客户端。
在本实施例中,调度器在获取到至少一个数据块之后,将数据包进行打包处理,并返回至第一客户端。示例地,调度器接收到两个数据块,将两个数据块打包生成数据包,并将数据包返回至第一客户端,本实施例对此不做限定。
在本实施例中,调度器在镜像缓存节点占用的情况下,还可以从其他客户端节点进行数据包的获取,减少镜像缓存节点的访问需求,缩短数据包的读取延迟,从而满足高并发场景下的镜像操作。
调度器在确定空闲镜像缓存节点时,可以通过确定镜像缓存节点的资源状态来确定镜像缓存节点是否被占用,在一个实施例中,如图5所示,上述方法还包括:
S401、确定各镜像缓存节点的资源是否正在被调度。
在本实施例中,调度器可以通过向镜像缓存节点发送任务请求来确定当前镜像缓存节点的资源是否正在被占用。例如,调度器向镜像缓存节点发送任务请求,镜像缓存节点在接收到任务请求之后,根据自身的资源调度情况向调度器返回请求响应,调度器根据返回的请求响应确定当前镜像缓存节点的资源是否正在被调度,本实施例对此不做限定。
S402、若镜像缓存节点的资源未被调度,则确定镜像缓存节点为空闲的镜像缓存节点。
在本实施例中,以上述步骤S401提供的例子来说明,若调度器收到的请求响应为第一值,则说明当前镜像缓存节点的资源空闲,那么调度器可以将该镜像缓存节点确定为空闲的镜像缓存节点。可选地,第一值可以为指定的字符串,例如“0”,或者其他,本实施例对此不做限定。
在本实施例中,调度器可以根据各镜像缓存节点的资源调度情况确定空闲的镜像缓存节点,以执行相应的数据包获取操作,避免了由于镜像缓存节点资源被占用,数据包获取任务一直被挂起的情况,该判断方式简单有效,提高了数据包获取的效率。
调度器调用镜像缓存节点从分布式存储***中获取数据包标识对应的数据块,在一个实施例中,如图6所示,上述调用镜像缓存节点从分布式存储***中获取数据包标识对应的数据块,包括:
S501、向各镜像缓存节点发送数据获取请求,以使镜像缓存节点根据数据获取请求中的数据包标识,分别向分布式存储***获取数据包标识对应的数据块。
S502、接收镜像缓存节点返回的数据块。
在本实施例中,调度器向镜像缓存节点发送数据获取请求,镜像缓存节点可以根据该数据获取请求中的数据包标识,从分布式存储***中获取数据包标识对应的数据块;可选地,数据包标识包括至少一个数据块标识,镜像缓存节点则根据数据块标识从分布式存储***中获取数据块标识对应的数据块,并向调度器返回数据块,调度器接收各镜像缓存节点返回的数据块。本实施例对此不做限定。
在本实施例中,调度器调用镜像缓存节点从分布式***中获取数据块,通过镜像缓存节点向分布式存储***获取数据包,极大的减少分布式存储***的带宽压力。
为了更好的说明上述方法,如图7所示,本实施例提供一种数据获取方法,具体包括:
S101、第一客户端向调度器发送第一数据获取请求;第一数据获取请求中包括客户端标识和数据包标识;
S102、调度器确定各镜像缓存节点的资源是否被正在被调度,若镜像缓存节点的资源未被调度,则确定镜像缓存节点为空闲的镜像缓存节点;
S103、调度器从空闲的镜像缓存节点中确定至少一个镜像缓存节点,向镜像缓存节点发送第二数据获取请求;第二数据获取请求中包括客户端标识和数据包标识;
S104、镜像缓存节点根据第二数据获取请求中的客户端标识生成用户标识,并向分布式存储***发送包括用户标识和数据包标识的第三数据获取请求;
S105、分布式存储***根据用户标识对镜像缓存节点进行合法性验证;
S106、若镜像缓存节点合法,分布式存储***则根据数据包标识向镜像缓存节点反馈对应的数据块;
S107、镜像缓存节点向调度器返回数据块;
S108、调度器确定各镜像缓存节点的资源是否被正在被调度,若分布式镜像仓库中不存在空闲的镜像缓存节点,则根据数据包标识确定至少一个第二客户端;
S109、调度器向至少一个第二客户端发送第二数据获取请求;
S110、第二客户端根据第二数据获取请求中的数据包标识,向调度器返回至少一个数据块;
S111、调度器将至少一个数据块组成数据包发送给第一客户端。
在本实施例中,分布式存储***用于对各个镜像数据进行分块存储,实现服务能力和存储容量的水平扩展,解决单机存储容量问题,且,通过基于分布式存储***部署多个镜像缓存节点,通过镜像缓存节点向分布式存储***获取数据包,极大的减少分布式存储***的带宽压力,进一步地,在镜像缓存节点占用的情况下,还可以从其他客户端节点进行数据包的获取,缩短数据包的读取延迟,从而满足高并发场景下的镜像操作。
上述实施例提供的数据获取方法,其实现原理和技术效果与上述方法实施例类似,在此不再赘述。
应该理解的是,虽然图3-7的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图3-7中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图8所示,提供了一种数据获取装置,包括:接收模块01、确定模块02、获取模块03和发送模块04,其中:
接收模块01,用于接收第一客户端发送的数据获取请求;数据获取请求包括数据包标识;
确定模块02,用于若分布式镜像仓库中存在空闲的镜像缓存节点,则从空闲的镜像缓存节点中确定至少一个镜像缓存节点;
获取模块03,用于调用至少一个镜像缓存节点从分布式镜像仓库中的分布式存储***中,获取数据包标识对应的至少一个数据块;分布式存储***用于对各个镜像数据进行分块存储;
发送模块04,用于将至少一个数据块组成数据包发送给第一客户端。
在一个实施例中,上述确定模块02,还用于若分布式镜像仓库中不存在空闲的镜像缓存节点,则根据数据包标识确定至少一个第二客户端;第二客户端为存储有数据包标识对应数据块的其他客户端;从至少一个第二客户端中获取数据包标识对应的至少一个数据块;将至少一个数据块组成数据包发送给第一客户端。
在一个实施例中,上述确定模块02,还用于确定各镜像缓存节点的资源是否正在被调度;若镜像缓存节点的资源未被调度,则确定镜像缓存节点为空闲的镜像缓存节点。
在一个实施例中,获取模块03,用于向各镜像缓存节点发送数据获取请求,以使镜像缓存节点根据数据获取请求中的数据包标识,分别向分布式存储***获取数据包标识对应的数据块;接收镜像缓存节点返回的数据块。
关于数据获取装置的具体限定可以参见上文中对于数据获取方法的限定,在此不再赘述。上述数据获取装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图9所示。该计算机设备包括通过***总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***和计算机程序。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、运营商网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种数据获取方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
接收第一客户端发送的数据获取请求;数据获取请求包括数据包标识;
若分布式镜像仓库中存在空闲的镜像缓存节点,则从空闲的镜像缓存节点中确定至少一个镜像缓存节点;
调用至少一个镜像缓存节点从分布式镜像仓库中的分布式存储***中,获取数据包标识对应的至少一个数据块;分布式存储***用于对各个镜像数据进行分块存储;
将至少一个数据块组成数据包发送给第一客户端。
上述实施例提供的计算机设备,其实现原理和技术效果与上述方法实施例类似,在此不再赘述。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
接收第一客户端发送的数据获取请求;数据获取请求包括数据包标识;
若分布式镜像仓库中存在空闲的镜像缓存节点,则从空闲的镜像缓存节点中确定至少一个镜像缓存节点;
调用至少一个镜像缓存节点从分布式镜像仓库中的分布式存储***中,获取数据包标识对应的至少一个数据块;分布式存储***用于对各个镜像数据进行分块存储;
将至少一个数据块组成数据包发送给第一客户端。
上述实施例提供的计算机可读存储介质,其实现原理和技术效果与上述方法实施例类似,在此不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种数据获取方法,其特征在于,所述方法包括:
接收第一客户端发送的数据获取请求,并针对分布式镜像仓库中的各镜像缓存节点,确定各所述镜像缓存节点的资源是否正在被调度;所述数据获取请求包括数据包标识;所述镜像缓存节点为基于容器技术构建的所述分布式镜像仓库的缓存节点;
若所述镜像缓存节点的资源未被调度,则确定所述镜像缓存节点为空闲的镜像缓存节点,并从所述空闲的镜像缓存节点中确定至少一个镜像缓存节点;
调用所述至少一个镜像缓存节点从所述分布式镜像仓库中的分布式存储***中,获取所述数据包标识对应的至少一个数据块;所述分布式存储***用于对各个镜像数据进行分块存储;
将所述至少一个数据块组成数据包发送给所述第一客户端;
若所述分布式镜像仓库中不存在空闲的镜像缓存节点,则根据所述数据包标识确定至少一个第二客户端;所述第二客户端为存储有所述数据包标识对应数据块的其他客户端;
从所述至少一个第二客户端中获取所述数据包标识对应的至少一个数据块,并将所述至少一个数据块组成数据包发送给所述第一客户端。
2.根据权利要求1所述的方法,其特征在于,各所述镜像缓存节点用于接收调度器发送的数据获取请求,并根据所述数据获取请求执行相应的数据包获取操作。
3.根据权利要求1或2所述的方法,其特征在于,所述确定各所述镜像缓存节点的资源是否正在被调度,包括:
向各所述镜像缓存节点发送任务请求,并获取各所述镜像缓存节点返回的请求响应;
根据所述请求响应确定各所述镜像缓存节点的资源是否正在被调度。
4.根据权利要求1所述的方法,其特征在于,调用所述镜像缓存节点从分布式存储***中获取所述数据包标识对应的数据块,包括:
向各所述镜像缓存节点发送所述数据获取请求,以使所述镜像缓存节点根据所述数据获取请求中的数据包标识,分别向所述分布式存储***获取所述数据包标识对应的数据块;
接收所述镜像缓存节点返回的所述数据块。
5.一种数据获取***,其特征在于,所述***包括:分布式存储***、多个镜像缓存节点、调度器、第一客户端以及多个第二客户端;
所述第一客户端,用于向所述调度器发送第一数据获取请求;所述第一数据获取请求包括数据包标识;
所述调度器,用于针对分布式镜像仓库中的各镜像缓存节点,确定各所述镜像缓存节点的资源是否正在被调度,若所述镜像缓存节点的资源未被调度,则确定所述镜像缓存节点为空闲的镜像缓存节点,并从所述空闲的镜像缓存节点中确定至少一个镜像缓存节点;所述镜像缓存节点为基于容器技术构建的所述分布式镜像仓库的缓存节点;
所述调度器,还用于调用所述镜像缓存节点从所述分布式镜像仓库中的分布式存储***中,获取所述数据包标识对应的至少一个数据块,并将所述至少一个数据块组成数据包发送给所述第一客户端;所述分布式存储***用于对各个镜像数据进行分块存储;
所述调度器,还用于在所述分布式镜像仓库中不存在空闲的镜像缓存节点的情况下,根据所述数据包标识确定至少一个第二目标客户端,并向所述第二目标客户端发送所述第一数据获取请求;所述第二目标客户端为存储有所述数据包标识对应数据块的第二客户端;
所述第二目标客户端,用于向所述调度器发送所述数据包标识对应的至少一个数据块;
所述调度器,还用于将所述至少一个数据块组成数据包发送给所述第一客户端。
6.根据权利要求5所述的***,其特征在于,所述数据包标识包括至少一个数据块标识。
7.根据权利要求5所述的***,其特征在于,所述数据获取请求中还包括所述第一客户端的客户端标识;
所述镜像缓存节点,还用于根据所述第一数据获取请求中的客户端标识生成用户标识,并向所述分布式存储***发送包括所述用户标识和数据包标识的第二数据获取请求;
所述分布式存储***,用于根据所述用户标识对所述镜像缓存节点进行合法性验证,若所述镜像缓存节点合法,则根据所述数据包标识向所述镜像缓存节点反馈对应的数据块。
8.一种数据获取装置,其特征在于,所述装置包括:
接收模块,用于接收第一客户端发送的数据获取请求,并针对分布式镜像仓库中的各镜像缓存节点,确定各所述镜像缓存节点的资源是否正在被调度;所述数据获取请求包括数据包标识;所述镜像缓存节点为基于容器技术构建的所述分布式镜像仓库的缓存节点;
确定模块,用于若所述镜像缓存节点的资源未被调度,则确定所述镜像缓存节点为空闲的镜像缓存节点,并从所述空闲的镜像缓存节点中确定至少一个镜像缓存节点;
获取模块,用于调用所述至少一个镜像缓存节点从所述分布式镜像仓库中的分布式存储***中,获取所述数据包标识对应的至少一个数据块;所述分布式存储***用于对各个镜像数据进行分块存储;
发送模块,用于将所述至少一个数据块组成数据包发送给所述第一客户端;
所述确定模块,还用于若所述分布式镜像仓库中不存在空闲的镜像缓存节点,则根据所述数据包标识确定至少一个第二客户端;所述第二客户端为存储有所述数据包标识对应数据块的其他客户端;从所述至少一个第二客户端中获取所述数据包标识对应的至少一个数据块,并将所述至少一个数据块组成数据包发送给所述第一客户端。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011622404.6A CN112748879B (zh) | 2020-12-30 | 2020-12-30 | 数据获取方法、***、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011622404.6A CN112748879B (zh) | 2020-12-30 | 2020-12-30 | 数据获取方法、***、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112748879A CN112748879A (zh) | 2021-05-04 |
CN112748879B true CN112748879B (zh) | 2023-03-10 |
Family
ID=75650370
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011622404.6A Active CN112748879B (zh) | 2020-12-30 | 2020-12-30 | 数据获取方法、***、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112748879B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114217743B (zh) * | 2021-09-17 | 2024-05-31 | 支付宝(杭州)信息技术有限公司 | 用于分布式图学习架构的数据存取方法及装置 |
CN114760116B (zh) * | 2022-03-30 | 2024-04-12 | 北京奇艺世纪科技有限公司 | 验证方法、装置、电子设备及存储介质 |
CN114785770A (zh) * | 2022-04-01 | 2022-07-22 | 京东科技信息技术有限公司 | 镜像层文件发送方法、装置、电子设备和计算机可读介质 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10637918B2 (en) * | 2012-02-27 | 2020-04-28 | Red Hat, Inc. | Load balancing content delivery servers |
CN103905503B (zh) * | 2012-12-27 | 2017-09-26 | ***通信集团公司 | 数据存取方法、调度方法、设备及*** |
CN103455577A (zh) * | 2013-08-23 | 2013-12-18 | 中国科学院计算机网络信息中心 | 云主机镜像文件的多备份就近存储和读取方法及*** |
US10097637B2 (en) * | 2014-11-13 | 2018-10-09 | Tenoware R&D Limited | Grid distributed cache |
CN105740048B (zh) * | 2016-01-26 | 2019-03-08 | 华为技术有限公司 | 一种镜像管理方法、装置及*** |
WO2017213794A1 (en) * | 2016-06-06 | 2017-12-14 | Symbol Technologies, Llc | Client device and method for analysis of a predetermined set of parameters associated with radio coupling to a wlan |
CN106371889B (zh) * | 2016-08-22 | 2020-05-29 | 浪潮(北京)电子信息产业有限公司 | 一种调度镜像的高性能集群***实现方法及装置 |
US10884926B2 (en) * | 2017-06-16 | 2021-01-05 | Alibaba Group Holding Limited | Method and system for distributed storage using client-side global persistent cache |
CN107733977B (zh) * | 2017-08-31 | 2020-11-03 | 北京百度网讯科技有限公司 | 一种基于Docker的集群管理方法及装置 |
CN110046901B (zh) * | 2018-12-28 | 2020-06-30 | 阿里巴巴集团控股有限公司 | 联盟链的可信度验证方法、***、装置及设备 |
CN110427270B (zh) * | 2019-08-09 | 2022-11-01 | 华东师范大学 | 一种面向rdma网络下分布式连接算子的动态负载均衡方法 |
CN111399764B (zh) * | 2019-12-25 | 2023-04-14 | 杭州海康威视***技术有限公司 | 数据存储方法、读取方法、装置、设备及存储介质 |
CN111190547B (zh) * | 2019-12-30 | 2023-02-24 | 中国电子科技集团公司信息科学研究院 | 一种分布式容器镜像存储与分发***与方法 |
-
2020
- 2020-12-30 CN CN202011622404.6A patent/CN112748879B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN112748879A (zh) | 2021-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112748879B (zh) | 数据获取方法、***、装置、计算机设备和存储介质 | |
Wu et al. | A cooperative computing strategy for blockchain-secured fog computing | |
US10728050B2 (en) | Method of terminal-based conference load-balancing, and device and system utilizing same | |
KR20190020073A (ko) | 가속 자원 처리 방법 및 장치, 및 네트워크 기능 가상화 시스템 | |
CN112099979B (zh) | 一种访问控制方法、装置、计算机设备和存储介质 | |
US11880480B2 (en) | Secure storage access through rate limitation | |
US11509693B2 (en) | Event-restricted credentials for resource allocation | |
US10360057B1 (en) | Network-accessible volume creation and leasing | |
US11818576B2 (en) | Systems and methods for low latency cloud computing for mobile applications | |
TW202301118A (zh) | 動態微服務分配機制 | |
CN116248414B (zh) | 基于虚拟化硬件实现密码加速的方法、装置及电子设备 | |
CN111163140A (zh) | 资源获取和分配的方法、装置和计算机可读存储介质 | |
CN114996750A (zh) | 数据共享方法以及装置 | |
RU2599945C2 (ru) | Система и способ пополнения базы данных при одновременной антивирусной проверке объектов на множестве виртуальных машин | |
CN111831402B (zh) | 用于管理软件功能的方法、设备和计算机程序产品 | |
US9774640B2 (en) | Method and system for sharing applications among a plurality of electronic devices | |
CN115269198A (zh) | 基于服务器集群的访问请求处理方法及相关设备 | |
CN114924888A (zh) | 资源配置方法、数据处理方法、装置、设备和存储介质 | |
CN113254150A (zh) | 负载均衡方法、***、装置、计算机设备和存储介质 | |
CN118018552B (zh) | 基于中间件的集群服务部署方法、装置和计算机设备 | |
US20120072599A1 (en) | Thin client system, management server, client environment management method and program | |
CN114760362B (zh) | 网络接入请求的调度方法、***、电子装置和存储介质 | |
US11431826B2 (en) | Secure demand-driven file distribution | |
CN112748992B (zh) | 用于迁移任务的电子设备、方法及存储介质 | |
US20230199507A1 (en) | Low-latency network edge spectrum-as-a-service controller |
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 |