数据节点分配及数据获取方法及系统与流程

文档序号:17429983发布日期:2019-04-17 03:22阅读:223来源:国知局
数据节点分配及数据获取方法及系统与流程

本发明涉及网络通信技术领域,尤其涉及一种数据节点的分配以及数据获取方法及系统。



背景技术:

在传统的cdn(contentdeliverynetwork,内容分发网络)内部传输时都是基于轮询方式回源到上层服务器,这无疑是最简单也是相对非常有效的方法。但是却存在着以下三个问题:

带宽消耗问题,由于是用到轮询方式,则会导致每次请求都会随机找到上层机器访问资源,如不存在就会到源站上访问,导致源站带宽损耗。

存储空间问题,轮询方式则会导致可能所有的上层机器都缓存着相同的文件,这样造成存储空间浪费。

延时问题,用轮询的方式,容易造成上层服务器请求源站的次数变多,导致整体的传输时间加长。



技术实现要素:

本发明的主要目的在于提供一种数据节点分配及数据获取方法、装置及存储介质,旨在解决现有技术中带宽消耗、存储空间浪费以及传输延时的问题。

为实现上述目的,本发明提供的数据节点分配方法,包括:

根据用户端的访问请求,到所述用户端对应的边缘节点中获取所述访问请求对应的缓存数据;

当所述边缘节点中不存在所述访问请求对应的缓存数据时,按照预设方法,分配所述访问请求对应的区域节点,并到所述区域节点中获取所述访问请求对应的缓存数据,并将所获取的缓存数据存储到所述边缘节点中;及

当所述区域节点中不存在所述访问请求对应的缓存数据时,到源站中获取所述访问请求对应的数据,并将所获取的缓存数据存储到所述区域节点中。

可选地,所述用户端对应的边缘节点为与所述用户端位于相同的地域及/或使用相同的运营商的节点。

可选地,所述预设方法为根据所述访问请求中包含的域名的哈希值,分配所述访问请求对应的区域节点,使得相同的访问请求分配同一个区域节点。

可选地,所述根据所述访问请求中包含的域名的哈希值,分配所述访问请求对应的区域节点包括:

根据所述区域节点的数量对所述区域节点进行排序,并赋予其唯一的序列号;

将所述域名的哈希值进行取模,由取模得到的余数决定分配为当前访问请求服务的区域节点。

为实现上述目的,本发明提供的数据节点分配装置包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的数据节点分配程序,所述数据节点分配程序被所述处理器执行时实现如下方法:

根据用户端的访问请求,到所述用户端对应的边缘节点中获取所述访问请求对应的缓存数据;

当所述边缘节点中不存在所述访问请求对应的缓存数据时,按照预设方法,分配所述访问请求对应的区域节点,并到所述区域节点中获取所述访问请求对应的缓存数据,并将所获取的缓存数据存储到所述边缘节点中;及

当所述区域节点中不存在所述访问请求对应的缓存数据时,到源站中获取所述访问请求对应的数据,并将所获取的缓存数据存储到所述区域节点中。

可选地,所述用户端对应的边缘节点为与所述用户端位于相同的地域及/或使用相同的运营商的节点。

可选地,所述预设方法为根据所述访问请求中包含的域名的哈希值,分配所述访问请求对应的区域节点,使得相同的访问请求分配同一个区域节点。

可选地,所述根据所述访问请求中包含的域名的哈希值,分配所述访问请求对应的区域节点包括:

根据所述区域节点的数量对所述区域节点进行排序,并赋予其唯一的序列号;

将所述域名的哈希值进行取模,由取模得到的余数决定分配为当前访问请求服务的区域节点。

为实现上述目的,本发明进一步提供一种数据获取方法,所述数据获取方法应用于一个边缘节点中,包括:

接收用户端的访问请求,获取所述访问请求中携带的域名;

解析所述访问请求中的域名,并根据所述域名查找所述边缘节点中是否存在所述访问请求对应的缓存数据;

当所述边缘节点中存在所述访问请求对应的缓存数据时,将所述缓存数据发送给所述用户端;

当所述边缘节点中不存在所述访问请求对应的缓存数据时,向所述访问请求对应的区域节点获取所述访问请求对应的缓存数据,并将从所述区域节点中获取的缓存数据存储在所述边缘节点后发送给所述用户端。

为实现上述目的,本发明进一步提供一种边缘节点,其特征在于,所述边缘节点包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的程序,所述程序被所述处理器执行时实现如下方法:

接收用户端的访问请求,获取所述访问请求中携带的域名;

解析所述访问请求中的域名,并根据所述域名查找所述边缘节点中是否存在所述访问请求对应的缓存数据;

当所述边缘节点中存在所述访问请求对应的缓存数据时,将所述缓存数据发送给所述用户端;

当所述边缘节点中不存在所述访问请求对应的缓存数据时,向所述访问请求对应的区域节点获取所述访问请求对应的缓存数据,并将从所述区域节点中获取的缓存数据存储在本地后发送给所述用户端。

为实现上述目的,本发明进一步一种数据获取方法,所述数据获取方法应用于一个区域节点中,包括:

接收边缘节点传送的获取访问请求对应的缓存数据的请求,查找所述区域节点中是否存在所述缓存数据;

当所述区域节点中存在所述缓存数据时,将所述缓存数据发送给所述边缘节点;

当所述区域节点中不存在所述缓存数据时,向源站获取所述缓存数据,并将从所述源站中获取的缓存数据存储在所述区域节点后发送给所述边缘节点。

为实现上述目的,本发明进一步一种区域节点,所述区域节点包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的程序,所述程序被所述处理器执行时实现如下方法:

接收边缘节点传送的获取访问请求对应的缓存数据的请求,查找所述区域节点中是否存在所述缓存数据;

当所述区域节点中存在所述缓存数据时,将所述缓存数据发送给所述边缘节点;

当所述区域节点中不存在所述缓存数据时,向源站获取所述缓存数据,并将从所述源站中获取的缓存数据存储在本地后发送给所述边缘节点。为实现上述目的,本发明进一步提供一种计算机可读存储介质,所述计算机可读存储介质上存储有数据节点分配程序,所述数据节点分配程序被一个或者多个处理器执行,以实现上述所述的数据节点分配方法。

为实现上述目的,本发明进一步提供一种计算机程序产品,包括一个或多个计算机指令,在计算机上加载和执行所述计算机程序指令时,实现上述所述的数据节点分配方法。

本实施例所述数据节点分配方法、装置以及存储介质根据用户端的访问请求,到所述用户端对应的边缘节点中获取所述访问请求对应的缓存数据;当所述边缘节点中不存在所述访问请求对应的缓存数据时,按照预设方法,分配所述访问请求对应的区域节点,并到所述区域节点中获取所述访问请求对应的缓存数据;及当所述区域节点中不存在所述访问请求对应的缓存数据时,到源站中获取所述访问请求对应的数据,解决了现有技术中带宽消耗、存储空间浪费以及传输延时的问题。

附图说明

图1为本发明一实施例揭露的数据节点分配方法的应用环境示意图;

图2为本发明一实施例揭露的数据节点分配方法的流程示意图;

图3为图2所示数据节点分配方法的详细流程示意图;

图4为本发明一实施例揭露的数据节点分配装置的内部结构示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,所述“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。

进一步地,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。

本发明提供一种数据节点分配方法。

参阅图1,图1为本发明所述数据节点分配方法的应用环境示意图。本发明较佳实施例中,所述数据节点分配方法应用在由用户端1、边缘节点2、区域节点3以及源站4所组成的网络架构中。

其中,所述用户端1可以是pc(personalcomputer,个人电脑),也可以是智能手机、平板电脑、掌上电脑、便携计算机、智能家居设备、智能穿戴设备等用户终端设备。

所述边缘节点2是指在靠近用户端1,提供网络、存储、计算、应用等能力,达到更快的网络服务响应,更安全的本地数据传输的设备。所述边缘节点分布在多地区以及使用不同的运营商,用于直接向用户端1提供服务,依据用户端1所处地域和使用的运营商,不同的用户端1分配不同的边缘节点2。

本发明较佳实施例中,所述边缘节点2接收用户端1的访问请求,获取所述访问请求中携带的域名;解析所述访问请求中的域名,并根据所述域名查找所述边缘节点2中是否存在所述访问请求对应的缓存数据;当所述边缘节点2中存在所述访问请求对应的缓存数据时,将所述缓存数据发送给所述用户端1;当所述边缘节点2中不存在所述访问请求对应的缓存数据时,向所述访问请求对应的区域节点3获取所述访问请求对应的缓存数据,并将从所述区域节点3中获取的缓存数据存储在本地后发送给所述用户端1。

所述区域节点3一般称为骨干节点,主要作为内容分发和边缘节点2未命中时的服务节点。

本发明较佳实施例中,所述区域节点3接收边缘节点2传送的获取访问请求对应的缓存数据的请求,查找所述区域节点3中是否存在所述缓存数据;当所述区域节点3中存在所述缓存数据时,将所述缓存数据发送给所述边缘节点2;当所述区域节点3中不存在所述缓存数据时,向源站4获取所述缓存数据,并将从所述源站4中获取的缓存数据存储在本地后发送给所述边缘节点2。

所述源站4是网络数据的数据源。

参照图2,图2为本发明一实施例数据节点分配方法的流程示意图。该流程示意图中所述方法可以由一个装置执行,该装置可以由软件和/或硬件实现。

在本实施例中,所述数据节点分配方法包括:

s00,根据用户端1的访问请求,到所述用户端1对应的边缘节点2中获取所述访问请求对应的缓存数据。

s01,当所述边缘节点2中不存在所述访问请求对应的缓存数据时,按照预设方法,分配所述访问请求对应的区域节点3,并到所述区域节点3中获取所述访问请求对应的缓存数据,并将所获取的缓存数据存储到所述边缘节点中。

本发明较佳实施例中,所述预设方法为根据所述访问请求中包含的域名的哈希值,分配所述访问请求对应的区域节点,使得每一次的访问请求中,对于相同的访问请求总能够分配到同一个区域节点。

s02,当所述区域节点3中不存在所述访问请求对应的缓存数据时,到源站4中获取所述访问请求对应的数据,并将所获取的缓存数据存储到所述区域节点中。

参阅图3所示,图3为图2所示数据节点分配方法的详细流程示意图,具体地:

s10,接收用户端1提供的访问请求。

具体地,用户根据其要访问的内容,在该用户的个人电脑或者智能手机等用户端设备的浏览器中输入域名,即url(uniformresourcelocator,统一资源定位符)。应该了解,用户访问的内容是非常随机而广泛的,同一用户可能发起不同的访问请求,并且也可能会有多个用户同时发起相同的访问请求,但是每个访问请求中都会携带一个唯一的域名。

s11,按照预设方法,选择与所述用户端匹配边缘节点2。

本发明其中一个实施例中,根据所述用户端1所在的地域和使用的运营商,不同的用户端1会分配不同的边缘节点2。

优选地,所述匹配的边缘节点2与所述用户端1位于相同的地域,如选择同一个市的边缘节点2。若同一个市没有边缘节点,则选择同一个省的边缘节点2等。

此外,所述匹配的边缘节点2与所述用户端1使用相同的运营商,如均使用联通网络运行商、电信网络运营商或者移动网络运营商等。

s12,解析所述访问请求中的域名,并判断所述边缘节点2中是否存在所述访问请求对应的缓存数据。

本发明较佳实施例将所述访问请求中的域名与所述边缘节点存储的缓存数据的对应的域名进行关键字比较,以判断所述边缘节点中是否存在所述访问请求对应的缓存数据。

当所述边缘节点中存在所述访问请求对应的缓存数据时,执行下述的步骤s17,将所述缓存发送给用户端1。

当所述边缘节点中不存在所述访问请求对应的缓存数据时,执行s13,计算所述域名的哈希值,并根据所述哈希值确定对应的区域节点3。

计算域名的哈希值有多种方法,例如,md2、md4、md5和sha-1等。本发明较佳实施例采用一个统一的计算方法即可。

由于哈希值计算是根据关键字进行散列输出的一种计算方法,使得同一访问请求或相似的访问请求可能会对应同一个哈希值,因此,本发明中为使同一访问请求或相似的访问请求能够分配到同一个区域节点,采用计算域名哈希值的方法,并对相同的域名哈希值对应的访问请求,分配同一个区域节点3,节省了区域节点3的存储空间。

本发明较佳实施例中,根据所述哈希值确定对应的区域节点包括:

根据所述区域节点的数量对所述区域节点进行排序,并赋予其唯一的序列号;

将所述计算出来的域名的哈希值进行取模,由取模得到的余数决定分配为当前访问请求服务的区域节点。

例如,本发明其中一个实施例中共存在5个区域节点,则所述区域节点分别被赋予序列号0、1、2、3及4,当计算出来的域名的哈希值为150,对区域节点的数量5取模得到的余数为0,则选择编号为0的区域节点,服务当前访问请求。

s14,判断所述对应的区域节点3中是否存在所述访问请求对应的缓存数据。

本发明较佳实施例将所述访问请求中的域名与所述对应的区域节点中存储的缓存数据的对应的域名进行关键字比较,判断所述对应的区域节点3中是否存在所述访问请求对应的缓存数据。

若所述区域节点中存在所述访问请求对应的缓存数据,则执行下述的步骤s16以及s17,将所述缓存存储到所述边缘节2中,并进一步将所述缓存发送给用户端1。

若所述区域节点1中不存在所述访问请求对应的缓存数据,则执行下述的s15,到源站4中获取所述访问请求对应的数据,并保存到所述对应的区域节点3中,并继续执行所述s16以及s17,将所述缓存存储到所述边缘节点2中,并进一步将所述缓存发送给用户端1。

本发明较佳实施例还提供一种用于执行上述数据节点分配方法的数据节点分配装置。

如图3所示,本发明所述数据节点分配装置10可以包括存储器11、处理器12和总线13。

其中,所述存储器11至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、磁性存储器、磁盘、光盘等。存储器11在一些实施例中可以是数据节点分配装置10的内部存储单元,例如该数据节点分配装置10的硬盘。存储器11在另一些实施例中也可以是数据节点分配装置10的外部存储设备,例如数据节点分配装置10上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,存储器11还可以既包括数据节点分配装置10的内部存储单元也包括外部存储设备。存储器11不仅可以用于存储安装于数据节点分配装置10的应用软件及各类数据,例如数据节点分配程序01的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。

处理器12在一些实施例中可以是一中央处理器(centralprocessingunit,cpu)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器11中存储的程序代码或处理数据,例如执行数据节点分配程序01等。

该总线13可以是外设部件互连标准(peripheralcomponentinterconnect,简称pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,简称eisa)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图3中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

进一步地,数据节点分配装置10还可以包括网络接口14,网络接口14可选的,可以包括有线接口和/或无线接口(如wi-fi接口、蓝牙接口等),通常用于在该装置10与其他电子设备之间建立通信连接。

可选地,该数据节点分配装置10还可以包括用户接口,用户接口可以包括显示器(display)、输入单元比如键盘(keyboard),可选的用户接口还可以包括标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是led显示器、液晶显示器、触控式液晶显示器以及oled(organiclight-emittingdiode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在数据节点分配装置10中处理的信息以及用于显示可视化的用户界面。

图3仅示出了具有组件11-14以及数据节点分配程序01的数据节点分配装置10,本领域技术人员可以理解的是,图3示出的结构并不构成对数据节点分配装置10的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。

在图3所示的数据节点分配装置10实施例中,存储器11中存储的数据节点分配程序01,由处理器12调用执行时,可以实现如下步骤:

根据用户端1的访问请求,到所述用户端1对应的边缘节点2中获取所述访问请求对应的缓存数据;

当所述边缘节点2中不存在所述访问请求对应的缓存数据时,按照预设方法,分配所述访问请求对应的区域节点3,并到所述区域节点3中获取所述访问请求对应的缓存数据,并将所获取的缓存数据存储到所述边缘节点2中;

当所述区域节点3中不存在所述访问请求对应的缓存数据时,到源站4中获取所述访问请求对应的数据,并将所获取的缓存数据存储到所述区域节点3中。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品存储在一种计算机可读存储介质中。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。

所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

需要说明的是,上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。并且本文中的术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1