CN111935306B - 节点调度方法及装置 - Google Patents
节点调度方法及装置 Download PDFInfo
- Publication number
- CN111935306B CN111935306B CN202010950849.0A CN202010950849A CN111935306B CN 111935306 B CN111935306 B CN 111935306B CN 202010950849 A CN202010950849 A CN 202010950849A CN 111935306 B CN111935306 B CN 111935306B
- Authority
- CN
- China
- Prior art keywords
- node
- hash
- url
- nodes
- value
- 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
-
- 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
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5011—Pool
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种节点调度方法及装置,可应用于云技术领域中的网络调度。其中,该方法包括:根据待访问的统一资源定位符第一URL在第一时长内的访问次数,确定第一URL对应的第一节点数量;按照第一哈希链中的节点排列顺序在第一节点子集中查找第一目标节点;在第一节点子集中查找到第一目标节点的情况下,向第一客户端发送第一目标节点的节点信息。
Description
技术领域
本发明涉及计算机领域,具体而言,涉及一种节点调度方法及装置
背景技术
域名服务(Domain Name Server,简称DNS)通过将域名和IP地址相互映射,使得访问互联网更加遍历。DNS是互联网发展不可或缺的服务。
大部分应用和业务都采用域名作为服务的入口。现有技术中存在多种调度方式,例如,用DNS实现区域调度。在海量节点调度的情况下,现有技术能够的调度存在以下问题:(1)节点数量过多,而DNS限制单次解析的互联网协议(Internet Protocol,简称IP)数量较少,且单个节点资源过小,无法承受用户大量请求;(2)对于稳定性较差节点,剔除延迟过高不可接受,无法实时剔除;(3)容易被运营商劫持,会导致调度不听从调度服务指挥,导致单机负载过高和调度结果不符合预期;(4)节点调度资源利用率较低;(5)节点缓存命中率低。
针对上述问题,目前尚未存在有效的解决方案。
发明内容
本发明实施例提供了一种节点调度方法及装置,以至少解决节点调度资源利用率较低的技术问题。
根据本发明实施例的一个方面,提供了一种节点调度方法,包括:根据待访问的统一资源定位符第一URL在第一时长内的访问次数,确定所述第一URL对应的第一节点数量,其中,所述第一节点数量为目标节点集合中允许的为所述第一URL调度的第一节点子集中的节点数量;按照第一哈希链中的节点排列顺序在所述第一节点子集中查找第一目标节点,其中,所述第一哈希链包括按照所述节点排列顺序排列的所述第一节点子集,所述节点排列顺序是根据所述第一URL相关的哈希值确定得到的,所述第一目标节点的剩余调度次数大于0;在所述第一节点子集中查找到所述第一目标节点的情况下,向所述第一客户端发送所述第一目标节点的节点信息。
根据本发明实施例的另一方面,还提供了一种节点调度装置,包括:确定模块,用于根据待访问的统一资源定位符第一URL在第一时长内的访问次数,确定所述第一URL对应的第一节点数量,其中,所述第一节点数量为目标节点集合中允许的为所述第一URL调度的第一节点子集中的节点数量;查找模块,用于按照第一哈希链中的节点排列顺序在所述第一节点子集中查找第一目标节点,其中,所述第一哈希链包括按照所述节点排列顺序排列的所述第一节点子集,所述节点排列顺序是根据所述第一URL相关的哈希值确定得到的,所述第一目标节点的剩余调度次数大于0;发送模块,用于在所述第一节点子集中查找到所述第一目标节点的情况下,向所述第一客户端发送所述第一目标节点的节点信息。
根据本发明实施例的又一方面,还提供了一种计算机可读的存储介质,该计算机可读的存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述节点调度方法。
根据本发明实施例的又一方面,还提供了一种电子设备,包括存储器和处理器,上述存储器中存储有计算机程序,上述处理器被设置为通过所述计算机程序执行上述的节点调度方法。
在本发明实施例中,通过待访问的统一资源定位符第一URL在第一时长内的访问次数,确定所述第一URL对应的第一节点数量;按照第一哈希链中的节点排列顺序在所述第一节点子集中查找第一目标节点;在第一节点子集中查找到所述第一目标节点的情况下,向第一客户端发送第一目标节点的节点信息。从而实现了提高资源利用率的技术效果,进而解决了节点调度资源利用率较低的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种可选的节点调度方法的应用环境的示意图;
图2是根据本发明实施例的一种可选的节点调度方法的流程图;
图3是根据本发明实施例的一种可选的节点调度示意图;
图4是根据本发明实施例的一种可选的***框架示意图;
图5是根据本发明实施例的一种可选的hash链示意图一;
图6是根据本发明实施例的一种可选的hash链示意图二;
图7是根据本发明实施例的一种可选的常规一致性哈希示意图;
图8是根据本发明实施例的一种可选的虚拟节点示意图;
图9是根据本发明实施例的一种可选的节点存储共享调度示意图;
图10是根据本发明实施例的一种可选的布隆过滤器示意图;
图11是根据本发明实施例的一种可选的低利用率哈希链示意图;
图12是根据本发明实施例的一种可选的配额获取逻辑示意图;
图13是根据本发明实施例的节点调度装置的结构框图;
图14是根据本发明实施例的一种可选的电子设备的结构示意图。
具体实施方式
云计算(cloud computing)是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用***能够根据需要获取计算力、存储空间和信息服务。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。
作为云计算的基础能力提供商,会建立云计算资源池(简称云平台,一般称为IaaS(Infrastructure as a Service,基础设施即服务)平台,在资源池中部署多种类型的虚拟资源,供外部客户选择使用。云计算资源池中主要包括:计算设备(为虚拟化机器,包含操作***)、存储设备、网络设备。
按照逻辑功能划分,在IaaS(Infrastructure as a Service,基础设施即服务)层上可以部署PaaS(Platform as a Service,平台即服务)层,PaaS层之上再部署SaaS(Software as a Service,软件即服务)层,也可以直接将SaaS部署在IaaS上。PaaS为软件运行的平台,如数据库、web容器等。SaaS为各式各样的业务软件,如web门户网站、***器等。一般来说,SaaS和PaaS相对于IaaS是上层。
随着互联网、实时数据流、连接设备多样化的发展,以及搜索服务、社会网络、移动商务和开放协作等需求的推动,云计算迅速发展起来。不同于以往的并行分布式计算,云计算的产生从理念上将推动整个互联网模式、企业管理模式发生革命性的变革。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本发明实施例的一个方面,提供了一种节点调度方法,可选地,作为一种可选的实施方式,上述节点调度方法可以但不限于应用于如图1所示的环境中。如图1所示,上述服务器可以是内容分发网络(Content Delivery Network,简称CDN),可以称为CDN服务器,通过网络与用户设备进行连接,上述网络包括但不限于:广域网、城域网或局域网,用户设备并不限定于PC、手机、平板电脑等,用户设备可以是手机、平板电脑等移动终端,用户设备上安装有客户端,客户端可以是即时通讯客户端、视频客户端、教育客户端等。本发明实施例的节点调度方法可以由CDN服务器来执行。
可选地,作为一种可选的实施方式,如图2所示,上述节点调度方法包括如下步骤:
步骤S202,根据待访问的统一资源定位符第一URL在第一时长内的访问次数,确定所述第一URL对应的第一节点数量,其中,所述第一节点数量为目标节点集合中允许的为所述第一URL调度的第一节点子集中的节点数量;
步骤S204,按照第一哈希链中的节点排列顺序在所述第一节点子集中查找第一目标节点,其中,所述第一哈希链包括按照所述节点排列顺序排列的所述第一节点子集,所述节点排列顺序是根据所述第一URL相关的哈希值确定得到的,所述第一目标节点的剩余调度次数大于0;
步骤S206,在所述第一节点子集中查找到所述第一目标节点的情况下,向所述第一客户端发送所述第一目标节点的节点信息。
作为一个可选的实施方式,内容分发网络(Content Delivery Network,简称CDN),可以称为CDN服务器,可以在CDN服务器上执行本实施例。图3是根据本发明实施例的一种可选的节点调度示意图。用户访问网站时,通过客户端将统一资源定位符(UniformResource Locator,简称URL)发送给CDN服务器,CDN服务器在大量节点中选取出目标节点,将目标节点的节点信息返回至客户端,节点信息包括但不限于节点在网络上的地址,以及用于后续访问的参数。客户端与目标节点进行信息交互,通过目标节点为客户端提供资源。节点可以是具有计算、存储和网络能力的计算机设备。本实施例中的客户端可以是游戏客户端、视频客户端、教育客户端等。
作为一个可选的实施方式,用户在可以在客户端输入统一资源定位符URL,通过URL调用节点中的资源,节点可以是服务器。通过访问URL,服务器可以向客户端返回该URL对应的网络资源,如网页、视频、音频等。
作为一个可选的实施方式,如图4是根据本发明实施例的一种可选的***框架示意图,在本实施例中可以包括热度统计模块,哈希链获取模块和配额分配模块。其中,热度统计模块用于确定URL的访问热度final_k,具体地可以将在预设时长内URL的访问次数作为该URL的访问热度。哈希链获取模块可以通过网络协议(Internet Protocol,简称为IP)与final_k获取URL对应的哈希链。配额分配模块可以获取哈希链中拥有调度配额的节点,将拥有调度配额的节点信息发送至客户端,以与客户端进行信息交互,为客户端分配资源。本实施例中,输入是用户访问的URL与用户IP,经过热度统计模块获取访问热度,通过URL,IP与访问热度获取对应哈希链,通过配额分配模块获取有配额的节点,最终选取某个节点的信息进行返回。以此达到保证***回源率,充分利用节点资源做到资源不浪费的技术效果。
可选地,所述按照第一哈希链中的节点排列顺序在所述第一节点子集中查找第一目标节点,包括:重复执行以下步骤,直到查找到所述第一目标节点,或者,遍历完所述第一节点子集,其中,当前预设值的初始值为第一值,所述目标节点集合中的每个节点被设置有与第一哈希操作对应的不同哈希值:对所述第一URL和所述当前预设值执行所述第一哈希操作,得到当前哈希值;在所述目标节点集合中查找哈希值为所述当前哈希值的节点;在查找到哈希值为所述当前哈希值的节点、且所述哈希值为所述当前哈希值的节点的剩余调度次数大于0的情况下,将所述哈希值为所述当前哈希值的节点确定为所述第一目标节点;在查找到哈希值为所述当前哈希值的节点、且所述哈希值为所述当前哈希值的节点的剩余调度次数等于0的情况下,将所述当前预设值增加预定值。
作为一个可选的实施方式,通过热度统计获取到访问热度之后,则可通过IP查询地址库获取符合调度质量的节点集合。在本实施例中,可以通过计算URL与nonsense的哈希值标识相应的节点。其中nonsense的值可以是预设值,可以是从1开始的整数,例如nonsense=10001、10002等。URL的热度值final_k和链的长度有关,两者可以相等。节点A上的配额可以用于多个URL,每个URL对应的链不同,但链上的节点来自同一个节点集合中的部分节点,作为key拼接后使用一致性hash即可得到定长(长度由访问热度决定)的哈希链。
作为一个可选的实施方式,每个URL对应的链不同,对每一个URL可获取此URL独有的哈希调度链,如图5所示是一种可选的hash链,图6所示是另一种可选的hash链。假设图5是URL1对应的hash链,对于URL1可得到A->C->B->F->D->E的哈希调度链。图6是URL2对应的hash链,对URL2可获得C->B->D->E->A->F的哈希调度链。每个哈希链中所包括的节点均配置有调度配额,节点每被调度一次,配额减少一次。通过此哈希链依次查询配额,即可将请求尽可能收敛在前几跳节点中,此外由于热度越高,哈希链越长,热点URL可扩散到更多节点中,对冷URL可防止其大量扩散导致流量回源。
作为一个可选的实施方式,以第一节点子集中包括节点A、B、C、D、E、F,哈希链A->C->B->F->D->E为例进行说明。假设当前预设值nonsense=10001,对第一URL和nonsense执行哈希操作,得到当前哈希值Hash(URL+10001)。在哈希链A->C->B->F->D->E中确定节点A的哈希值为Hash(URL+10001)后,查询节点A的剩余可调度次数,若节点A的剩余可调度次数大于0,则以节点A为目标节点,将节点A的节点信息发送给客户端。若节点A的剩余调度次数等于0,说明节点A无法被调度。将nonsense=10001增加预定值,假设预定值为1,nonsense值变更为nonsense=10002,继续对第一URL和nonsense=10002执行哈希操作,得到Hash(URL+10002),在哈希链A->C->B->F->D->E中确定节点B的哈希值为Hash(URL+10002)后,查询节点B的剩余可调度次数,若节点B的剩余可调度次数大于0,则以节点B为目标节点。重复执行上述步骤直到在哈希链中找到目标节点,或者遍历完哈希链。在本实施例中,通过在与URL对应的哈希链中查找剩余调度次数大于0的节点作为目标节点,可以提高节点调度的效率,提升节点资源的利用率。
可选地,所述对所述第一URL和所述当前预设值执行所述第一哈希操作,得到当前哈希值,包括:对所述第一URL与所述当前预设值的和执行所述第一哈希操作,得到所述当前哈希值;或者将所述第一URL和所述当前预设值进行拼接,得到第一拼接字符串;对所述第一拼接字符串执行所述第一哈希操作,得到所述当前哈希值。
作为一个可选的实施方式,可以对URL与nonsense的和执行哈希操作,例如,URL为“www.abc.com”,“nonsense”为1001,可以得到“www.abc.com”对应的二进制数值,将二进制数值与1001相加后,进行哈希运算。或者,可以将“www.abc.com,nonsense”的二进制值与“1001”进行拼接,计算拼接后的数值的哈希值。
可选地,所述方法还包括:重复执行以下步骤,直到i=所述第一节点数量,其中,当前预设值的初始值为第一值,i的初始值为1:对所述第一URL和所述当前预设值执行所述第一哈希操作,得到当前哈希值;在所述目标节点集合中查找哈希值为所述当前哈希值的节点;在查找到哈希值为所述当前哈希值的节点的情况下,将所述哈希值为所述当前哈希值的节点设置为所述第一哈希链中的第i个节点;在i小于所述第一节点数量的情况下,将i=i+1,并将所述当前预设值增加预定值。
作为一个可选的实施方式,可以根据目标节点集合中每个节点与预设值nonsense的哈希值大小确定目标节点集合中每个节点在哈希链中的位置,进而可以确定出哈希链中每个节点的排列顺序。在本实施例中,预设值nonsense是可以变化的,可以将预设值nonsense设置一个初始值,每确定出一个节点在哈希链中的位置,将nonsense的值增加预定值,预定值的大小可以根据实际情况而定,在此不作限定,例如可以是1、2、10、100等,直到确定出哈希链中所有的节点。
作为一个可选的实施方式,以目标节点集合中包括节点A、B、C、D、E、F为例,当前预设值为nonsense=10001为例进行说明。对URL和10001执行哈希操作,得到当前哈希值Hash(URL+10001)。假设目标节点集合中节点A对应的哈希值与Hash(URL+10001)相等,则确定节点A为第一哈希链中的第一个节点。假设预定值为1,将nonsense增加预定值后得到nonsense=10002,对URL和10002执行哈希操作,得到当前哈希值Hash(URL+10002),假设目标节点集合中节点C对应的哈希值与Hash(URL+10002)相等,则确定节点C为第一哈希链中的第二个节点。以此类推,直到遍历完目标节点集合中的所有节点,可以根据URL与nonsense的哈希值确定目标节点集合中的节点在哈希链中的排列顺序,以此得到哈希链A->C->B->F->D->E。在本实施例中,通过哈希值确定与URL对应的哈希链中节点的排列顺序,可以按照哈希值的大小顺序在于URL对应的目标节点集合中确定出目标节点,可以提高目标节点的查找效率。
可选地,所述方法还包括:在所述第一哈希操作的哈希结果包括N个不同的哈希值、所述目标节点集合包括N个节点的情况下,为所述N个节点中的每个节点设置所述N个不同的哈希值中的一个哈希值,其中,所述N个不同的哈希值与所述N个节点具有一一对应关系,N为大于1的自然数。
作为一个可选的实施方式,图7所示是根据本发明一个可选实施例的常规一致性哈希示意图,常规一致性哈希需要存储大量节点状态,需要做大量节点分割操作。这就造成了维护成本高与计算效率低下。在本实施例中,选择使用跳跃一致性哈希(jumpconsistent hash),通过大数运算保证了离散型与均匀性,极大程度削减了内存使用与节点变更成本。
作为一个,可选的实施方式,一个真实节点(例如一个服务器)可以对应于哈希链中的一个虚拟节点,为每个真实节点分配一个哈希值。在本实施例中,对于不同资源持有量的节点,可根据资源持有量进行划分为多个虚拟化节点,每个节点作为哈希链中的一个节点,如图8所示是根据本发明可选实施例的虚拟节点示意图,ABCDEF均为虚拟节点,选中虚拟节点A后可查询得到真实节点AR,这样就保证了可根据不同资源持有量对节点进行权重划分,且保证资源使用均等。
可选地,所述方法还包括:在所述第一哈希操作的哈希结果包括N个不同的哈希值、所述目标节点集合包括M个节点、且M大于N的情况下,将所述M个节点中的部分节点合并成一个虚拟节点,共得到N个节点,为所述N个节点中的每个节点设置所述N个不同的哈希值中的一个哈希值,其中,所述N个不同的哈希值与所述N个节点具有一一对应关系,N为大于1的自然数,所述N个节点包括一个或多个所述虚拟节点;或者在所述第一哈希操作的哈希结果包括N个不同的哈希值、所述目标节点集合包括M个节点、且M小于N的情况下,将所述M个节点中的部分节点拆分成多个共享节点,共得到N个节点,为所述N个节点中的每个节点设置所述N个不同的哈希值中的一个哈希值,其中,所述N个不同的哈希值与所述N个节点具有一一对应关系,N为大于1的自然数,所述N个节点包括多个所述共享节点。
作为一个可选的实施方式,图9所示是根据本发明可选实施例的节点存储共享调度示意图,对于一批调度节点AR1/AR2/AR3,可能拥有共享的存储,则这些节点在调度上可抽象为一个大的调度节点AF,以这个节点作为真实节点参与调度,调度得到AF节点后再根据配额细分到具体单个调度节点AR1/AR2/AR3上,这样保证了不改变调度逻辑的情况下提高了资源利用率与降低了回源成本。在本实施例中,可以将多个真实节点合并成一个虚拟节点,为该虚拟节点分配一个哈希值,也就是说,可以将多个真实节点合并成一个可调度的虚拟节点。例如,真实节点A、B、C可以是A、B、C三个服务器节点,可以将A、B、C三个服务器节点合并成一个虚拟节点D,为虚拟节点D分配一个哈希值。在本实施例中,也可以将一个真实节点拆分成多个节点作为共享节点,为拆分出的每个共享节点分配一个哈希值。例如,可以将真实节点服务器A拆分成共享节点A1、A2、A3,分别为每个共享节点分配哈希值。本实施例中,可以将剩余调度次数较少的多个真实节点合并成一个虚拟节点,也可以剩余调度次数较多的一个真实节点拆分成多个共享节点。通过将多个节点合并为一个节点,或者将一个节点拆分为多个共享节点。可以平衡节点的资源分配,防止由于节点调度的不平衡导致的资源利用率低的问题,进而可以达到提高节点资源调度利用率的技术效果。
可选地,所述根据待访问的统一资源定位符第一URL在第一时长内的访问次数,确定所述第一URL对应的第一节点数量,包括:根据所述第一URL在所述第一时长内的访问次数,确定所述第一URL的第一热度值;根据所述第一热度值,确定所述第一URL对应的所述第一节点数量,其中,所述第一节点数量与所述第一热度值呈正相关。
作为一个可选的实施方式,哈希链中包括的节点数量可以根据URL访问热度得到,URL的访问热度越高,URL对应的哈希链中包括的节点数量越多。在本实施例中,URL访问热度可以根据在一定时长内URL的访问次数而定,例如,在5分钟内,URL的访问次数为5次,URL对应的哈希链中包括的节点数量可以是5,也可以是5的倍数,URL对应的哈希链中包括的节点数量与该URL的访问热度正相关。
可选地,所述根据所述第一URL在所述第一时长内的访问次数,确定所述第一URL的第一热度值,包括:将所述第一热度值final_k设置为:final_k = k * (2 * interval -now_interval) / interval;其中,k为所述第一URL在所述第一时长内的访问次数,interval为预设的统计周期的时长,now_interval为当前时刻与上一个结束的统计周期的开始时刻之间的时长,所述第一时长为now_interval。
作为一个可选的实施方式,访问次数可以反映URL的访问热度,通过热度统计模块统计URL的访问次数。热度统计模块可以使用多重布隆过滤器(Multiple Bloom Filter),作用为每一个URL可以返回这个URL的热度值final_k,该热度值可以是URL的访问次数。
作为一个可选的实施方式,图10是根据本发明可选实施例的布隆过滤器示意图,布隆过滤器可以是位图或位数组(Bitmap/Bitarray),布隆过滤器一般用于检索一个元素是否在一个集合中。假设输入对象个数为n,布隆过滤器大小为m,所容忍的误判率p和哈希函数的个数k。计算公式如下:
小数向上取整,可对10亿级别64b大小URL输入,误判率0.01%的情况下仅需要2.5G内存。
在本实施例中,若布隆过滤器持续运行,由于缺少记录清理机制,最终会导致热度不断膨胀,最终导致热度统计失效。由于记录所有URL的访问时间带来的空间开销不可接受,无法根据URL访问的时间进行淘汰,本实施例中引入了一个热度统计模块清理机制:在内存中同时维护两个布隆过滤器,主过滤器master,备过滤器slave,每次***对两个布隆过滤器均进行***,查询仅查询主过滤器master,在时间间隔interval后执行清理,删除master,将slave替换master,重新初始化一个slave。这样保证了master的统计数据始终为[interval,2*interval]时间长度的访问次数。
由于在清理执行之后,会出现统计数据均值出现跳变,这会导致热度统计不准确,为了解决这个问题引入新的热度统计计算公式:假设当前距离上一次清理的时间为now_interval,master查询URL访问次数结果为 k (如果当前在第3个周期上,K=第2个周期+第3个周期的部分)则计算返回结果final_k公式为:
final_k = k * (2 * interval - now_interval) / interval
对于任意取值范围为(0,interval)范围内的now_interval有final_k均值数学期望不变,即热度统计均值期望不变。这样就保证了当执行清理和布隆过滤器替换时,对返回final_k的结果不造成影响。热度统计模块即为输入URL返回此URL的热度值final_k。每访问一次算一个final_k。根据final_k确定第一哈希链中包括的节点数,第一哈希链中包括的节点构成的集合为第一节点子集,final_k可以等于第一哈希链中包括的节点数。
可选地,所述根据所述第一热度值,确定所述第一URL对应的所述第一节点数量,包括:将所述第一节点数量设置为等于所述第一热度值;或者将所述第一节点数量设置为等于所述第一热度值与M的乘积,其中,M 为大于1的自然数。
作为一个可选的实施方式,URL对应的哈希链中包括的节点数量与URL的访问热度正相关,URL的访问越高节点数越多。可以将预定时长内URL访问次数作为哈希链中节点的数量,也可以将预定时长内URL访问次数的倍数,作为哈希链汇总节点的数量。
可选地,所述方法还包括:在所述目标节点集合中确定第二节点子集,其中,所述第二节点子集中的每个节点在第二时长结束时剩余调度次数大于预定次数阈值;将所述第二节点子集中的节点形成第二哈希链;获取第二客户端发送的待访问的第二URL;根据所述第二URL在第三时长内的访问次数,确定所述第二URL对应的第二节点数量,其中,所述第二节点数量为目标节点集合中允许的为所述第二URL调度的第三节点子集中的节点数量;按照第三哈希链的顺序在所述第三节点子集中查找第二目标节点,其中,所述第三节点子集中的节点按照与所述第二URL相关的哈希值形成所述第三哈希链,所述第二目标节点的剩余调度次数大于0;在所述第三节点子集中查找不到所述第二目标节点的情况下,按照所述第二哈希链的顺序在所述第二节点子集中查找第三目标节点,其中,所述第三目标节点的剩余调度次数大于0。
作为一个可选的实施方式,可以选取出剩余调度次数大于预定次数阈值的节点作为第二节点子集中的节点,预定次数阈值可以根据实际情况而定,例如10次、20次、50次等,将剩余次数较多的节点单独作为一个节点集合,并形成第二哈希链。当获取到客户端发送的待访问的URL情况下,若在与待访问的URL对应的第三哈希链中查找不到目标节点,则在第二哈希链中查找目标节点。
作为一个可选的实施方式,将被调用次数较少(剩余调度次数较多)的节点作为一个节点集合,当获取到待访问的URL时,若在待访问的URL对应的哈希链中查找不到目标节点,在剩余调度次数较多的节点集合中查找目标节点,可以避免节点调用不平衡导致的节点资源利用率低的问题。在实施例中,假设节点A、B、C、D、E、F、G、H的剩余调度次数分别为0、1、2、3、4、5、6、7,预定次数阈值为3,则确定剩余调度次数大于3的节点E、F、G、H为被调度次数较少的节点,将节点E、F、G、H第二节点子集,将E、F、G、H组成的哈希链作为第二哈希链。当获取到客户端发送的待访问的第二URL时,确定与第二URL对应的第三哈希链,若第三哈希链中的节点的剩余调度次数均为0,则在第三哈希链查找不到目标节点。此种情况下,可以在E、F、G、H组成第二哈希链中查找目标节点。
作为一个可选的实施方式,可以将剩余调度次数较多的节点作为低利用率节点。假设在ABCDEF节点中,若BDF为低利用率节点,则对于这批低利用率节点单独进行一次哈希链生成,对于URL可得低利用率哈希链B->F->D,如图11所示是根据本发明可选实施例的低利用率哈希链示意图。同样,低利用率哈希链对于低利用率节点也是均衡和一致的。在本实施例中,由于可调度的节点是海量的,存在有些节点被反复调用,有些节点很少被调用,以此呈现的节点调用不平衡,节点资源利用率低的问题。
可选地,所述方法还包括:在当前调度周期结束时,为所述目标节点集合中的每个节点的剩余调度次数设置为对应的配额取值,其中,所述目标节点集合中的不同节点对应的配置取值均相同,或者,所述目标节点集合中的至少2个节点对应的配置取值不同,所述目标节点集合中的每个节点被设置为在下一个调度周期上为不同的URL进行调度。
作为一个可选的实施方式,在调度周期内节点可被调度,在节点的调度周期之外可以为节点分配调度配额,调度配额用于表示节点可被调度的次数。不同节点分配的调度配额可以是相同的,例如,节点A、节点B、节点C的调度配额均配置为10次。也可以将不同的节点分配不同的调度配额,例如,节点A、节点B、节点C的调度配额分别配置为2、4、6、8次。一个节点可以被不同的URL进行调度,节点每被调度一次,剩余的调度次数减少一次,直到剩余调度次数为0,节点无法被调度。
可选地,在所述向所述第一客户端发送所述第一目标节点的节点信息之后,所述方法包括:在所述第一客户端根据所述节点信息向所述第一目标节点发送第一调度请求的情况下,在所述第一客户端上获取所述第一目标节点发送的与所述第一URL相关的资源。
作为一个可选的实施方式,在客户端获取到目标节点的节点信息后,用户可以通过向目标节点发送调度请求获取到相关资源,相关资源可以是URL对应的网页。例如,用户可以通过客户端发送“www.abc.com”的URL,服务器确定出与该URL对应的目标节点为节点A,将节点A的节点信息发送至客户端,节点信息可以是节点的标识或者地址等。用户可以通过客户端向该节点发送调度请求,节点A向客户端返回“www.abc.comde”对应的网页。
作为一个可选的实施方式,对于整体配额分配,可以采用图12所示的配额获取逻辑示意图,最优先调度哈希链本身顺序,这样保证了配额的分配永远是最先使用最优的节点。其次分配共享存储节点的配额,因为共享存储节点可看做同一节点不同出口信息。最后使用低利用率哈希链,低利用率哈希链即是将当前配额无法满足的请求调度到当前资源利用率低的节点上,同时保证了资源利用率和流量回源率。
对于任意节点,可以赋予该节点一个配额属性,此属性决定了每一个调度周期允许调度多少次请求。由于调度到单个节点上的URL趋向于收拢,故在小时间范围内可认为对于一个节点,调度到此节点上的请求带来的资源平均使用量的变化不会过于剧烈,这样就可以通过调度次数的配额控制即可较好的控制单节点负载,这样就做到了节点资源不浪费。
对于节点配额,设置有快速恢复模式与维持调度模式两种状态其中,对于快速恢复模式,出现于新节点上架,禁用节点恢复使用等情况下,会根据资源持有量进行估算,设置一个较大的配额变化步长,并可根据配置决定节点预期利用完完整资源的时间进行步长的个性化调整。对于维持调度模式,出现于节点平稳运行时的状态,此时会根据此前多个调度周期的资源利用状况,对超出预期资源利用的情况下配额进行微降,对于不及资源利用预期的情况下配额进行微增。这样保证了在维持调度模式下,配额值始终维持在既不超过资源限制,又充分利用的值上。由以上机制保证资源利用率维持在预期水平,同时设置异常兜底预期,对于资源利用与配额增减出现大幅度波动的节点进行发现与剔除,这样就在保证资源利用率的情况下充分保证了访问质量。
可选地,在本实施例中,上述终端设备可以是配置有目标客户端的终端设备,可以包括但不限于以下至少之一:手机(如Android手机、iOS手机等)、笔记本电脑、平板电脑、掌上电脑、MID(Mobile Internet Devices,移动互联网设备)、PAD、台式电脑、智能电视等。目标客户端可以是视频客户端、即时通信客户端、浏览器客户端、教育客户端等。上述网络可以包括但不限于:有线网络,无线网络,其中,该有线网络包括:局域网、城域网和广域网,该无线网络包括:蓝牙、WIFI及其他实现无线通信的网络。上述服务器可以是单一服务器,也可以是由多个服务器组成的服务器集群,或者是云服务器。上述仅是一种示例,本实施例中对此不作任何限定。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
根据本发明实施例的另一个方面,还提供了一种用于实施上述节点调度方法的节点调度装置。如图13所示,该装置包括:确定模块1302,用于根据待访问的统一资源定位符第一URL在第一时长内的访问次数,确定所述第一URL对应的第一节点数量,其中,所述第一节点数量为目标节点集合中允许的为所述第一URL调度的第一节点子集中的节点数量;查找模块1304,用于按照第一哈希链中的节点排列顺序在所述第一节点子集中查找第一目标节点,其中,所述第一哈希链包括按照所述节点排列顺序排列的所述第一节点子集,所述节点排列顺序是根据所述第一URL相关的哈希值确定得到的,所述第一目标节点的剩余调度次数大于0;发送模块1306,用于在所述第一节点子集中查找到所述第一目标节点的情况下,向所述第一客户端发送所述第一目标节点的节点信息。
可选地,上述装置还用于通过如下方式实现所述按照第一哈希链中的节点排列顺序在所述第一节点子集中查找第一目标节点:重复执行以下步骤,直到查找到所述第一目标节点,或者,遍历完所述第一节点子集,其中,当前预设值的初始值为第一值,所述目标节点集合中的每个节点被设置有与第一哈希操作对应的不同哈希值:对所述第一URL和所述当前预设值执行所述第一哈希操作,得到当前哈希值;在所述目标节点集合中查找哈希值为所述当前哈希值的节点;在查找到哈希值为所述当前哈希值的节点、且所述哈希值为所述当前哈希值的节点的剩余调度次数大于0的情况下,将所述哈希值为所述当前哈希值的节点确定为所述第一目标节点;在查找到哈希值为所述当前哈希值的节点、且所述哈希值为所述当前哈希值的节点的剩余调度次数等于0的情况下,将所述当前预设值增加预定值。
可选地,上述装置还用于通过如下方式实现所述对所述第一URL和所述当前预设值执行所述第一哈希操作,得到当前哈希值:对所述第一URL与所述当前预设值的和执行所述第一哈希操作,得到所述当前哈希值;或者将所述第一URL和所述当前预设值进行拼接,得到第一拼接字符串;对所述第一拼接字符串执行所述第一哈希操作,得到所述当前哈希值。
可选地,上述装置还用于重复执行以下步骤,直到i=所述第一节点数量,其中,当前预设值的初始值为第一值,i的初始值为1:对所述第一URL和所述当前预设值执行所述第一哈希操作,得到当前哈希值;在所述目标节点集合中查找哈希值为所述当前哈希值的节点;在查找到哈希值为所述当前哈希值的节点的情况下,将所述哈希值为所述当前哈希值的节点设置为所述第一哈希链中的第i个节点;在i小于所述第一节点数量的情况下,将i=i+1,并将所述当前预设值增加预定值。
可选地,上述装置还用于在所述第一哈希操作的哈希结果包括N个不同的哈希值、所述目标节点集合包括N个节点的情况下,为所述N个节点中的每个节点设置所述N个不同的哈希值中的一个哈希值,其中,所述N个不同的哈希值与所述N个节点具有一一对应关系,N为大于1的自然数。
可选地,上述装置还用于在所述第一哈希操作的哈希结果包括N个不同的哈希值、所述目标节点集合包括M个节点、且M大于N的情况下,将所述M个节点中的部分节点合并成一个虚拟节点,共得到N个节点,为所述N个节点中的每个节点设置所述N个不同的哈希值中的一个哈希值,其中,所述N个不同的哈希值与所述N个节点具有一一对应关系,N为大于1的自然数,所述N个节点包括一个或多个所述虚拟节点;或者在所述第一哈希操作的哈希结果包括N个不同的哈希值、所述目标节点集合包括M个节点、且M小于N的情况下,将所述M个节点中的部分节点拆分成多个共享节点,共得到N个节点,为所述N个节点中的每个节点设置所述N个不同的哈希值中的一个哈希值,其中,所述N个不同的哈希值与所述N个节点具有一一对应关系,N为大于1的自然数,所述N个节点包括多个所述共享节点。
可选地,上述装置还用于通过如下方式实现所述根据待访问的统一资源定位符第一URL在第一时长内的访问次数,确定所述第一URL对应的第一节点数量:根据所述第一URL在所述第一时长内的访问次数,确定所述第一URL的第一热度值;根据所述第一热度值,确定所述第一URL对应的所述第一节点数量,其中,所述第一节点数量与所述第一热度值呈正相关。
可选地,所述根据所述第一URL在所述第一时长内的访问次数,确定所述第一URL的第一热度值,包括:将所述第一热度值final_k设置为:final_k = k * (2 * interval -now_interval) / interval;其中,k为所述第一URL在所述第一时长内的访问次数,interval为预设的统计周期的时长,now_interval为当前时刻与上一个结束的统计周期的开始时刻之间的时长,所述第一时长为now_interval。
可选地,上述装置还用于通过如下方式实现所述根据所述第一热度值,确定所述第一URL对应的所述第一节点数量:将所述第一节点数量设置为等于所述第一热度值;或者将所述第一节点数量设置为等于所述第一热度值与M的乘积,其中,M 为大于1的自然数。
可选地,上述装置还用于在所述目标节点集合中确定第二节点子集,其中,所述第二节点子集中的每个节点在第二时长结束时剩余调度次数大于预定次数阈值;将所述第二节点子集中的节点形成第二哈希链;获取第二客户端发送的待访问的第二URL;根据所述第二URL在第三时长内的访问次数,确定所述第二URL对应的第二节点数量,其中,所述第二节点数量为目标节点集合中允许的为所述第二URL调度的第三节点子集中的节点数量;按照第三哈希链的顺序在所述第三节点子集中查找第二目标节点,其中,所述第三节点子集中的节点按照与所述第二URL相关的哈希值形成所述第三哈希链,所述第二目标节点的剩余调度次数大于0;在所述第三节点子集中查找不到所述第二目标节点的情况下,按照所述第二哈希链的顺序在所述第二节点子集中查找第三目标节点,其中,所述第三目标节点的剩余调度次数大于0。
可选地,上述装置还用于在当前调度周期结束时,为所述目标节点集合中的每个节点的剩余调度次数设置为对应的配额取值,其中,所述目标节点集合中的不同节点对应的配置取值均相同,或者,所述目标节点集合中的至少2个节点对应的配置取值不同,所述目标节点集合中的每个节点被设置为在下一个调度周期上为不同的URL进行调度。
可选地,上述装置还用于在所述向所述第一客户端发送所述第一目标节点的节点信息之后:在所述第一客户端根据所述节点信息向所述第一目标节点发送第一调度请求的情况下,在所述第一客户端上获取所述第一目标节点发送的与所述第一URL相关的资源。
根据本发明实施例的又一个方面,还提供了一种用于实施上述节点调度方法方法的电子设备,该电子设备可以是图1所示的终端设备或服务器。本实施例以该电子设备为节点调度方法为例来说明。如图14所示,该电子设备包括存储器1402和处理器1404,该存储器1402中存储有计算机程序,该处理器1404被设置为通过计算机程序执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述电子设备可以位于计算机网络的多个网络设备中的至少一个网络设备。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,根据待访问的统一资源定位符第一URL在第一时长内的访问次数,确定所述第一URL对应的第一节点数量,其中,所述第一节点数量为目标节点集合中允许的为所述第一URL调度的第一节点子集中的节点数量;
S2,按照第一哈希链中的节点排列顺序在所述第一节点子集中查找第一目标节点,其中,所述第一哈希链包括按照所述节点排列顺序排列的所述第一节点子集,所述节点排列顺序是根据所述第一URL相关的哈希值确定得到的,所述第一目标节点的剩余调度次数大于0;
S3,在所述第一节点子集中查找到所述第一目标节点的情况下,向所述第一客户端发送所述第一目标节点的节点信息。
可选地,本领域普通技术人员可以理解,图14所示的结构仅为示意,电子装置电子设备也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile Internet Devices,MID)、PAD等终端设备。图14其并不对上述电子装置电子设备的结构造成限定。例如,电子装置电子设备还可包括比图14中所示更多或者更少的组件(如网络接口等),或者具有与图14所示不同的配置。
其中,存储器1402可用于存储软件程序以及模块,如本发明实施例中的节点调度方法和装置对应的程序指令/模块,处理器1404通过运行存储在存储器1402内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的节点调度方法。存储器1402可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器1402可进一步包括相对于处理器1404远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。其中,存储器1402具体可以但不限于用于存储物品的样本特征与目标虚拟资源账号等信息。作为一种示例,如图14所示,上述存储器1402中可以但不限于包括上述节点调度装置中的确定模块1302、查找模块1304及发送模块1306。此外,还可以包括但不限于上述节点调度装置中的其他模块单元,本示例中不再赘述。
可选地,上述的传输装置1406用于经由一个网络接收或者发送数据。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置1406包括一个网络适配器(Network Interface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置1406为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
此外,上述电子设备还包括:连接总线1408,用于连接上述电子设备中的各个模块部件。
在其他实施例中,上述终端设备或者服务器可以是一个分布式***中的一个节点,其中,该分布式***可以为区块链***,该区块链***可以是由该多个节点通过网络通信的形式连接形成的分布式***。其中,节点之间可以组成点对点(P2P,Peer To Peer)网络,任意形式的计算设备,比如服务器、终端等电子设备都可以通过加入该点对点网络而成为该区块链***中的一个节点。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实现方式中提供的节点调度方法。其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述计算机可读的存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,根据待访问的统一资源定位符第一URL在第一时长内的访问次数,确定所述第一URL对应的第一节点数量,其中,所述第一节点数量为目标节点集合中允许的为所述第一URL调度的第一节点子集中的节点数量;
S2,按照第一哈希链中的节点排列顺序在所述第一节点子集中查找第一目标节点,其中,所述第一哈希链包括按照所述节点排列顺序排列的所述第一节点子集,所述节点排列顺序是根据所述第一URL相关的哈希值确定得到的,所述第一目标节点的剩余调度次数大于0;
S3,在所述第一节点子集中查找到所述第一目标节点的情况下,向所述第一客户端发送所述第一目标节点的节点信息。
可选地,在本实施例中,本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random Access Memory,RAM)、磁盘或光盘等。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (14)
1.一种节点调度方法,其特征在于,包括:
根据待访问的统一资源定位符第一URL在第一时长内的访问次数,确定所述第一URL对应的第一节点数量,其中,所述第一节点数量为目标节点集合中允许的为所述第一URL调度的第一节点子集中的节点数量;
按照第一哈希链中的节点排列顺序在所述第一节点子集中查找第一目标节点,其中,所述第一哈希链包括按照所述节点排列顺序排列的所述第一节点子集,所述节点排列顺序是根据所述第一URL相关的哈希值确定得到的,所述第一目标节点的剩余调度次数大于0;
在所述第一节点子集中查找到所述第一目标节点的情况下,向第一客户端发送所述第一目标节点的节点信息;
在所述目标节点集合中确定第二节点子集,其中,所述第二节点子集中的每个节点在第二时长结束时剩余调度次数大于预定次数阈值;
将所述第二节点子集中的节点形成第二哈希链;
获取第二客户端发送的待访问的第二URL;
根据所述第二URL在第三时长内的访问次数,确定所述第二URL对应的第二节点数量,其中,所述第二节点数量为目标节点集合中允许的为所述第二URL调度的第三节点子集中的节点数量;
按照第三哈希链的顺序在所述第三节点子集中查找第二目标节点,其中,所述第三节点子集中的节点按照与所述第二URL相关的哈希值形成所述第三哈希链,所述第二目标节点的剩余调度次数大于0;
在所述第三节点子集中查找不到所述第二目标节点的情况下,按照所述第二哈希链的顺序在所述第二节点子集中查找第三目标节点,其中,所述第三目标节点的剩余调度次数大于0。
2.根据权利要求1所述的方法,其特征在于,所述按照第一哈希链中的节点排列顺序在所述第一节点子集中查找第一目标节点,包括:
重复执行以下步骤,直到查找到所述第一目标节点,或者,遍历完所述第一节点子集,其中,当前预设值的初始值为第一值,所述目标节点集合中的每个节点被设置有与第一哈希操作对应的不同哈希值:
对所述第一URL和所述当前预设值执行所述第一哈希操作,得到当前哈希值;
在所述目标节点集合中查找哈希值为所述当前哈希值的节点;
在查找到哈希值为所述当前哈希值的节点、且所述哈希值为所述当前哈希值的节点的剩余调度次数大于0的情况下,将所述哈希值为所述当前哈希值的节点确定为所述第一目标节点;
在查找到哈希值为所述当前哈希值的节点、且所述哈希值为所述当前哈希值的节点的剩余调度次数等于0的情况下,将所述当前预设值增加预定值。
3.根据权利要求2所述的方法,其特征在于,所述对所述第一URL和所述当前预设值执行所述第一哈希操作,得到当前哈希值,包括:
对所述第一URL与所述当前预设值的和执行所述第一哈希操作,得到所述当前哈希值;或者
将所述第一URL和所述当前预设值进行拼接,得到第一拼接字符串;对所述第一拼接字符串执行所述第一哈希操作,得到所述当前哈希值。
4.根据权利要求2所述的方法,其特征在于,所述方法还包括:
重复执行以下步骤,直到i=所述第一节点数量,其中,当前预设值的初始值为第一值,i的初始值为1:
对所述第一URL和所述当前预设值执行所述第一哈希操作,得到当前哈希值;
在所述目标节点集合中查找哈希值为所述当前哈希值的节点;
在查找到哈希值为所述当前哈希值的节点的情况下,将所述哈希值为所述当前哈希值的节点设置为所述第一哈希链中的第i个节点;
在i小于所述第一节点数量的情况下,将i=i+1,并将所述当前预设值增加预定值。
5.根据权利要求2所述的方法,其特征在于,所述方法还包括:
在所述第一哈希操作的哈希结果包括N个不同的哈希值、所述目标节点集合包括N个节点的情况下,为所述N个节点中的每个节点设置所述N个不同的哈希值中的一个哈希值,其中,所述N个不同的哈希值与所述N个节点具有一一对应关系,N为大于1的自然数。
6.根据权利要求2所述的方法,其特征在于,所述方法还包括:
在所述第一哈希操作的哈希结果包括N个不同的哈希值、所述目标节点集合包括M个节点、且M大于N的情况下,将所述M个节点中的部分节点合并成一个虚拟节点,共得到N个节点,为所述N个节点中的每个节点设置所述N个不同的哈希值中的一个哈希值,其中,所述N个不同的哈希值与所述N个节点具有一一对应关系,N为大于1的自然数,所述N个节点包括一个或多个所述虚拟节点;或者
在所述第一哈希操作的哈希结果包括N个不同的哈希值、所述目标节点集合包括M个节点、且M小于N的情况下,将所述M个节点中的部分节点拆分成多个共享节点,共得到N个节点,为所述N个节点中的每个节点设置所述N个不同的哈希值中的一个哈希值,其中,所述N个不同的哈希值与所述N个节点具有一一对应关系,N为大于1的自然数,所述N个节点包括多个所述共享节点。
7.根据权利要求1所述的方法,其特征在于,所述根据待访问的统一资源定位符第一URL在第一时长内的访问次数,确定所述第一URL对应的第一节点数量,包括:
根据所述第一URL在所述第一时长内的访问次数,确定所述第一URL的第一热度值;
根据所述第一热度值,确定所述第一URL对应的所述第一节点数量,其中,所述第一节点数量与所述第一热度值呈正相关。
8.根据权利要求7所述的方法,其特征在于,所述根据所述第一URL在所述第一时长内的访问次数,确定所述第一URL的第一热度值,包括:
将所述第一热度值final_k设置为:
final_k = k * (2 * interval - now_interval) / interval;
其中,k为所述第一URL在所述第一时长内的访问次数,interval为预设的统计周期的时长,now_interval为当前时刻与上一个结束的统计周期的开始时刻之间的时长,所述第一时长为now_interval。
9.根据权利要求7所述的方法,其特征在于,所述根据所述第一热度值,确定所述第一URL对应的所述第一节点数量,包括:
将所述第一节点数量设置为等于所述第一热度值;或者
将所述第一节点数量设置为等于所述第一热度值与M的乘积,其中,M 为大于1的自然数。
10.根据权利要求1至9中任一项所述的方法,其特征在于,所述方法还包括:
在当前调度周期结束时,为所述目标节点集合中的每个节点的剩余调度次数设置为对应的配额取值,其中,所述目标节点集合中的不同节点对应的配置取值均相同,或者,所述目标节点集合中的至少2个节点对应的配置取值不同,所述目标节点集合中的每个节点被设置为在下一个调度周期上为不同的URL进行调度。
11.根据权利要求1至9中任一项所述的方法,其特征在于,在所述向第一客户端发送所述第一目标节点的节点信息之后,所述方法包括:
在所述第一客户端根据所述节点信息向所述第一目标节点发送第一调度请求的情况下,在所述第一客户端上获取所述第一目标节点发送的与所述第一URL相关的资源。
12.一种节点调度装置,其特征在于,包括:
确定模块,用于根据待访问的统一资源定位符第一URL在第一时长内的访问次数,确定所述第一URL对应的第一节点数量,其中,所述第一节点数量为目标节点集合中允许的为所述第一URL调度的第一节点子集中的节点数量;
查找模块,用于按照第一哈希链中的节点排列顺序在所述第一节点子集中查找第一目标节点,其中,所述第一哈希链包括按照所述节点排列顺序排列的所述第一节点子集,所述节点排列顺序是根据所述第一URL相关的哈希值确定得到的,所述第一目标节点的剩余调度次数大于0;
发送模块,用于在所述第一节点子集中查找到所述第一目标节点的情况下,向第一客户端发送所述第一目标节点的节点信息;
所述装置还用于在所述目标节点集合中确定第二节点子集,其中,所述第二节点子集中的每个节点在第二时长结束时剩余调度次数大于预定次数阈值;将所述第二节点子集中的节点形成第二哈希链;获取第二客户端发送的待访问的第二URL;根据所述第二URL在第三时长内的访问次数,确定所述第二URL对应的第二节点数量,其中,所述第二节点数量为目标节点集合中允许的为所述第二URL调度的第三节点子集中的节点数量;按照第三哈希链的顺序在所述第三节点子集中查找第二目标节点,其中,所述第三节点子集中的节点按照与所述第二URL相关的哈希值形成所述第三哈希链,所述第二目标节点的剩余调度次数大于0;在所述第三节点子集中查找不到所述第二目标节点的情况下,按照所述第二哈希链的顺序在所述第二节点子集中查找第三目标节点,其中,所述第三目标节点的剩余调度次数大于0。
13.一种计算机可读的存储介质,所述计算机可读的存储介质包括存储的程序,其中,所述程序运行时执行所述权利要求1至11任一项中所述的方法。
14.一种电子设备,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为通过所述计算机程序执行所述权利要求1至11任一项中所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010950849.0A CN111935306B (zh) | 2020-09-11 | 2020-09-11 | 节点调度方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010950849.0A CN111935306B (zh) | 2020-09-11 | 2020-09-11 | 节点调度方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111935306A CN111935306A (zh) | 2020-11-13 |
CN111935306B true CN111935306B (zh) | 2020-12-29 |
Family
ID=73310100
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010950849.0A Active CN111935306B (zh) | 2020-09-11 | 2020-09-11 | 节点调度方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111935306B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112732201A (zh) * | 2021-02-26 | 2021-04-30 | 邹威 | 一种基于区块链的数据存储配置方法及区块链云平台 |
CN114356587B (zh) * | 2022-03-17 | 2022-07-05 | 梯度云科技(北京)有限公司 | 算力任务跨区域调度方法、***及设备 |
CN114579582B (zh) * | 2022-04-29 | 2022-08-23 | 武汉北大高科软件股份有限公司 | 一种基于区块链的资源处理方法和装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103428008A (zh) * | 2013-08-28 | 2013-12-04 | 浙江大学 | 面向多用户群的大数据分发策略 |
CN105844121A (zh) * | 2016-03-31 | 2016-08-10 | 乐视控股(北京)有限公司 | 一种内容分发网络应用数字水印的方法及*** |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102263828B (zh) * | 2011-08-24 | 2013-08-07 | 北京蓝汛通信技术有限责任公司 | 一种负载均衡分配方法及设备 |
CN104852934A (zh) * | 2014-02-13 | 2015-08-19 | 阿里巴巴集团控股有限公司 | 基于前端调度实现流量分配的方法、装置和*** |
CN107801086B (zh) * | 2017-10-20 | 2019-01-04 | 广东省南方数字电视无线传播有限公司 | 多缓存服务器的调度方法和*** |
CN109951543A (zh) * | 2019-03-14 | 2019-06-28 | 网宿科技股份有限公司 | 一种cdn节点的数据查找方法、装置及网络设备 |
CN110290196B (zh) * | 2019-06-20 | 2021-08-27 | 网宿科技股份有限公司 | 一种内容分发方法及装置 |
-
2020
- 2020-09-11 CN CN202010950849.0A patent/CN111935306B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103428008A (zh) * | 2013-08-28 | 2013-12-04 | 浙江大学 | 面向多用户群的大数据分发策略 |
CN105844121A (zh) * | 2016-03-31 | 2016-08-10 | 乐视控股(北京)有限公司 | 一种内容分发网络应用数字水印的方法及*** |
Also Published As
Publication number | Publication date |
---|---|
CN111935306A (zh) | 2020-11-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111935306B (zh) | 节点调度方法及装置 | |
CN111522641B (zh) | 任务调度方法、装置、计算机设备和存储介质 | |
US11102290B2 (en) | Peer-to-peer network prioritizing propagation of objects through the network | |
CN102882985A (zh) | 基于云存储的文件共享方法 | |
CN110113399A (zh) | 负载均衡管理方法及相关装置 | |
CN105608117A (zh) | 一种信息推荐方法及装置 | |
CN103581207A (zh) | 云端数据存储***及基于该***的数据存储与共享方法 | |
CN101840418A (zh) | 一种用户词库同步更新的方法、更新服务器及输入法*** | |
CN106790552B (zh) | 一种基于内容分发网络的内容提供*** | |
CN110413845B (zh) | 基于物联网操作***的资源存储方法及装置 | |
CN110532493B (zh) | 数据的处理方法及装置、存储介质和电子装置 | |
CN104410660A (zh) | 多媒体资源的下载方法、装置、路由器及服务器 | |
Setty et al. | Cost-effective resource allocation for deploying pub/sub on cloud | |
CN110035306A (zh) | 文件的部署方法及装置、调度方法及装置 | |
CN111556135A (zh) | 一种请求调度方法、***、装置及电子设备 | |
CN112468589A (zh) | 数据分发方法、装置、计算机设备和存储介质 | |
CN102882960A (zh) | 一种资源文件的发送方法及装置 | |
CN111400301A (zh) | 一种数据查询方法、装置及设备 | |
CN113382065A (zh) | 文件下载方法、装置、***、设备及存储介质 | |
CN106850707A (zh) | 物料批量上传的方法、装置及*** | |
CN112307058A (zh) | 短链接的处理方法、装置、存储介质及计算机设备 | |
Haridas et al. | Cloudy knapsack algorithm for offloading tasks from large scale distributed applications | |
CN101369915A (zh) | 可运营p2p网络资源管理*** | |
CN111935233B (zh) | 路由器的加速方法、装置、存储介质和处理器 | |
CN115243080B (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 |