CN117573379A - 一种基于对称放缩合并的微服务部署方法 - Google Patents
一种基于对称放缩合并的微服务部署方法 Download PDFInfo
- Publication number
- CN117573379A CN117573379A CN202410060896.6A CN202410060896A CN117573379A CN 117573379 A CN117573379 A CN 117573379A CN 202410060896 A CN202410060896 A CN 202410060896A CN 117573379 A CN117573379 A CN 117573379A
- Authority
- CN
- China
- Prior art keywords
- micro
- service
- group
- micro service
- service group
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 55
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 33
- 230000009467 reduction Effects 0.000 claims abstract description 27
- 230000003416 augmentation Effects 0.000 claims abstract description 14
- 230000005012 migration Effects 0.000 claims abstract description 10
- 238000013508 migration Methods 0.000 claims abstract description 10
- 230000008901 benefit Effects 0.000 claims description 48
- 238000012545 processing Methods 0.000 claims description 13
- 230000003321 amplification Effects 0.000 claims description 12
- 238000004364 calculation method Methods 0.000 claims description 12
- 238000003199 nucleic acid amplification method Methods 0.000 claims description 12
- 230000008569 process Effects 0.000 claims description 12
- 238000004891 communication Methods 0.000 claims description 8
- 230000003190 augmentative effect Effects 0.000 claims 1
- 230000001934 delay Effects 0.000 claims 1
- 230000005494 condensation Effects 0.000 abstract description 3
- 238000009833 condensation Methods 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 11
- 238000004590 computer program Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000003860 storage Methods 0.000 description 3
- 230000004075 alteration Effects 0.000 description 2
- 238000011166 aliquoting Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 230000001351 cycling effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000035755 proliferation Effects 0.000 description 1
Classifications
-
- 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/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
-
- 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/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种基于对称放缩合并的微服务部署方法,针对云数据中心微服务部署与请求路由问题求解困难、复杂度高的难点,创造性地提出一种高效的对称放缩合并算法。该算法不同于单独求解微服务部署与请求路由两个问题的方法,而是将两个问题结合起来求解,通过对称合并、实例扩增、实例缩减子算法保证部署的对称性,从而保证了路由的对称性,使得两个问题的联合求解成为可能,最后通过迁移合并子算法进一步提高资源利用率。本发明提出的方法不再单独考虑路由问题,求解高效,同时联合求解微服务部署与请求路由问题,在全局范围内直接求解,以获取最佳方案,降低用户请求时延,最大化请求成功率,提升用户体验。
Description
技术领域
本发明涉及微服务技术领域,更具体地,涉及一种基于对称放缩合并的微服务部署方法。
背景技术
近年来,随着互联网技术的繁荣,互联网应用需求激增,使得云数据中心面向用户的时延敏感型应用程序的用户流量急剧增加。传统的单体式应用程序难以应对这些功能日趋复杂,更新频繁,高并发请求的情况,而微服务架构将传统的单体式应用程序解耦为多个独立的、细粒度的微服务,每个微服务提供特定的功能,其良好的可扩展性和灵活性使得大型应用程序的开发和维护成本更低廉,能更好的应对用户高并发请求的场景。用户请求通常会由一组微服务协调处理,各个微服务操作独立,却又递归调用相互协调工作,形成了复杂的微服务调用图。合理的微服务部署和请求路由规划,可以大大减少请求的时延,改善用户体验。
然而,微服务程序的高复杂性,以及用户请求量的高并发性,给微服务的部署和请求路由规划问题带来了巨大挑战。一方面越复杂的微服务应用程序,其微服务间的调用关系便越复杂;另一方面,用户请求量越大,每个微服务所需的实例数便越多;而每个微服务不仅可以部署在多台服务器上,还可以拥有多个实例,因此问题的求解规模巨大。
现有方法往往将微服务的部署问题和请求路由问题分开求解,先确定微服务部署方案,再基于该方案求解请求路由问题。这种方法虽然保证了微服务部署和请求路由两个部分都是最优的,但实际上,微服务的部署和请求路由两个问题是紧密结合的,每一种部署方案会有对应的最佳路由方案,故分开求解的方法难以获取全局的最佳方案。因此,如何将微服务部署与请求路由问题结合求解,获得最佳的表现性能,降低服务的时延,提升用户体验质量,是一个亟需解决的问题。
发明内容
本发明针对现有技术中存在的技术问题,提供一种基于对称放缩的微服务部署方法,包括:
根据预知的用户请求流量以及服务器单个核心对每个微服务的处理能力,计算得出每个微服务初始分配的核心数,并初始化生成微服务组,使用对称合并算法得到对称合并的微服务组;
根据对称合并得到的微服务组统计当前部署方案使用的总服务器核心数,若当前使用的总服务器核心数超过可用的服务器核心数,则使用实例缩减算法对每一个微服务组中的微服务实例进行缩减,若没有超过,则使用实例扩增算法,对每一个微服务组中的微服务实例进行扩增,得到实例增缩后的微服务组;
根据排队论相关理论,计算每个微服务处的请求到达率,并统计实例增缩后得到的微服务组中每个微服务的部署情况,将每个微服务处的请求流量等分给每个微服务组,完成等分路由;
根据实例增缩后的微服务组统计当前部署方案使用到的总服务器数,若当前使用的总服务器数超过可用服务器数量,使用迁移合并算法,将需要迁移的微服务组迁移到其它的微服务组。
本发明提供的一种基于对称放缩的微服务部署方法,相较于现有将微服务部署与请求路由分开求解的方法,本方法将请求路由融于微服务部署之中,联合求解,因此是直接在整个解空间范围内寻找足够优秀的解,保障了部署方案与路由策略全局上的性能优势。此外,由于部署方案的对称性,完成部署问题求解的同时,路由策略也得到求解,大大简化了整个问题,算法效率高。
附图说明
图1为本发明应用场景的数据中心网络微服务实例部署与请求路由示意图;
图2为本发明微服务组组内与组间合并示意图;
图3为本发明提供的一种基于对称放缩合并的微服务部署方法流程图;
图4为本发明对称合并算法流程图;
图5为本发明实例缩减算法流程图;
图6为本发明实例扩增算法流程图;
图7为本发明迁移合并算法流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。另外,本发明提供的各个实施例或单个实施例中的技术特征可以相互任意结合,以形成可行的技术方案,这种结合不受步骤先后次序和/或结构组成模式的约束,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时,应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
图1为本发明应用场景的数据中心网络微服务实例部署与请求路由示意图,如图1所示,该数据中心网络包含5台服务器,彼此之间相互连接,每台服务器含有相同数量的核心数,一个核心可以部署微服务/>的一个实例。每个用户的服务请求/>建模为一个请求流/>,每个请求流/>包含一系列连续的微服务,该请求需要依次由相应的微服务实例进行处理以获取请求结果。请求流中上一个微服务处理完后会调用后继的微服务,当两个微服务实例位于不同服务器上时,存在通信时延开销;一台服务器上的微服务实例的处理速度有限,当有多个请求先后到达时,后到的请求会在队列中等待,此时存在等待时延开销。
每个微服务可以有多个实例,也可位于多台服务器上,因此一个请求流的服务调用路径可能存在多条。不同的路径会有不同的通信时延开销,例如请求流,首先可以被调度至服务器/>、/>或/>上,由微服务/>处理,假设这里调度到了服务器/>上,当/>处理完后,将调用微服务/>,服务器/>和/>上均有/>的实例,因此可以选择/>或/>,而选择/>不需要额外的通信时延开销,选择/>则需要额外的通信时延开销,故选择不同的路由路线,最后的请求时延也不同。合理的路由策略则可以大大降低总的请求时延。
参见图2,图2为本发明微服务组组内与组间合并示意图。
如图2所示,一条请求流包含3个微服务,每个微服务初始化的实例数分别为2、8、8,均为2的幂数,故初始化的服务组有3类共18个,每个微服务组只包含1个微服务的1个实例。
本发明涉及的一种核心思想是微服务组的合并,微服务组的合并分两种,组内合并和组间合并。组内合并是将一类微服务组两两合并,生成的新微服务组包含的微服务类型与原微服务相同,但每个微服务的实例数增加了一倍,且新微服务组的数量比原微服务组少了一半,如图2中将两个只包含1个实例的微服务组合并,生成一个包含2个/>实例的微服务组。由排队论的理论可知,在总请求到达率相同的情况下,实例集中部署时请求的排队时延更小,因此微服务组的组内合并可以减少请求时延中的排队时延。组间合并将两类不同但彼此包含的微服务在请求链中前后相邻的微服务组两两合并为一类新的微服务组,如图2中将8个包含1个/>实例的微服务组与8个包含1个/>实例的微服务组合并,可以得到8个同时包含1个/>实例和1个/>实例的微服务组,微服务组的个数保持不变,但包含的微服务类型发生变化。组间合并还包含另一种情况,即两类微服务组的数量不相同,如图2中将2个包含1个/>实例的微服务组与8个包含1个/>实例的微服务组合并,此时需要先将包含/>的微服务组进行两次组内合并,变成2个包含4个/>实例的微服务组,再与包含/>的微服务组进行组间合并,最后生成2个同时包含1个/>实例和4个/>实例的微服务组。
将初始化微服务实例数放大为2的幂数,再通过以上两种微服务组的对称合并方法,成功保证了本发明的另一核心思想,即部署方案的对称性。
参见图3-图7,为本发明基于对称放缩合并的微服务部署方法整体步骤和详细步骤流程图。
参见图3,基于对称放缩合并的微服务部署方法,包括如下步骤:
步骤1,根据预知的用户请求流量以及服务器单个核心对每个微服务的处理能力,计算得出每个微服务初始分配的核心数,并初始化生成微服务组,使用对称合并算法得到对称合并的微服务组。
其中,根据预知的参数(包括用户请求达到率和服务器单个核心的处理能力)计算出保证排队队列稳定所需的每个微服务最小实例数,将/>放大使其为2的幂数后得到每个微服务初始化的实例数/>,得到初始化微服务组initGroups。保证微服务初始实例数为2的幂数是为了保证进行微服务组合并操作时,每个微服务组中的每个微服务实例数均保持为2的幂数,因此能保证合并后微服务组的对称性。
微服务初始化实例数计算公式为:
式中,符号表示向上取整,取大于等于其作用对象的最小整数,/>是保证排队队列稳定的微服务所需最小实例数;
微服务所需最小实例数计算公式为:
式中,表示请求流/>的请求到达率,/>表示单个核心对微服务m的服务率。
对于生成的初始化微服务组,执行微服务组组内合并和微服务组组间合并,形成新的微服务组。其中,微服务组的合并包括微服务组组内合并和微服务组组间合并,微服务组组内合并是指将一类微服务组两两合并,微服务组组间合并是指将两类不同但彼此包含的微服务在请求链中前后相邻的微服务组两两合并为一类新的微服务组。
具体的,对于微服务组的合并,初始化微服务组组内合并收益表intraYields和组间合并收益表interYields,其中,组内合并收益表intraYields中存储组内的每两个微服务组的合并收益,组间合并收益表interYields存储的是组间的两个微服务组的合并收益。若微服务组合并后得到的新微服务组包含的总实例数不超过单台服务器拥有的总核心数时,说明该微服务组可以部署,因此可以执行合并,也拥有合并收益,可以将合并收益加合并收益表中,而不能合并的微服务组则没有相应的合并收益。
其中,微服务组组内合并收益计算公式为:
式中,g是待合并的微服务组,表示该微服务组中包含的实例总数,与/>分别是合并前后微服务组g上微服务m处的平均排队时延。
微服务组组间合并收益计算公式为:
式中,为决策变量,当待合并的服务组g1与g2数量相同时,该变量值为0,否则为1,/>表示微服务组g1与g2数量不同时,先进行组内合并减少的时延值,/>是服务器间的单次通信时延开销,/>和/>分别表示相同的微服务组g1和g2的数量,/>和/>分别表示g1和g2中包含的实例总数。
可参见图4,判断组内合并收益表intraYields和组间合并收益表interYields是否都为空,若其中之一不为空,则说明有可以合并的微服务组,因此在二者之间选择一个合并收益最大的合并操作,进行微服务的合并,更新initGroups。合并完成后,更新intraYields和interYields中所涉及到的合并操作的合并收益,若相关微服务组仍能继续合并则更新合并收益,若不能继续合并则将其从合并收益表中移除。循环上述操作直到intraYields和interYields均为空时,表明没有可以继续合并的微服务组,合并操作完成,得到对称合并后的微服务组symmetryGroups。
步骤2,根据对称合并得到的微服务组统计当前部署方案使用的总服务器核心数,若当前使用的总服务器核心数超过可用的服务器核心数,则使用实例缩减算法对每一个微服务组中的微服务实例进行缩减,若没有超过,则使用实例扩增算法,对每一个微服务组中的微服务实例进行扩增,得到实例增缩后的微服务组。
可理解的是,计算symmetryGroups微服务组所需的核心数,当/>大于总可用核心数/>时,说明当前部署方案不满足核心数的资源约束,应调用实例缩减算法,对symmetryGroups进行实例缩减得到downGroups;当/>小于/>时,当前部署方案满足核心数资源约束,但未能充分利用可用资源,因此调用实例扩增算法,对symmetryGroups进行实例扩增得到upGroups。
其中,参见图5,微服务实例缩减的步骤包括:
(1)初始化微服务组实例缩减收益表downYields。实例缩减遵循保证对称性的最小粒度原则,即每次缩减只对一类微服务组中的一个微服务的实例数减1,保证了对称性的同时进行最小粒度操作。具体为计算每类微服务组中的每个微服务减少1个实例能够带来的最大单位实例收益,将有最大实例缩减收益的微服务m的缩减收益作为该类微服务组的实例缩减收益,加入downYields中;
实例缩减收益计算公式为:
式中,是相同的微服务组g的数量,/>和/>分别是缩减1个实例前后微服务m处的排队时延;
(2)判断当前部署方案所需核心数是否大于总可用核心数/>,若大于,则从downYields中选择实例缩减收益最大的微服务组g,将全部g中实例缩减收益最大的微服务m的实例数减1,更新symmetryGroups,并更新downYields中微服务组g的实例缩减收益。循环上述操作,每次实例缩减都使/>的数量减小,当/>小于/>时,表明此时的部署方案满足了核心数约束条件,实例缩减算法完成,得到实例缩减后的服务组downGroups。
参见图6,微服务实例扩增的步骤包括:
(1)初始化微服务组实例扩增收益表upYields。实例扩增同样遵循保证对称性的最小粒度原则,每次扩增只对一类微服务组中的一个微服务的实例数加1,保证对称性的同时进行最小粒度操作。具体为计算每类微服务组中的每个微服务增加1个实例能够带来的最大单位实例收益,将有最大实例扩增收益的微服务m的扩增收益作为该类微服务组的实例扩增收益,加入upYields中;
所述实例扩增收益计算公式为:
式中,和/>分别是增加1个实例前后微服务m处的排队时延,/>是相同微服务组g的数量;
(2)判断当前部署方案所需核心数是否小于总可用核心数/>,若小于,则从upYields中选择实例扩增收益最大的微服务组g中的微服务m,并满足微服务m实例扩增增加的总实例数不超过/>,若存在这样的微服务m,则将全部g中微服务m的实例数加1,更新symmetryGroups,并更新upYields中微服务组g的实例扩增收益;若不存在这样微服务m,则说明下一次实例扩增操作将导致/>大于/>时,表明服务核心资源已充分使用,实例扩增完成。循环上述操作,每次实例扩增都使/>的数量增加,当快接近/>时,可能不存在能够继续实例扩增的微服务m,跳出循环,或/>恰好等于/>,结束循环。至此实例扩增算法完成,得到实例扩增后的服务组upGroups。
步骤3,根据排队论相关理论,计算每个微服务处的请求到达率,并统计实例增缩后得到的微服务组中每个微服务的部署情况,将每个微服务处的请求流量等分给每个微服务组,完成等分路由。
可理解的是,经过实例缩减和实例扩增后得到的微服务组是部署对称的,因此其最佳路由方案也是对称的。由排队论理论计算出每个微服务m的请求到达率,并根据微服务m在微服务组中的部署情况,将/>平均分配至每个部署了m的微服务组,完成路由等分。
步骤4,根据实例增缩后的微服务组统计当前部署方案使用到的总服务器数,若当前使用的总服务器数超过可用服务器数量,使用迁移合并算法,将需要迁移的微服务组迁移到其它的微服务组。
可理解的是,每个微服务组均表示一台服务器的部署情况,因此比较upGroups或downGroups中的服务组个数和总服务器数/>,若/>大于/>则表明当前部署方案不满足服务器约束条件,则需要调用迁移合并算法,将超出约束条件数量限制且所含微服务之间依赖度较低的微服务组迁移至其他合适的微服务组中,同时调整路由策略,得到最终的部署方案与路由策略。
参见图7,具体的迁移合并方法的步骤如下:
(1)初始化微服务组微服务依赖度列表dependenceList。计算每个微服务组g的微服务依赖度,将其加入dependenceList中;
所述微服务组微服务依赖度计算公式为:
式中,是决策变量,表示微服务/>和/>之间是否有相互调用关系,当/>和/>有相互调用时,其值为1,否则为0,/>是服务器间的单次通信时延开销,/>是微服务/>处单实例的排队时延,/>是该服务组当前部署的微服务/>处的排队时延;
(2)对dependenceList降序排序,并计算需要迁移的微服务组的数量,将dependenceList中最后的/>个微服务组移至待迁移微服务组列表tempGroups;
(3)当tempGroups不为空时,从tempGroups中选择一个微服务组,依次将该微服务组中的微服务实例迁移至其他合适的微服务组中,同时更新路由策略。当一个微服务组中的全部微服务实例迁移完成后,将该微服务组从tempGroups中移除。循环上述操作直至tempGroups中的微服务组全部迁移完成,迁移合并算法完成,得到最终的微服务部署方案和请求路由策略。
本发明实施例提供的一种基于对称放缩合并的微服务部署方法,能够快速得到微服务部署方案与请求路由策略,降低总请求时延,提高请求的成功率。本发明基于微服务对称放缩合并思想创造性地提出一种微服务部署与路由算法,通过对微服务初始部署实例数指数倍数放大,再进行聚类合并操作,使彼此满足倍数关系,由此得到的微服务组是对称的,同时最佳路由策略也是对称的,因此不再需要单独求解路由,而是将路由求解融入部署求解中,大大降低了问题难度。
需要说明的是,在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其它实施例的相关描述。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式计算机或者其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包括这些改动和变型在内。
Claims (9)
1.一种基于对称放缩合并的微服务部署方法,其特征在于,包括:
根据预知的用户请求流量以及服务器单个核心对每个微服务的处理能力,计算得出每个微服务初始分配的核心数,并初始化生成微服务组,使用对称合并算法得到对称合并的微服务组;
根据对称合并得到的微服务组统计当前部署方案使用的总服务器核心数,若当前使用的总服务器核心数超过可用的服务器核心数,则使用实例缩减算法对每一个微服务组中的微服务实例进行缩减,若没有超过,则使用实例扩增算法,对每一个微服务组中的微服务实例进行扩增,得到实例增缩后的微服务组;
根据排队论相关理论,计算每个微服务处的请求到达率,并统计实例增缩后得到的微服务组中每个微服务的部署情况,将每个微服务处的请求流量等分给每个微服务组,完成等分路由;
根据实例增缩后的微服务组统计当前部署方案使用到的总服务器数,若当前使用的总服务器数超过可用服务器数量,使用迁移合并算法,将需要迁移的微服务组迁移到其它的微服务组。
2.根据权利要求1所述的方法,其特征在于,所述根据预知的用户请求流量以及服务器单个核心对每个微服务的处理能力,计算得出每个微服务初始分配的核心数,并初始化生成微服务组,包括:
根据预知的用户请求到达率以及服务器单个核心对每个微服务的处理能力,计算出保证排队队列稳定所需的每个微服务最小实例数,将/>放大使其为2的幂数后,得到每个微服务初始化的实例数/>,得到初始化微服务组;
其中,微服务初始化实例数计算公式为:
,
式中,符号表示向上取整,取大于等于其作用对象的最小整数,/>是保证排队队列稳定的微服务所需最小实例数,m表示微服务;
微服务所需最小实例数计算公式为:
,
式中,表示请求流/>的请求到达率,/>表示单个核心对微服务m的服务率。
3.根据权利要求1所述的方法,其特征在于,微服务组的合并包括微服务组组内合并和微服务组组间合并,所述微服务组组内合并是指将一类微服务组两两合并,所述微服务组组间合并是指将两类不同但彼此包含的微服务在请求链中前后相邻的微服务组两两合并为一类新的微服务组;
所述使用对称合并算法得到对称合并的微服务组,包括:
计算初始化微服务组组内合并收益表intraYields和组间合并收益表interYields,若微服务组合并后得到的新微服务组包含的总实例数不超过单台服务器拥有的总核心数时,则执行微服务组合并操作,并将合并收益加入合并收益表中,不能合并的微服务组没有相应的合并收益;
微服务组组内合并收益计算公式为:
,
式中,g是待合并的微服务组,表示该微服务组中包含的实例总数,/>与分别是合并前后微服务组g上微服务m处的平均排队时延;
微服务组组间合并收益计算公式为:
,
式中,为决策变量,当待合并的微服务组g1与微服务组g2数量相同时,该变量值为0,否则为1,/>表示微服务组g1与微服务组g2数量不同时,先进行组内合并减少的时延值,是服务器间的单次通信时延开销,/>和/>分别表示微服务组g1和微服务组g2的数量,/>和/>分别表示微服务组g1和微服务组g2中包含的实例总数;
当合并收益表intraYields或组间合并收益表interYields不为空时,执行收益最大的微服务组的合并操作,更新当前的微服务组和合并收益表,循环操作至不能合并为止。
4.根据权利要求1所述的方法,其特征在于,所述则使用实例缩减算法对每一个微服务组中的微服务实例进行缩减,包括:
计算每类微服务组中每个微服务的实例缩减收益,将最大的微服务的缩减收益作为微服务组的缩减收益,加入实例缩减收益表downYields;
当前部署所需核心数大于总可用核心数/>时,选择实例缩减收益表downYields中缩减收益最大的微服务组进行实例缩减,并更新微服务组和实例缩减收益表downYields,循环操作直至/>不超过/>时结束。
5.根据权利要求4所述的方法,其特征在于,所述计算每类微服务组中每个微服务的实例缩减收益,包括:
,
式中,是微服务组g的数量,/>和/>分别是缩减1个实例前后微服务m处的排队时延。
6.根据权利要求1所述的方法,其特征在于,所述使用实例扩增算法,对每一个微服务组中的微服务实例进行扩增,包括:
计算每类微服务组中每个微服务的实例扩增收益,将最大的微服务的扩增收益作为微服务组的扩增收益,加入实例扩增收益表upYields;
当前部署所需核心数小于总可用核心数/>时,选择实例扩增收益表upYields中实例扩增收益最大的微服务组g中的微服务m,并满足对微服务m进行实例扩增后的/>不超过/>,若存在这样的微服务m,则对其进行实例扩增,并更新微服务组和实例扩增收益表upYields,循环操作直至/>等于/>或者不存在满足上述条件的微服务m。
7.根据权利要求6所述的方法,其特征在于,所述计算每类微服务组中每个微服务的实例扩增收益,包括:
,
式中,和/>分别是增加1个实例前后微服务m处的排队时延,/>是微服务组g的数量。
8.根据权利要求1所述的方法,其特征在于,所述使用迁移合并算法,将需要迁移的微服务组迁移到其它的微服务组,包括:
计算每个微服务组g的微服务依赖度,将其加入依赖度列表dependenceList中;
对依赖度列表dependenceList降序排序,计算需要迁移的微服务组的数量,将依赖度列表dependenceList中最后的/>个微服务组移至待迁移微服务组列表tempGroups;
依次将待迁移微服务组列表tempGroups中的微服务组的微服务实例迁移至其它合适的微服务组中,同时更新路由策略,全部迁移完成后得到最终的微服务部署方案和请求路由策略。
9.根据权利要求8所述的方法,其特征在于,所述计算每个微服务组g的微服务依赖度,包括:
,
式中,是决策变量,表示微服务/>和/>之间是否有相互调用关系,当/>和/>有相互调用时,其值为1,否则为0,/>是服务器间的单次通信时延开销,/>是微服务处单实例的排队时延,/>是该服务组当前部署的微服务/>处的排队时延。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410060896.6A CN117573379B (zh) | 2024-01-16 | 2024-01-16 | 一种基于对称放缩合并的微服务部署方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410060896.6A CN117573379B (zh) | 2024-01-16 | 2024-01-16 | 一种基于对称放缩合并的微服务部署方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117573379A true CN117573379A (zh) | 2024-02-20 |
CN117573379B CN117573379B (zh) | 2024-03-29 |
Family
ID=89886685
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410060896.6A Active CN117573379B (zh) | 2024-01-16 | 2024-01-16 | 一种基于对称放缩合并的微服务部署方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117573379B (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016009282A1 (en) * | 2014-07-16 | 2016-01-21 | Yandex Europe Ag | System and method for dynamically optimizing map destination routing performance |
CN110187973A (zh) * | 2019-05-31 | 2019-08-30 | 浙江大学 | 一种面向边缘计算的服务部署优化方法 |
WO2020192598A1 (zh) * | 2019-03-22 | 2020-10-01 | 华为技术有限公司 | 一种部署虚拟机和容器的方法及装置 |
US20210234930A1 (en) * | 2020-01-27 | 2021-07-29 | Dell Products L. P. | Microservice management system for recommending modifications to optimize operation of microservice-based systems |
WO2021237996A1 (zh) * | 2020-05-26 | 2021-12-02 | 多伦科技股份有限公司 | 基于模糊c均值的自适应能耗最优车辆聚类方法 |
US20220116445A1 (en) * | 2021-04-12 | 2022-04-14 | Miltiadis Filippou | Disintermediated attestation in a mec service mesh framework |
US20220318060A1 (en) * | 2021-03-31 | 2022-10-06 | International Business Machines Corporation | Full-dimensional scheduling and scaling for microservice applications |
CN115529316A (zh) * | 2022-09-30 | 2022-12-27 | 湖北省楚天云有限公司 | 一种基于云计算中心网络架构的微服务部署方法 |
US20230028934A1 (en) * | 2021-07-13 | 2023-01-26 | Vmware, Inc. | Methods and decentralized systems that employ distributed machine learning to automatically instantiate and manage distributed applications |
CN116233026A (zh) * | 2023-03-01 | 2023-06-06 | 深圳市创载网络科技有限公司 | 一种用于数据中心的智能管理方法及系统 |
CN116915686A (zh) * | 2023-09-08 | 2023-10-20 | 三峡高科信息技术有限责任公司 | 异构多边缘云协同微服务部署与路由联合优化方法及系统 |
-
2024
- 2024-01-16 CN CN202410060896.6A patent/CN117573379B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016009282A1 (en) * | 2014-07-16 | 2016-01-21 | Yandex Europe Ag | System and method for dynamically optimizing map destination routing performance |
WO2020192598A1 (zh) * | 2019-03-22 | 2020-10-01 | 华为技术有限公司 | 一种部署虚拟机和容器的方法及装置 |
CN110187973A (zh) * | 2019-05-31 | 2019-08-30 | 浙江大学 | 一种面向边缘计算的服务部署优化方法 |
US20210234930A1 (en) * | 2020-01-27 | 2021-07-29 | Dell Products L. P. | Microservice management system for recommending modifications to optimize operation of microservice-based systems |
WO2021237996A1 (zh) * | 2020-05-26 | 2021-12-02 | 多伦科技股份有限公司 | 基于模糊c均值的自适应能耗最优车辆聚类方法 |
US20220318060A1 (en) * | 2021-03-31 | 2022-10-06 | International Business Machines Corporation | Full-dimensional scheduling and scaling for microservice applications |
US20220116445A1 (en) * | 2021-04-12 | 2022-04-14 | Miltiadis Filippou | Disintermediated attestation in a mec service mesh framework |
US20230028934A1 (en) * | 2021-07-13 | 2023-01-26 | Vmware, Inc. | Methods and decentralized systems that employ distributed machine learning to automatically instantiate and manage distributed applications |
CN115529316A (zh) * | 2022-09-30 | 2022-12-27 | 湖北省楚天云有限公司 | 一种基于云计算中心网络架构的微服务部署方法 |
CN116233026A (zh) * | 2023-03-01 | 2023-06-06 | 深圳市创载网络科技有限公司 | 一种用于数据中心的智能管理方法及系统 |
CN116915686A (zh) * | 2023-09-08 | 2023-10-20 | 三峡高科信息技术有限责任公司 | 异构多边缘云协同微服务部署与路由联合优化方法及系统 |
Non-Patent Citations (1)
Title |
---|
彭凯;马芳玲;徐博;郭佳璐;胡梦兰: "《 主动式微服务细粒度弹性缩放算法研究 》", 《计算机工程与应用》, 21 July 2023 (2023-07-21), pages 3 - 16 * |
Also Published As
Publication number | Publication date |
---|---|
CN117573379B (zh) | 2024-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113220457B (zh) | 模型部署方法、模型部署装置、终端设备及可读存储介质 | |
CN110058924B (zh) | 一种多目标优化的容器调度方法 | |
Nabi et al. | DRALBA: Dynamic and resource aware load balanced scheduling approach for cloud computing | |
CN113115252B (zh) | 延迟敏感任务分布式移动边缘计算资源调度方法及系统 | |
CN110570075B (zh) | 一种电力业务边缘计算任务分配方法及装置 | |
US11055139B2 (en) | Smart accelerator allocation and reclamation for deep learning jobs in a computing cluster | |
CN113472597B (zh) | 分布式卷积神经网络细粒度的参数传输调度方法及装置 | |
WO2021159929A1 (zh) | 拓扑图转换系统及其方法 | |
Sahoo et al. | LVRM: On the design of efficient link based virtual resource management algorithm for cloud platforms | |
CN110048966B (zh) | 基于截止时间的最小化系统开销的Coflow调度方法 | |
Tseng et al. | An mec-based vnf placement and scheduling scheme for ar application topology | |
CN112862083B (zh) | 一种边缘环境下的深度神经网络推断方法及装置 | |
CN114911612A (zh) | 一种面向cpu-gpu异构资源的任务调度方法 | |
CN114466407A (zh) | 一种基于粒子群遗传的网络切片编排算法 | |
CN117573379B (zh) | 一种基于对称放缩合并的微服务部署方法 | |
Han et al. | An adaptive scheduling algorithm for heterogeneous Hadoop systems | |
CN112463340A (zh) | 基于tensorflow的多任务弹性调度方法及系统 | |
CN109450684B (zh) | 一种网络切片系统物理节点容量扩充方法及装置 | |
CN115098240B (zh) | 一种多处理器应用调度方法和系统及存储介质 | |
CN110928648A (zh) | 融合启发式和智能计算的云工作流分段在线调度优化方法 | |
CN109343940A (zh) | 一种云平台中多媒体任务调度优化方法 | |
CN108205465B (zh) | 流式应用程序的任务动态调度方法和装置 | |
CN112994911B (zh) | 计算卸载方法、装置及计算机可读存储介质 | |
CN111639741B (zh) | 一种用于多目标QoS优化的服务自动组合代理系统 | |
CN114980216A (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 |