一种云端服务路由分配方法及装置与流程

专利2022-06-30  46


本发明实施例涉及云计算技术领域,尤其涉及一种云端服务路由分配方法及装置。



背景技术:

在云计算系统中,随着系统访问流量和行业业务的发展,促使了软件架构的发展,使得日均访问量达到千万级以上,同时业务任务也从“单流程单业务”发展到“多流程融合业务”,由于业务任务的分配原则直接影响云计算的服务质量,因此,需要对云计算中的服务路由进行合理分配。

现有的支撑核心系统基于流动计算架构,使用服务调度中心实时管理集群的访问容量,对服务资源进行访问调度。其中,服务调度中心核心组件为服务注册中心和服务负载均衡模块。应用按照业务和功能聚类进行垂直和水平拆分,拆分后的各个模块作为服务提供方以接口服务的方式提供能力,并将服务注册到服务注册中心。服务注册中心将注册的服务信息发布到订阅此服务的服务使用方,根据负载均衡策略为服务使用方调用相应的服务。

然而,现有技术在对任务进行分配时,多采用轮询策略、随机策略、较小并发量服务或响应时间比例等方式进行服务器的分配,以至于在对服务任务进行处理时,降低了整体任务的处理效率,导致服务器的资源利用率较低。



技术实现要素:

针对现有技术存在的问题,本发明实施例提供一种云端服务路由分配方法及装置。

第一方面,本发明实施例提供一种云端服务路由分配方法,包括:

获取每个服务实例完成目标任务集合中单个子任务的预测服务收益值,所述预测服务收益值根据趋势预测法得到;

通过蚂蚁算法,根据所述预测服务收益值进行任务路由分配,得到所述目标任务集合的最优任务路由路径。

第二方面,本发明实施例提供了一种云端服务路由分配装置,包括:

处理模块,用于获取每个服务实例完成目标任务集合中单个子任务的预测服务收益值,所述预测服务收益值根据趋势预测法得到;

任务路由分配模块,用于通过蚂蚁算法,根据所述预测服务收益值进行任务路由分配,得到所述目标任务集合的最优任务路由路径。

第三方面,本发明实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所提供的方法的步骤。

第四方面,本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面所提供的方法的步骤。

本发明实施例提供的一种云端服务路由分配方法及装置,根据服务实例对应的服务收益值,预测下次执行任务时的服务收益值,并根据预测的服务收益值,获取下次服务路由分配的最优解,从而提升了整体任务的处理效率,提高了服务器资源的利用率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的云端服务路由分配方法的流程示意图;

图2为本发明实施例提供的服务路由分配策略的示意图;

图3为本发明实施例提供的云端服务路由分配装置的结构示意图;

图4为本发明实施例提供的电子设备结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

目前的云服务在容器云中部署后,当处理效率降低时,负载均衡器只能探测服务存活状态进行服务路由控制,未采取有效策略对服务路由进行控制。另外,在支撑核心系统在进行部署时,考虑到应用的连续性,一般对业务系统进行容灾部署,常见的容灾有数据库异地容灾部署、服务多集群、服务异地部署和服务自动扩缩容等。因此,当服务提供方和服务消费方处于异地时,会出现服务的跨机房路由,增加了服务的网络延时。

图1为本发明实施例提供的云端服务路由分配方法的流程示意图,如图1所示,本发明实施例提供了一种云端服务路由分配方法,包括:

步骤101,获取每个服务实例完成目标任务集合中单个子任务的预测服务收益值,所述预测服务收益值根据趋势预测法得到;

步骤102,通过蚂蚁算法,根据所述预测服务收益值进行任务路由分配,得到所述目标任务集合的最优任务路由路径。

在本发明实施例中,在接收到目标任务集合的任务请求之后,首先获取处理目标任务集合的服务实例列表。根据目标任务集合的任务类型,从服务注册中心获取相应的服务实例列表,在服务实例列表中包括服务实例信息、服务规格信息、服务目录信息和服务位置信息。根据目标任务集合,结合服务实例列表中的相关信息,选取可用于目标任务集合的服务实例。然后,通过步骤101,获取每个服务实例完成目标任务集合中单个子任务的预测服务收益值,在本发明实施例中,将服务实例中的任务执行时间和网络通信代价等因素组合转化为服务收益值,采用趋势预测法根据历史服务收益值预测下次任务的服务收益值。最后,通过步骤102,通过蚂蚁算法,根据所述预测服务收益值进行任务路由分配,得到所述目标任务集合的最优任务路由路径,在本发明实施例中,采用蚂蚁算法根据服务收益值进行任务路由分配,选取最大服务收益值的服务实例对目标任务集合进行处理,从而为目标任务集合分配最优的任务路由路径。

本发明实施例提供的一种云端服务路由分配方法,根据服务实例对应的服务收益值,预测下次执行任务时的服务收益值,并根据预测的服务收益值,获取下次服务路由分配的最优解,从而提升了整体任务的处理效率,提高了服务器资源的利用率。

在上述实施例的基础上,所述所述获取每个服务实例完成目标任务集合中单个子任务的预测服务收益值,包括:

获取每个服务实例的历史服务收益值,所述历史服务收益值包括历史任务执行时间和历史网络通信代价;

通过趋势预测法对每个服务实例的历史任务执行时间和历史网络通信代价进行预测处理,得到每个服务实例完成所述目标任务集合中单个子任务的预测服务收益值。

在本发明实施例中,首先获取服务实例列表中各服务实例对应的服务收益值,在服务收益值中记录有服务实例执行历史任务所需的时间,即历史任务执行时间,以及对应的服务路由与服务实例之间的通信代价,即历史网络通信代价,因此,根据任务执行时间和网络通信代价,可以得到服务收益值的公式:

服务收益值=1/(执行时间 通信代价);

当服务实例的服务收益值越大,则表示该服务实例处理任务的可见性也越大。在本发明实施例中,根据服务服务实例列表中保存的服务实例k每次处理任务时所产生的任务执行时间和网络通信代价,采取趋势预测法,得到本次进行服务任务分配时所需的预测服务收益值,基于趋势预测法的收益值预测模型公式为:

yt k=αt bt×k;

其中,at表示预测直线的截距,αt=2m(1)t-m(2)2;bt表示预测直线的斜率,n表示每次移动的平均长度,t表示处理任务次数,即任务处理的期数;m(1)t表示第t期且移动平均长度为n的一次移动平均值,即qi表示为第i次的服务收益值,t≥2n-2;m(2)2表示为第t期且移动平均长度为n的二次移动平均值,即m(1)i表示为第i次移动平均值,t≥2n-2;k表示趋势预测期数,yt k表示第t k期的预测服务收益值。以n=5为例,计算出二次移动平均值,具体如表1所示:

表1

根据表1所示,服务实例k还未分配第13期的处理任务,因此,需要对第13期的任务进行服务收益值预测。可参考表1所示,服务实例第12期的m(1)t=21.12,m(2)2=22.00,则对应的预测直线的截距:

αt=2m(1)t-m(2)2=2*21.12-22.00=20.24;

预测直线的斜率:

由此可得到第13期的预测服务收益值:

yt k=20.24 (-0.44)*1=19.8。

通过基于趋势预测法的收益值预测模型,继续预测其他服务实例的预测服务收益值,根据最大收益公式:

其中,xij∈{0,1},i∈{1,2,…,m},j∈{1,2,…n},qij表示执行第j个任务分配给第i个服务实例的服务收益值,即通过上述基于趋势预测法的收益值预测模型得到的预测服务收益值,xij为决策变量,xij=0表示不安排第i个服务实例执行第j个任务,xij=1表示安排第i个服务实例执行第j个任务。图2为本发明实施例提供的服务路由分配策略的示意图,如图2所示,tj表示目标任务集合,j小于等于n,ai表示可处理目标任务集合的服务实例,i小于等于m,p表示分配任务前的初始节点,p'表示分配任务结束的节点。初始节点p与任务节点tj之间存在边且代价常量为0,任务节点tj与服务实例节点ai之间存在边且边上代价为ai处理tj的权值,服务实例节点ai与任务节点存在边且代价常量为0。因此,服务路由分配方式是:寻找一条从p节点到达p'节点的路由路径,且经过所有tj节点的最短路径。参考图2所示,求解的最短路径如果经过所有n个t节点,则同样经过m个a节点。由于从t节点到a节点的边具有的权值为收益值qij(路径的长短),但从a节点到t节点的权值为0。因此,所有经过t到a节点的边,表示任务分配的边,即所求矩阵x,从而得到目标任务集合的最优任务路由路径。

本发明实施例通过考虑服务实例的历史服务收益值,通过趋势预测法预测本次服务路由收益值,根据预测收益值获取服务路由分配的最优解,提升了服务处理的整体效能,提高了服务器资源的利用率。

在上述实施例的基础上,所述所述通过蚂蚁算法,根据所述预测服务收益值进行任务路由分配,得到所述目标任务集合的最优任务路由路径,包括:

根据转移概率公式使得蚂蚁在每个子任务和每个服务实例之间的路由路径中进行迭代搜索;

若迭代次数或运算时间满足预设条件,则选取迭代过程中累计的预测服务收益值最大的蚂蚁搜索路径作为最优任务路由路径,以对所述目标任务集合进行服务路由分配。

在本发明实施例中,通过基于蚂蚁算法的路由分配算法得到最优任务路由路径。蚂蚁算法作为一种用来在图中寻找优化路径的概率算法,其灵感来源于蚂蚁在寻找食物过程中的发现路径的行为,通过模拟多只蚂蚁的蚁群协作过程,获取到每只蚂蚁在候选解的空间中独立的搜索解,并在所找到的解上留下一定量的信息。其中,解的性能越好代表蚂蚁留在其上的信息素越大,则信息素越大的解被选择的可能性也越大。

进一步地,在本发明实施例中,所述通过蚂蚁算法,根据所述预测服务收益值进行任务路由分配,得到所述目标任务集合的最优任务路由路径,还包括:

对蚂蚁搜索路径中的信息素进行更新,以用于下一次的服务路由分配。

在本发明实施例中,在t 1时刻,蚂蚁k在第i个节点上选择与该节点相连的概率最大的边进行转移,则节点i转移到节点j的路径选择方法,即转移概率公式为:

其中,jk(i)表示蚂蚁k下一步允许选择的节点集合,需要说明的是,jk(i)有2种情况:1)当蚂蚁从t节点到a节点时,jk(i)={a1,a2,...am}-atabuk,列表atabuk表示为记录了蚂蚁k刚刚经过的a类节点集的禁忌表;2)当蚂蚁从a节点到t节点时,jk(i)={t1,t2,...tn}-atabuk,列表atabuk表示为记录了蚂蚁k刚刚经过的t类节点集的禁忌表,即在每一次的迭代过程中,将蚂蚁经过的前一个转移路径记录到禁忌表中。ηij为启发式因子,表示蚂蚁从当前i节点到下一节点j的期望程度,在本发明实施例中,ηij表示为服务收益值;α为信息启发因子,表示蚁群在运动过程中残留信息素的相对重要程度;β为期望启发式因子,表示期望值相对重要程度;τij(t)表示t时刻在路径(i,j)连线上残留的信息素,在初始时刻时,各条路径上的信息素相等,设置τij(0)=const(const为常数),随着时间的推进,信息素会挥发,同时,随着蚂蚁的迭代,信息素会增加。因此,在t 1时刻,信息素τij(t)的更新公式为:

τij(t 1)=ρτij(t) δτij(t);

其中,δτij表示本次迭代节点i到节点j边上的信息素的总增量,δτkij表示第k只蚂蚁本次迭代节点i到节点j边上信息素的增量,ρ表示在某条路径上信息素轨迹挥发后的剩余度,q为正常数,lk表示第k蚂蚁在本次周游中所走过路径的总收益值。

在本发明实施例中,通过蚂蚁算法对服务实例列表和预测服务收益值进行迭代处理,从而得到目标任务集合的最优任务路由路径,参考图2,具体步骤如下:

s1,初始化第k只蚂蚁触发位置p;

s2,蚂蚁根据路径选择方法选择相应的边到达tj;

s3,根据路径选择方法选择相应的边从tj到达ai,则相应xij=1,同时累计获得的收益值;

s4,根据路径选择方法选择相应边从ai到达tj 1,则相应xij 1=1,同时累计获得的收益值,此时获得的收益值为0;

s5,根据路径选择方法选择相应边从tj 1到达ai 1,则相应xi 1j 1=1,同时累计获得的收益值;

s6,继续执行步骤s2至步骤s5,让蚂蚁在途中继续爬行;

s7,当蚂蚁到达a节点后且没有到达t节点的路径时,蚂蚁选择到达p'节点的路径,结束爬行;

s8,计算蚂蚁经过路径所获得的总收益值,根据信息素τij(t)的更新公式对蚂蚁搜索路径上的信息素进行更新,并根据最大收益公式获得在最大总收益值下,蚂蚁所经历的路径x,即最优任务路由路径;

s9,若未达到预定的迭代次数或运算时间未超过最大限度,则转至步骤s1。

本发明实施例通过考虑服务实例的历史服务收益值,通过趋势预测法预测本次服务路由收益值,采用蚂蚁算法根据服务收益值进行任务路由分配,选取网络通信代价较小的服务实例,提升了服务处理的整体效能,进而降低了跨机房服务的概率,减小服务异地访问而增加的网络消耗。

在上述实施例的基础上,所述通过蚂蚁算法,根据所述预测服务收益值进行任务路由分配,得到所述目标任务集合的最优任务路由路径之后,所述方法包括:

获取所述最优任务路由路径上的每个目标服务实例的任务执行时间和网络通信代价;

根据任务执行时间和网络通信代价对每个目标服务实例的服务收益值进行更新,以用于下一次的所述趋势预测法。

在本发明实施例中,在最优任务路由路径上的目标服务实例完成任务后,根据本次完成任务的任务执行时间和网络通信代价对目标服务实例的服务收益值进行更新,同时将更新后的信息保存目标服务实例中,以用于对下一次任务进行的服务路由分配。

本发明实施例通过将服务实例每一次的服务收益值进行更新,提高了服务路由分配的效率,使得服务路由分配更加合理。

在上述各实施例的基础上,在所述获取每个服务实例完成目标任务集合中单个子任务的预测服务收益值之前,所述方法还包括:

获取目标任务集合,所述目标任务集合中包括多个子任务;

根据每个子任务的任务信息生成服务清单列表,所述服务清单列表中包含多个服务实例。

在本发明实施例中,在进行服务路由分配之前,获取到用户提交的待路由分配的任务集合,即目标任务集合,根据目标任务集合中的不同子任务所携带的任务信息,选取可以用于处理子任务的服务实例集合,即服务清单列表,在本发明实施例中,子任务携带的任务信息包括任务类型、任务发布位置和任务规格信息等。

本发明实施例通过对待处理的目标任务集合进行预处理,提高了后续服务路由分配的效率。

图3为本发明实施例提供的云端服务路由分配装置的结构示意图,如图3所示,本发明实施例提供了一种云端服务路由分配装置,包括:处理301任务路由分配模块302,其中,处理模块301用于获取每个服务实例完成目标任务集合中单个子任务的预测服务收益值,所述预测服务收益值根据趋势预测法得到;任务路由分配模块302用于用于通过蚂蚁算法,根据所述预测服务收益值进行任务路由分配,得到所述目标任务集合的最优任务路由路径。

本发明实施例提供的一种云端服务路由分配装置,根据服务实例对应的服务收益值,预测下次执行任务时的服务收益值,并根据预测的服务收益值,获取下次服务路由分配的最优解,从而提升了整体任务的处理效率,提高了服务器资源的利用率。

在上述实施例的基础上,所述处理模块301包括:收益值获取单元和收益值预测单元,其中,收益值获取单元用于获取每个服务实例的历史服务收益值,所述历史服务收益值包括历史任务执行时间和历史网络通信代价;收益值预测单元用于通过趋势预测法对每个服务实例的历史任务执行时间和历史网络通信代价进行预测处理,得到每个服务实例完成所述目标任务集合中单个子任务的预测服务收益值。

在上述实施例的基础上,所述任务路由分配模块302包括:路径搜索单元,用于根据转移概率公式使得蚂蚁在每个子任务和每个服务实例之间的路由路径中进行迭代搜索;若迭代次数或运算时间满足预设条件,则选取迭代过程中累计的预测服务收益值最大的蚂蚁搜索路径作为最优任务路由路径,以对所述目标任务集合进行服务路由分配。

在上述实施例的基础上,所述装置还包括:获取模块和更新模块,其中,获取模块用于获取所述最优任务路由路径上的每个目标服务实例的任务执行时间和网络通信代价;更新模块用于根据任务执行时间和网络通信代价对每个目标服务实例的服务收益值进行更新,以用于下一次的所述趋势预测法。

本发明实施例提供的装置是用于执行上述各方法实施例的,具体流程和详细内容请参照上述实施例,此处不再赘述。

图4为本发明实施例提供的电子设备结构示意图,如图4所示,该电子设备可以包括:处理器(processor)401、通信接口(communicationsinterface)402、存储器(memory)403和通信总线404,其中,处理器401,通信接口402,存储器403通过通信总线404完成相互间的通信。处理器401可以调用存储器403中的逻辑指令,以执行如下方法:获取每个服务实例完成目标任务集合中单个子任务的预测服务收益值,所述预测服务收益值根据趋势预测法得到;通过蚂蚁算法,根据所述预测服务收益值进行任务路由分配,得到所述目标任务集合的最优任务路由路径。

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

本发明实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:获取每个服务实例完成目标任务集合中单个子任务的预测服务收益值,所述预测服务收益值根据趋势预测法得到;通过蚂蚁算法,根据所述预测服务收益值进行任务路由分配,得到所述目标任务集合的最优任务路由路径。

本发明实施例提供一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质存储服务器指令,该计算机指令使计算机执行上述实施例所提供的云端服务路由分配方法,例如包括:获取每个服务实例完成目标任务集合中单个子任务的预测服务收益值,所述预测服务收益值根据趋势预测法得到;通过蚂蚁算法,根据所述预测服务收益值进行任务路由分配,得到所述目标任务集合的最优任务路由路径。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。


技术特征:

1.一种云端服务路由分配方法,其特征在于,包括:

获取每个服务实例完成目标任务集合中单个子任务的预测服务收益值,所述预测服务收益值根据趋势预测法得到;

通过蚂蚁算法,根据所述预测服务收益值进行任务路由分配,得到所述目标任务集合的最优任务路由路径。

2.根据权利要求1所述的方法,其特征在于,所述获取每个服务实例完成目标任务集合中单个子任务的预测服务收益值,包括:

获取每个服务实例的历史服务收益值,所述历史服务收益值包括历史任务执行时间和历史网络通信代价;

通过趋势预测法对每个服务实例的历史任务执行时间和历史网络通信代价进行预测处理,得到每个服务实例完成所述目标任务集合中单个子任务的预测服务收益值。

3.根据权利要求2所述的方法,其特征在于,所述通过蚂蚁算法,根据所述预测服务收益值进行任务路由分配,得到所述目标任务集合的最优任务路由路径,包括:

根据转移概率公式使得蚂蚁在每个子任务和每个服务实例之间的路由路径中进行迭代搜索;

若迭代次数或运算时间满足预设条件,则选取迭代过程中累计的预测服务收益值最大的蚂蚁搜索路径作为最优任务路由路径,以对所述目标任务集合进行服务路由分配。

4.根据权利要求3所述的方法,其特征在于,所述通过蚂蚁算法,根据所述预测服务收益值进行任务路由分配,得到所述目标任务集合的最优任务路由路径,还包括:

对蚂蚁搜索路径中的信息素进行更新,以用于下一次的服务路由分配。

5.根据权利要求4所述的方法,其特征在于,在所述通过蚂蚁算法,根据所述预测服务收益值进行任务路由分配,得到所述目标任务集合的最优任务路由路径之后,所述方法包括:

获取所述最优任务路由路径上的每个目标服务实例的任务执行时间和网络通信代价;

根据任务执行时间和网络通信代价对每个目标服务实例的服务收益值进行更新,以用于下一次的所述趋势预测法。

6.根据权利要求1-5任一项所述的方法,其特征在于,在所述获取每个服务实例完成目标任务集合中单个子任务的预测服务收益值之前,所述方法还包括:

获取目标任务集合,所述目标任务集合中包括多个子任务;

根据每个子任务的任务信息生成服务清单列表,所述服务清单列表中包含多个服务实例。

7.一种云端服务路由分配装置,其特征在于,包括:

处理模块,用于获取每个服务实例完成目标任务集合中单个子任务的预测服务收益值,所述预测服务收益值根据趋势预测法得到;

任务路由分配模块,用于通过蚂蚁算法,根据所述预测服务收益值进行任务路由分配,得到所述目标任务集合的最优任务路由路径。

8.根据权利要求7所述的装置,其特征在于,所述处理模块包括:

收益值获取单元,用于获取每个服务实例的历史服务收益值,所述历史服务收益值包括历史任务执行时间和历史网络通信代价;

收益值预测单元,用于通过趋势预测法对每个服务实例的历史任务执行时间和历史网络通信代价进行预测处理,得到每个服务实例完成所述目标任务集合中单个子任务的预测服务收益值。

9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至6任一项所述方法的步骤。

10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至6任一项所述方法的步骤。

技术总结
本发明实施例提供一种云端服务路由分配方法及装置,该方法包括获取每个服务实例完成目标任务集合中单个子任务的预测服务收益值,所述预测服务收益值根据趋势预测法得到;通过蚂蚁算法,根据所述预测服务收益值进行任务路由分配,得到所述目标任务集合的最优任务路由路径。本发明实施例根据服务实例对应的服务收益值,预测下次执行任务时的服务收益值,并根据预测的服务收益值,获取下次服务路由分配的最优解,从而提升了整体任务的处理效率,提高了服务器资源的利用率。

技术研发人员:穆铁马;方炜;李海传;李伟;郑海朋;韩梁;罗琼
受保护的技术使用者:中国移动通信集团浙江有限公司
技术研发日:2018.11.28
技术公布日:2020.06.05

转载请注明原文地址: https://bbs.8miu.com/read-56317.html

最新回复(0)