调度方法、装置、电子设备和存储介质与流程

文档序号:18135695发布日期:2019-07-10 10:35阅读:167来源:国知局
调度方法、装置、电子设备和存储介质与流程
本发明涉及负载均衡
技术领域
,特别涉及一种调度方法、装置、电子设备和存储介质。
背景技术
:cdn(contentdeliverynetwork,内容分发网络)加速服务在对带宽需求较大的场景中扮演着重要角色,随着视频、直播等大流量业务的快速兴起,cdn网络的规模变得十分庞大。由于cdn服务节点部署在世界的各个角落,因此,如何高效地协调好服务节点的负载情况,是保障cdn服务质量的关键。发明人发现相关技术至少存在以下问题:据统计,cdn调度系统在一个调度周期内,由于参与调度的集群数量庞大,耗时主要集中在数据加载、数据遍历、数据更新等环节,严重影响cdn调度效率。此外,现有系统在处理大数据量时,频繁地从存储介质上读写大量数据,也会影响系统的稳定性。技术实现要素:本发明实施方式的目的在于提供一种调度方法、装置、电子设备和存储介质,通过利用牺牲内存的折中方法对调度数据的读取以及更新环节进行优化,以进一步提高调度效率以及系统的稳定性。为解决上述技术问题,本发明的实施方式提供了一种调度方法,包括:将外部数据源中的第一调度数据加载至内存中的第一缓冲区;将所述第一缓冲区中的第一调度数据转换成预设数据格式后存储在所述内存的第二缓冲区;根据所述第二缓冲区中的第一调度数据以及实时获取的第二调度数据得到服务器部署更新信息;将所述服务器部署更新信息更新至所述内存的第三缓冲区;将所述第三缓冲区中的服务器部署更新信息推送至部署平台,并增量同步至所述外部数据源、所述第一缓冲区以及所述第二缓冲区。本发明的实施方式还提供了一种调度装置,包括:加载模块,用于将外部数据源中的第一调度数据加载至内存中的第一缓冲区;数据转换模块,用于将所述第一缓冲区中的第一调度数据转换成预设数据格式后存储在所述内存的第二缓冲区;计算模块,用于根据所述第二缓冲区中的第一调度数据以及实时获取的第二调度数据得到服务器部署更新信息;更新模块,用于将所述服务器部署更新信息更新至所述内存的第三缓冲区;推送模块,用于将所述第三缓冲区中的服务器部署更新信息推送至部署平台;增量同步模块,用于将所述第三缓冲区中的服务器部署更新信息增量同步至所述外部数据源、所述第一缓冲区以及所述第二缓冲区。本发明的实施方式还提供了一种电子设备,包括:存储器和处理器,存储器存储计算机程序,处理器运行所述计算机程序:将外部数据源中的第一调度数据加载至内存中的第一缓冲区;将所述第一缓冲区中的第一调度数据转换成预设数据格式后存储在所述内存的第二缓冲区;根据所述第二缓冲区中的第一调度数据以及实时获取的第二调度数据得到服务器部署更新信息;将所述服务器部署更新信息更新至所述内存的第三缓冲区;将所述第三缓冲区中的服务器部署更新信息推送至部署平台,并增量同步至所述外部数据源、所述第一缓冲区以及所述第二缓冲区。本发明的实施方式还提供了一种存储介质,用于存储计算机可读程序,所述计算机可读程序用于供计算机执行如前所述的调度方法。本发明实施方式相对于现有技术而言,采用三级缓存机制,通过加载第一调度数据(即源数据)到内存中的第一缓冲区中,然后将第一缓冲区中的第一调度数据转换成预设数据格式后存放在第二缓冲区,并根据第二缓冲区中的第一调度数据以及实时获取的第二调度数据得到服务器部署更新信息,并在内存中开辟出第三缓冲区存储该服务器部署更新信息,在将第三缓冲区中的服务器部署更新信息推送至部署平台以实现服务器调度的同时,还将第三缓冲区中的服务器部署更新信息增量同步至外部数据源、第一缓冲区以及第二缓冲区,使各级缓存数据保持同步,从而在后续的调度过程可在内存中通过增量数据更新的方式实现cdn调度,有利于提高调度效率以及调度系统的稳定性。作为一个实施例,所述第一缓冲区中的第一调度数据包括多个数据表,所述预设数据格式为按照各数据表之间的关联属性确定的键值格式。作为一个实施例,将所述第三缓冲区中的服务器部署更新信息增量同步至所述外部数据源、所述第一缓冲区以及所述第二缓冲区,具体包括:根据所述键值格式中的键属性将所述第三缓冲区中的服务器部署更新信息增量同步至所述外部数据源、所述第一缓冲区以及所述第二缓冲区。作为一个实施例,所述将外部数据源中的第一调度数据加载至内存中的第一缓冲区,具体包括:获取过滤规则;根据所述过滤规则对外部数据源中的第一调度数据进行过滤,将过滤后的第一调度数据加载至所述第一缓冲区。作为一个实施例,所述根据所述第二缓冲区中的第一调度数据以及实时获取的第二调度数据得到服务器部署更新信息,具体包括:根据所述第二缓冲区中的第一调度数据以及实时获取的第二调度数据确定待调度的服务器是否满足预设服务条件,若不满足所述预设服务条件,则对不满足所述预设服务条件的服务器添加更新标记,将带有所述更新标记的服务器信息作为所述服务器部署更新信息。作为一个实施例,还包括:将外部数据源中的第一调度数据增量同步更新至内存中的缓冲区。附图说明图1是根据本发明第一实施方式的调度方法的流程图;图2是根据本发明第二实施方式的调度方法的流程图;图3是根据本发明第三实施方式的调度装置的结构示意图;图4是根据本发明第四实施方式电子设备的结构示意图。具体实施方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本发明而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本发明所要求保护的技术方案。本发明的第一实施方式涉及一种调度方法,可应用于cdn调度系统,然不限于此。请参阅图1,本实施方式的调度方法包括步骤101至步骤105。步骤101:将外部数据源中的第一调度数据加载至内存中的第一缓冲区。第一调度数据用于表示待调度的cdn系统服务器的各项参数指标。第一调度数据例如包括:dns系统、二级域名、区域、集群、ip地址等信息。经过数据建模后,前述信息可以存储于数据库的各张不同的数据表中,即外部数据源中的第一调度数据包括多个数据表。第一缓冲区中第一调度数据可以理解为外部数据源中的数据在内存中的一份拷贝。外部数据源可以是数据库、或者具有指定格式的文件存储,亦或是数据库与文件存储构成的混合存储方式。在预设的全量加载情况下,将外部数据源中的调度数据全量加载至内存的第一缓冲区中,之后根据调度情况执行增量加载,增量同步。一般的全量加载情况比如是首次启动、版本更新等。其中,增量加载以及增量同步是指预先记录数据源中的增删改等的增量数据,在需要加载或者同步时,将增量数据加载或同步至目标存储区域。步骤102:将第一缓冲区中的第一调度数据转换成预设数据格式后存储在内存的第二缓冲区。其中,第一调度数据是直接从外部数据源中按表格数据形式加载过来的,而表格数据组织形式不便于调度程序的使用,因此,步骤102将第一缓冲区中的第一调度数据转换成预设数据格式后存储在内存的第二缓冲区,这样调度程序可方便地从第二缓冲区调用数据。本实施方式中该预设数据格式可以为按照各数据表之间的关联属性确定的键值(即key-value)格式,包括由多个键值格式组合成的数据结构,然不限于此。其中,在进行键值格式的转换时第一缓冲区中的第一调度数据需要满足一定的条件。具体地,第一调度数据的格式可以类似设计如下:dns系统信息表:{x,x1,x2,x3,x4}dnsmap(二级域名)信息表:{y,y1,y2,y3,y4}view(区域)信息表:{z,z1,z2,z3,z4}cluster(集群)信息表:{m,n,m1,m2,m3,m4,m5}ip信息表:{n,n1,n2,n3,n4,n5}原始覆盖表:{x,y,z,m}最终覆盖表:{x,y,z,m,n}其中,上述带数字的字段表示非主键字段,仅为表示方便。对于上述各表,假设存在数集r表示为目标系统允许的数值范围,存在一种映射f:d→r,存在x∈d,总有唯一确定的一数据行y与之对应,这个数据表的集合我们可以用rf或(d)表示,即rf=(d)={y|y=f(x),x∈d}。按照上述关系设计的第一调度数据中的各数据表,即可使得第一调度数据中的各数据表转换成对应的键值格式。具体地,通过对第一调度数据中的各个数据表的关键属性、关联属性进行梳理,以主键为索引,将第一调度数据组织成key-value格式,并存储在第二缓冲区,以便调度程序调用。其中,第一调度数据中最终覆盖数据可以如下表:dns系统二级域名区域集群(组)ip地址其他511000005691000159.49.42.253...5110000058810002115.231.22.80...511000006691000159.49.42.253...5110000068810004123.161.57.38...其中,整合后第二缓冲区的数据格式有如下特性;比如,通过上述的基础数据表,可构建出如下关系:采用集合列举法表示如下:根据组m可以查到服务的{(y,z)}集合,如上述表格所示:集群10001可以查到服务的集合为{(10000005,69),(10000006,69)},下文同理;根据组m可以查到服务的{(x,y,z)}集合;根据组m可以查到组下的{n}集合;根据n可以查到服务的{(y,z)}集合;根据n可以查到服务的{(x,y,z)}集合;根据(y,z)可以查到覆盖下所有的{(m)}集合;根据(x,y,z)可以查到覆盖下所有的{(m)}集合;根据(y,z)可以查到覆盖下所有的{(n)}集合;根据(x,y,z)可以查到覆盖下所有的{(n)}集合;等等;步骤103:根据第二缓冲区中的第一调度数据以及实时获取的第二调度数据得到服务器部署更新信息。第二调度数据为cdn监控子系统发送过来的的实时动态调度数据,第二调度数据包括:cdn系统服务集群中各个维度的实时带宽、峰值带宽以及健康值等等,但不应以此为限。第二调度数据一般的,先从外部接口获取,然后临时存储在redis的缓存数据库中,调度系统使用时再从缓存数据库中获取。其中,上述提到的各个维度,可以包括(y,z)粒度,(y)粒度,(m)粒度的实时、峰值带宽等。其中,比如(y,z)粒度的数据格式可以如下:实时数据头二级域名(y)区域(z)实时带宽峰值带宽rd_dnsmap_view_edge100000569188388rd_dnsmap_view_edge100000688288488rd_dnsmap_view_edge100000799788999上述格式数据,拼装成字符串,存储在redis缓存数据库中,提供给调度系统计算模块使用。步骤103具体包括:根据第二缓冲区中的第一调度数据以及实时获取的第二调度数据确定待调度的服务器是否满足预设服务条件,若不满足预设服务条件,则对不满足预设服务条件的服务器添加更新标记,将带有更新标记的服务器信息作为服务器部署更新信息的一部分。其中,预设服务条件用于反映服务器的服务能力,例如服务器目前的带宽承载能力、健康指数、故障情况等。若服务器带宽承载能力不足、故障或者服务器健康指数不达标,则可确定该服务器不符合预设服务条件。并将不符合预设服务条件的服务器打上更新标记,然后在cdn服务集群各层级中挑选替换服务节点,然后将带有更新标记的服务器信息及其替换服务节点等的服务器部署更新信息推送给部署平台、并同步更新外部数据源、第一缓冲区和第二缓冲区。步骤104:将服务器部署更新信息更新至内存的第三缓冲区。步骤105:将第三缓冲区中的服务器部署更新信息推送至部署平台,并增量同步至外部数据源、第一缓冲区以及第二缓冲区。例如将第三缓冲区中的服务器部署更新信息推送至cdn部署平台,以便更新cdn加速服务系统。具体地,可以将打上删除标记的cdn服务器从cdn加速服务系统中删除,对打上替换标记的cdn加速服务器进行替换。在增量同步服务器部署更新信息至外部数据源、第一缓冲区以及第二缓冲区时,可以先将第三缓冲区中的服务器部署更新信息增量同步至外部数据源,再将同步后的外部数据源的第一调度数据增量同步至第一缓冲区,将增量同步后的第一缓冲区的第一调度数据增量同步至第二缓冲区。在实际应用中,还可以将外部数据源中的第一调度数据增量同步更新至内存中的各缓冲区,从而保证第一、第二缓冲区中的数据与外部数据源中的数据一致。本实施方式相对于现有技术而言,通过将加载于内存中的第一缓冲区中的第一调度数据转换成键值格式后存放在内存的第二缓冲区,并根据第二缓冲区中键值格式的第一调度数据以及实时获取的第二调度数据得到服务器部署更新信息,并在内存中开辟出第三缓冲区存储该服务器部署更新信息,在将第三缓冲区中的服务器部署更新信息推送至部署平台以实现cdn服务器调度的同时,还将第三缓冲区中的服务器部署更新信息增量同步至外部数据源以及第一缓冲区和第二缓冲区,从而以利用空间换取时间的方式在内存中通过增量数据更新的方式实现调度数据增量加载,避免不必要的大数据量操作,有利于提高调度效率以及调度系统的稳定性。本发明的第二实施方式涉及一种调度方法,请参阅图2,该方法包括步骤201至步骤206。步骤201:获取过滤规则。步骤202:根据过滤规则对外部数据源中的第一调度数据进行过滤,将过滤后的第一调度数据加载至第一缓冲区。过滤规则例如用于剔除非受控资源,因此使得加载至源加载区中的第一调度数据均为受控资源,避免加载无效数据。步骤203:将第一缓冲区中的第一调度数据转换成预设数据格式后存储在内存的第二缓冲区。步骤204:根据第二缓冲区中的第一调度数据以及实时获取的第二调度数据得到服务器部署更新信息。步骤205:将服务器部署更新信息更新至内存的第三缓冲区。步骤206:将第三缓冲区中的服务器部署更新信息推送至部署平台,并增量同步至外部数据源、第一缓冲区以及第二缓冲区。步骤203~步骤206可参考第一实施方式中的步骤102~步骤105,此处不再赘述。本实施方式相对于现有技术而言,通过将加载于内存中的第一缓冲区中的第一调度数据转换成键值格式后存放在内存的第二缓冲区,并根据第二缓冲区中键值格式的第一调度数据以及实时获取的第二调度数据得到服务器部署更新信息,并在内存中开辟出第三缓冲区存储该服务器部署更新信息,在将第三缓冲区中的服务器部署更新信息推送至部署平台以实现cdn服务器调度的同时,还将第三缓冲区中的服务器部署更新信息增量同步至外部数据源以及第一缓冲区和第二缓冲区,从而以利用空间换取时间的方式在内存中通过增量数据更新的方式实现调度数据增量加载,避免不必要的大数据量操作,有利于提高调度效率以及调度系统的稳定性。并且,在将外部数据源中的第一调度数据加载至内存的第一缓冲区之前,对其进行过滤,从而可避免无效数据的加载。本发明的第三实施方式涉及一种调度装置,请参阅图3,该调度装置300包括:加载模块301,用于将外部数据源中的第一调度数据加载至内存中的第一缓冲区;数据转换模块302,用于将第一缓冲区中的第一调度数据转换成预设数据格式后存储在内存的第二缓冲区;计算模块303,用于根据第二缓冲区中的第一调度数据以及实时获取的第二调度数据得到服务器部署更新信息;更新模块304,用于将服务器部署更新信息更新至内存的第三缓冲区;推送模块305,用于将第三缓冲区中的服务器部署更新信息推送至部署平台,增量同步模块306,用于将第三缓冲区中的服务器部署更新信息增量同步至外部数据源、第一缓冲区以及第二缓冲区。加载模块301具体用于获取过滤规则,根据过滤规则对外部数据源中的第一调度数据进行过滤,将过滤后的第一调度数据加载至第一缓冲区。加载模块301还可以用于将外部数据源中的第一调度数据增量同步更新至内存中的缓冲区。在一个例子中,第一缓冲区中的第一调度数据包括多个数据表,预设数据格式可以为按照各数据表之间的关联属性确定的键值格式。计算模块303具体用于根据第二缓冲区中的第一调度数据以及实时获取的第二调度数据得到服务器部署更新信息。具体地,计算模块303具体用于:根据第二缓冲区中的第一调度数据以及实时获取的第二调度数据确定待调度的服务器是否满足预设服务条件,若不满足预设服务条件,则对不满足预设服务条件的服务器添加更新标记,将带有更新标记的服务器信息作为服务器部署更新信息。可选地,增量同步模块306具体用于根据键值格式中的键属性将第三缓冲区中的服务器部署更新信息增量同步至外部数据源、第一缓冲区以及第二缓冲区。本实施方式的调度装置,通过将加载于内存中的第一缓冲区中的第一调度数据转换成键值格式后存放在内存的第二缓冲区,并根据第二缓冲区中键值格式的第一调度数据以及实时获取的第二调度数据得到服务器部署更新信息,并在内存中开辟出第三缓冲区存储该服务器部署更新信息,在将第三缓冲区中的服务器部署更新信息推送至部署平台以实现cdn服务器调度的同时,还将第三缓冲区中的服务器部署更新信息增量同步至外部数据源以及第一缓冲区和第二缓冲区,从而以利用空间换取时间的方式在内存中通过增量数据更新的方式实现调度数据增量加载,避免不必要的大数据量操作,有利于提高调度效率以及调度系统的稳定性。并且,在将外部数据源中的第一调度数据加载至内存的第一缓冲区之前,对其进行过滤,从而可避免无效数据的加载。本发明的第四实施方式涉及一种电子设备。本实施方式的电子设备可以是独立的服务器,也可以是服务器群。如图4所示,该电子设备包括:存储器402和处理器401;其中,所述存储器402存储有可被所述至少一个处理器401执行的指令,所述指令被所述至少一个处理器401执行以实现:将外部数据源中的第一调度数据加载至内存中的第一缓冲区;将所述第一缓冲区中的第一调度数据转换成预设数据格式后存储在所述内存的第二缓冲区;根据所述第二缓冲区中的第一调度数据以及实时获取的第二调度数据得到服务器部署更新信息;将所述服务器部署更新信息更新至所述内存的第三缓冲区;将所述第三缓冲区中的服务器部署更新信息推送至部署平台,并增量同步至所述外部数据源、所述第一缓冲区以及所述第二缓冲区。一个或多个处理器401以及存储器402,图4中以一个处理器401为例。处理器401、存储器402可以通过总线或者其他方式连接,图4中以通过总线连接为例。存储器402作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。处理器401通过运行存储在存储器402中的非易失性软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述调度方法。存储器402可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施方式中,存储器402可选包括相对于处理器401远程设置的存储器,这些远程存储器可以通过网络连接至外接设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。一个或者多个模块存储在存储器402中,当被一个或者多个处理器401执行时,执行上述任意方法实施方式中的调度方法。上述设备可执行本发明实施方式所提供的方法,具备执行方法相应的功能模块和有益效果,未在本实施方式中详尽描述的技术细节,可参见本发明实施方式所提供的方法。本实施方式通过将加载于内存中的第一缓冲区中的第一调度数据转换成键值格式后存放在内存的第二缓冲区,并根据第二缓冲区中键值格式的第一调度数据以及实时获取的第二调度数据得到服务器部署更新信息,并在内存中开辟出第三缓冲区存储该服务器部署更新信息,在将第三缓冲区中的服务器部署更新信息推送至部署平台以实现cdn服务器调度的同时,还将第三缓冲区中的服务器部署更新信息增量同步至外部数据源以及第一缓冲区和第二缓冲区,从而以利用空间换取时间的方式在内存中通过增量数据更新的方式实现调度数据增量加载,避免不必要的大数据量操作,有利于提高调度效率以及调度系统的稳定性。并且,在将外部数据源中的第一调度数据加载至内存的第一缓冲区之前,对其进行过滤,从而可避免无效数据的加载。本发明的第五实施方式涉及一种非易失性存储介质,用于存储计算机可读程序,所述计算机可读程序用于供计算机执行上述部分或全部的方法实施例。即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1