掌桥专利:专业的专利平台
掌桥专利
首页

一种数据源动态调度方法、装置、电子设备及存储介质

文献发布时间:2023-06-19 11:02:01


一种数据源动态调度方法、装置、电子设备及存储介质

技术领域

本申请涉及数据处理领域,具体而言,涉及一种数据源动态调度方法、装置、电子设备及存储介质。

背景技术

随着互联网的普遍应用,各行业的业务数据通常存储在多个数据源中,相应的,各行业在运行业务时,就需要对多个数据源中的相关业务数据进行频繁的访问与处理。

目前,传统对多个数据源进行调度的方法如下:在响应访问请求时,基于当前已有的数据源对应的负载情况,为该访问请求分配执行数据源,以通过该执行数据源响应该访问请求。

但是,上述调度方法中,是通过一次数据源调度为该访问请求进行分配执行数据源,当该访问请求在分配的该执行数据源下处于排队情况时,可能会有其他数据源完成任务而处于空闲状态的情况,因此,上述调度方法使得数据源的资源利用率低,进而降低了访问请求的处理效率。

发明内容

有鉴于此,本申请的目的在于提供一种数据源动态调度方法、装置、电子设备及存储介质,能够实时根据当前各个数据源业务请求情况判断数据源负载情况并多次对业务请求进行调度,使各个数据源负载基本处于同一水平,无需中断当前业务或是重启设备便可以完成对数据源的增加或移除,稳定性高,提高了资源利用率,大幅提升了业务完成效率。

第一方面,本申请实施例提供了一种数据源动态调度方法,所述方法包括:

在第一数据源响应携带有目标业务的访问请求且所述访问请求处于等待的过程中,获取所述目标业务对应的多个数据源的负载信息;其中,所述多个数据源中具有相同的业务数据;所述第一数据源是基于所述多个数据源的负载信息确定的;

根据所述多个数据源对应的负载信息,计算所述多个数据源分别对应的目标分值;其中,所述目标分值用于表征所述数据源对应的负载量大小;

如果根据所述目标分值确定的候选数据源为与所述第一数据源不同的第二数据源,则将所述第一数据源下的所述访问请求转发给所述第二数据源。

在一种可能的实施方式中,所述方法还包括:

在第一数据源响应携带有目标业务的访问请求且所述访问请求处于等待的过程中,若监测到所述目标业务对应的新数据源上线,则将预设分值确定所述新数据源对应的目标分值;其中,所述预设分值为所述目标分值对应计算范围的最低值。

在一种可能的实施方式中,所述方法还包括:

响应针对数据源的选择指令,确定所述选择指令选择的目标数据源,并停止获取所述目标数据源对应的负载信息;

响应针对所述目标数据源的删除指令,当所述目标数据源满足预设的删除条件时,删除所述目标数据源。

所述负载信息包括负载指标和所述负载指标对应的权重值;所述根据所述多个数据源对应的负载信息,计算所述多个数据源分别对应的目标分值,包括:

根据所述多个数据源分别对应的负载指标和每个负载指标对应的权重值,计算每个数据源对应的目标分值;其中,所述负载指标包括以下至少之一:单位时间内目标业务总执行时间、单位时间内目标业务总执行条数,每个数据源正在执行以及挂载的目标业务的总条数。

在一种可能的实施方式中,所述方法还包括:

根据多个数据源分别对应的目标分值,选取对应的目标分值最小的候选数据源;

若所述候选数据源为多个,则根据所述候选数据源的获取顺序,选取对应的获取顺序最小的候选数据源作为所述第一数据源或者所述第二数据源;其中,所述候选数据源的编号大小表征所述候选数据源的获取顺序。

在一种可能的实施方式中,所述方法还包括:

所述数据源响应了所述目标业务的访问请求,并且在将所述目标业务的访问请求执行完成后,将所述数据源中的所述业务数据同步给其他数据源。

在一种可能的实施方式中,通过终端设备提供图形用户界面;

在所述图形用户界面上显示所述访问请求在调度执行过程中的处理信息,所述处理信息至少包括:所述目标业务对应的多个数据源的负载信息、所述多个数据源分别对应的目标分值、所述访问请求被分配的执行数据源。

第二方面,本申请实施例提供了一种数据源动态调度装置,所述装置包括:

数据源管理调度机,用于在第一数据源响应携带有目标业务的访问请求且所述访问请求处于等待的过程中,获取所述目标业务对应的多个数据源的负载信息;其中,所述多个数据源中具有相同的业务数据;所述第一数据源是基于所述多个数据源的负载信息确定的;

策略机,用于根据所述多个数据源对应的负载信息,计算所述多个数据源分别对应的目标分值;其中,所述目标分值用于表征所述数据源对应的负载量大小;

所述数据源管理调度机,还用于如果根据所述目标分值确定的候选数据源为与所述第一数据源不同的第二数据源,则将所述第一数据源下的所述访问请求转发给所述第二数据源。

在一种可能的实施方式中,

在第一数据源响应携带有目标业务的访问请求且所述访问请求处于等待的过程中,所述数据源管理调度机若监测到所述目标业务对应的新数据源上线,所述策略机则还用于将预设分值确定所述新数据源对应的目标分值;其中,所述预设分值为所述目标分值对应计算范围的最低值。

在一种可能的实施方式中,

所述数据源管理调度机,还用于响应针对数据源的选择指令,确定所述选择指令选择的目标数据源,并停止获取所述目标数据源对应的负载信息;响应针对所述目标数据源的删除指令,当所述目标数据源满足预设的删除条件时,删除所述目标数据源。

所述负载信息包括负载指标和所述负载指标对应的权重值;所述根据所述多个数据源对应的负载信息,计算所述多个数据源分别对应的目标分值,包括:

所述策略机还用于根据所述多个数据源分别对应的负载指标和每个负载指标对应的权重值,计算每个数据源对应的目标分值;其中,所述负载指标包括以下至少之一:单位时间片内,目标业务总执行时间、单位时间内访问请求总执行条数,每个数据源响应访问请求的总条数、每个数据源挂载的访问请求的总条数。

在一种可能的实施方式中,

所述策略机,还用于根据多个数据源分别对应的目标分值,选取对应的目标分值最小的候选数据源;若所述候选数据源为多个,则根据所述候选数据源的获取顺序,选取对应的获取顺序最小的候选数据源作为所述第一数据源或者所述第二数据源;其中,所述候选数据源的编号大小表征所述候选数据源的获取顺序。

在一种可能的实施方式中,

所述数据源响应了所述目标业务的访问请求,并且在将所述目标业务的访问请求执行完成后,将所述数据源中的所述业务数据同步给其他数据源。

在一种可能的实施方式中,所述装置通过终端设备提供图形用户界面;

在所述图形用户界面上显示所述访问请求在调度执行过程中的处理信息,所述处理信息至少包括:所述目标业务对应的多个数据源的负载信息、所述多个数据源分别对应的目标分值、所述访问请求被分配的执行数据源。

第三方面,本申请实施例提供了一种电子设备,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行如第一方面任一项所述的数据源动态调度方法的步骤。

第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行第一方面任一项所述的数据源动态调度方法的步骤。

本申请实施例提供的一种数据源动态调度方法及装置,在已经为业务请求分配数据源且业务请求在该数据源下处于排队的情况下,能够基于各个数据源不断更新的负载情况,再次为处于等待执行的该业务请求进行一次或多次的择优分配,保证了各个数据源长期处于基本同一负载水平,提高了数据源的资源利用率,且提高了访问请求的处理效率。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1示出了本申请实施例提供的一种数据源动态调度方法的流程图;

图2示出了本申请实施例提供的一种数据源动态调度方法的流程图;

图3示出了本申请实施例提供的一种数据源动态调度方法的流程图;

图4示出了本申请实施例提供的一种数据源动态调度方法的流程图;

图5示出了本申请实施例提供的一种数据源动态调度方法的流程图;

图6示出了本申请实施例提供的一种数据源动态调度方法的流程图;

图7示出了本申请实施例提供的一种数据源动态调度方法的流程图;

图8示出了本申请实施例提供的一种数据源动态调度装置的结构示意图;

图9示出了本申请实施例提供的一种电子设备的结构示意图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,应当理解,本申请中附图仅起到说明和描述的目的,并不用于限定本申请的保护范围。另外,应当理解,示意性的附图并未按实物比例绘制。本申请中使用的流程图示出了根据本申请的一些实施例实现的操作。应该理解,流程图的操作可以不按顺序实现,没有逻辑的上下文关系的步骤可以反转顺序或者同时实施。此外,本领域技术人员在本申请内容的指引下,可以向流程图添加一个或多个其他操作,也可以从流程图中移除一个或多个操作。

另外,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。

需要说明的是,本申请实施例中将会用到术语“包括”,用于指出其后所声明的特征的存在,但并不排除增加其它的特征。

本申请实施例提供的一种数据源动态调度方法,在已经为业务请求分配数据源且业务请求在该数据源下处于排队的情况下,能够基于各个数据源不断更新的负载情况,再次为处于等待执行的该业务请求进行一次或多次的择优分配,保证了各个数据源长期处于基本同一负载水平,提高了数据源的资源利用率,且提高了访问请求的处理效率。

参照图1所示,本申请实施例提供了一种数据源动态调度方法,所述方法包括:

S101、在第一数据源响应携带有目标业务的访问请求且所述访问请求处于等待的过程中,获取所述目标业务对应的多个数据源的负载信息;其中,所述多个数据源中具有相同的业务数据;所述第一数据源是基于所述多个数据源的负载信息确定的。

本申请实施例中,目标业务可以为结构化查询语言(Structured QueryLanguage,SQL),负载信息为数据源的多个关键负载指标,多个数据源为多个不同服务器上的数据库,第一数据源为已经为SQL根据多个负载指标指定分配的将要对上述SQL进行执行的数据源。其中,多个数据源中的业务数据相同,多个数据源中的任一数据源都可以完成对上述SQL的执行。

当第一数据源中的SQL处于等待执行状态时,获取上述多个数据源的多个负载指标。

S102、根据所述多个数据源对应的负载信息,计算所述多个数据源分别对应的目标分值;其中,所述目标分值用于表征所述数据源对应的负载量大小。

本申请实施例中,根据负载信息计算得出的数据源的目标分值越低,则数据源的负载量越小;数据源的目标分值越高,则数据源的负载量越大。其中,目标分值的范围下限为0。

S103、如果根据所述目标分值确定的候选数据源为与所述第一数据源不同的第二数据源,则将所述第一数据源下的所述访问请求转发给所述第二数据源。

本申请实施例中,若某个第一数据源中的目标业务处于等待执行状态,且此时存在其他数据源比第一数据源的目标分值更低,且为多个数据源中目标分值中最低的一个,则将在第一数据源中等待执行的上述目标业务转发给该其他数据源,该其他数据源即作为第二数据源。

参照图2所示,本申请实施例提供的数据源调度方法中,所述方法还包括:

S201、在第一数据源响应携带有目标业务的访问请求且所述访问请求处于等待的过程中,若监测到所述目标业务对应的新数据源上线,则将预设分值确定所述新数据源对应的目标分值;其中,所述预设分值为所述目标分值对应计算范围的最低值。

若增加了新的数据源,则无需获取该新数据源的多个负载指标通过计算得出该新的数据源的目标分值,直接将该新数据源的目标分值置为0。

具体的,该新数据中的业务数据与之前已经连接的多个数据源具有同样的业务数据。该数据源的上线时机可以为其他多个数据源存在正在执行的目标业务以及存在等待执行的目标业务时上线。

进一步,将其他第一数据源中等待执行的目标业务转发给该新的数据源。

参照图3所示,本申请实施例提供的数据源调度方法中,所述方法还包括:

S301、响应针对数据源的选择指令,确定所述选择指令选择的目标数据源,并停止获取所述目标数据源对应的负载信息。

若需要对多数据源中的数据源进行删减,则在响应针对该数据源的选择指令确定要被选中的数据源后,停止从该数据源获取该数据源对应的多个负载指标。

S302、响应针对所述目标数据源的删除指令,当所述目标数据源满足预设的删除条件时,删除所述目标数据源。

响应针对数据源的删除指令,若满足预设的删除条件即该数据源不存在等待执行的目标业务以及不存在正在执行的目标业务时,完成对该数据源的删除。

参照图4所示,所述负载信息包括负载指标和所述负载指标对应的权重值;所述根据所述多个数据源对应的负载信息,计算所述多个数据源分别对应的目标分值,包括:

S401、根据所述多个数据源分别对应的负载指标和每个负载指标对应的权重值,计算每个数据源对应的目标分值;其中,所述负载指标包括以下至少之一:单位时间内目标业务总执行时间、单位时间内目标业务总执行条数,每个数据源正在执行以及挂载的目标业务的总条数。

在本申请实施例中,使用了三个关键负载指标作为参数,目标分值的具体计算公式为L(目标分值)=E1*Hst+E2*Hs+E3*Cs。其中,Hst表示:单位时间内目标业务总执行时间;Hs表示:单位时间内目标业务总执行条数;Cs表示:正在执行以及挂载的目标业务的总条数;

进一步,Hst对应有匹配的权重参数E1,Hs对应有匹配的权重参数E2,Cs对应有匹配的权重参数E3;其中,权重是预先设置分配好的。

参照图5所示,本申请实施例提供的数据源调度方法中,所述方法还包括:

S501、根据多个数据源分别对应的目标分值,选取对应的目标分值最小的候选数据源。

根据异步记录的多个数据源对应的负载信息计算目标分值,选取对应目标分值最小的数据源作为候选数据源。

S502、若所述候选数据源为多个,则根据所述候选数据源的获取顺序,选取对应的获取顺序最小的候选数据源作为所述第一数据源或者所述第二数据源;其中,所述候选数据源的编号大小表征所述候选数据源的获取顺序。

在一种可能的情况中,当目标分值最小的数据源同时存在多个时,则将最先获取到的数据源作为执行目标业务的数据源,该数据源可以作为第一数据源,也可以作为第二数据源。

参照图6所示,本申请实施例提供的数据源调度方法中,所述方法还包括:

S601、所述数据源响应了所述目标业务的访问请求,并且在将所述目标业务的访问请求执行完成后,将所述数据源中的所述业务数据同步给其他数据源。

在一种可能的情况中,若任一数据源因执行目标业务导致数据源中的业务数据发生了变动,则将变动后的业务数据同步到其他数据源中。

参照图7所示,本申请实施例提供的数据源调度方法中,通过终端设备提供图形用户界面;

S701、在所述图形用户界面上显示所述访问请求在调度执行过程中的处理信息,所述处理信息至少包括:所述目标业务对应的多个数据源的负载信息、所述多个数据源分别对应的目标分值、所述访问请求被分配的执行数据源。

在一种可能的情况中,用户可以通过终端设备提供的用户界面实时查看多个数据源对应的多个负载指标以及由多个负载指标计算得出的对应目标分值大小,目标业务具体的执行情况,执行情况具体包括:目标业务具体由哪个数据源执行以及是否执行完成。

基于同一发明构思,本申请实施例中还提供了与数据源动态调度方法对应的数据源动态调度装置,由于本申请实施例中的装置解决问题的原理与本申请实施例上述数据源动态调度方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。

参照图8所示,为本申请实施例提供的一种数据源动态调度装置的示意图,所述装置包括:

数据源管理调度机801,用于在第一数据源响应携带有目标业务的访问请求且所述访问请求处于等待的过程中,获取所述目标业务对应的多个数据源的负载信息;其中,所述多个数据源中具有相同的业务数据;所述第一数据源是基于所述多个数据源的负载信息确定的;

策略机802,用于根据所述多个数据源对应的负载信息,计算所述多个数据源分别对应的目标分值;其中,所述目标分值用于表征所述数据源对应的负载量大小;

所述数据源管理调度机801,还用于如果根据所述目标分值确定的候选数据源为与所述第一数据源不同的第二数据源,则将所述第一数据源下的所述访问请求转发给所述第二数据源。

在一种可能的实施方式中,

在第一数据源响应携带有目标业务的访问请求且所述访问请求处于等待的过程中,若所述数据源管理调度机监测到所述目标业务对应的新数据源上线,则所述策略机还用于将预设分值确定所述新数据源对应的目标分值;其中,所述预设分值为所述目标分值对应计算范围的最低值。

在一种可能的实施方式中,

所述数据源管理调度机,还用于响应针对数据源的选择指令,确定所述选择指令选择的目标数据源,并停止获取所述目标数据源对应的负载信息;响应针对所述目标数据源的删除指令,当所述目标数据源满足预设的删除条件时,删除所述目标数据源。

所述负载信息包括负载指标和所述负载指标对应的权重值;所述根据所述多个数据源对应的负载信息,计算所述多个数据源分别对应的目标分值,包括:

所述策略机还用于根据所述多个数据源分别对应的负载指标和每个负载指标对应的权重值,计算每个数据源对应的目标分值;其中,所述负载指标包括以下至少之一:单位时间片内,目标业务总执行时间、单位时间内访问请求总执行条数,每个数据源响应访问请求的总条数、每个数据源挂载的访问请求的总条数。

在一种可能的实施方式中,

所述策略机,还用于根据多个数据源分别对应的目标分值,选取对应的目标分值最小的候选数据源;若所述候选数据源为多个,则根据所述候选数据源的获取顺序,选取对应的获取顺序最小的候选数据源作为所述第一数据源或者所述第二数据源;其中,所述候选数据源的编号大小表征所述候选数据源的获取顺序。

在一种可能的实施方式中,

所述数据源响应了所述目标业务的访问请求,并且在将所述目标业务的访问请求执行完成后,将所述数据源中的所述业务数据同步给其他数据源。

在一种可能的实施方式中,所述数据源动态调度装置通过终端设备提供图形用户界面;

在所述图形用户界面上显示所述访问请求在调度执行过程中的处理信息,所述处理信息至少包括:所述目标业务对应的多个数据源的负载信息、所述多个数据源分别对应的目标分值、所述访问请求被分配的执行数据源。

本申请实施例提供的一种数据源动态调度装置,在已经为业务请求分配数据源且业务请求在该数据源下处于排队的情况下,能够基于各个数据源不断更新的负载情况,再次为处于等待执行的该业务请求进行一次或多次的择优分配,保证了各个数据源长期处于基本同一负载水平,提高了数据源的资源利用率,且提高了访问请求的处理效率。

参照图9所示,本申请实施例提供的一种电子设备900,包括:处理器901、存储器902和总线,所述存储器902存储有所述处理器901可执行的机器可读指令,当电子设备运行时,所述处理器901与所述存储器902之间通过总线通信,所述处理器901执行所述机器可读指令,以执行如上述数据源动态调度方法的步骤。

具体地,上述存储器902和处理器901能够为通用的存储器和处理器,这里不做具体限定,当处理器901运行存储器902存储的计算机程序时,能够执行上述数据源动态调度方法。

对应于上述数据源动态调度方法,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行上述数据源动态调度方法的步骤。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考方法实施例中的对应过程,本申请中不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。

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

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

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

以上仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

相关技术
  • 一种数据源动态调度方法、装置、电子设备及存储介质
  • 分布式动态调度方法、装置、电子设备及存储介质
技术分类

06120112774568