CN117097806A - 一种微服务调用图部署和请求路由联合优化方法及系统 - Google Patents

一种微服务调用图部署和请求路由联合优化方法及系统 Download PDF

Info

Publication number
CN117097806A
CN117097806A CN202311100198.6A CN202311100198A CN117097806A CN 117097806 A CN117097806 A CN 117097806A CN 202311100198 A CN202311100198 A CN 202311100198A CN 117097806 A CN117097806 A CN 117097806A
Authority
CN
China
Prior art keywords
micro
service
request
server nodes
server
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.)
Pending
Application number
CN202311100198.6A
Other languages
English (en)
Inventor
彭凯
李书胜
徐博
胡毅
王良源
郭佳璐
徐晓慧
胡梦兰
邓天平
梅松
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan Fly For Same Flight Network Technology Ltd By Share Ltd
Hubei Chutianyun Co ltd
Huazhong University of Science and Technology
Original Assignee
Wuhan Fly For Same Flight Network Technology Ltd By Share Ltd
Hubei Chutianyun Co ltd
Huazhong University of Science and Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Wuhan Fly For Same Flight Network Technology Ltd By Share Ltd, Hubei Chutianyun Co ltd, Huazhong University of Science and Technology filed Critical Wuhan Fly For Same Flight Network Technology Ltd By Share Ltd
Priority to CN202311100198.6A priority Critical patent/CN117097806A/zh
Publication of CN117097806A publication Critical patent/CN117097806A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5033Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering data affinity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/101Server selection for load balancing based on network conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1012Server selection for load balancing based on compliance of requirements or conditions with available server resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1014Server selection for load balancing based on the content of a request
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1029Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/61Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources taking into account QoS or priority requirements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5017Task decomposition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/503Resource availability
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供一种微服务调用图部署和请求路由联合优化方法及系统,该方法包括:获取每个微服务所需的计算资源,将未部署微服务按所需计算资源大小进行排序,基于服务器节点剩余容量的约束,按顺序将用户请求的微服务分配至已部署的微服务节点中,得到微服务部署集合;对不同微服务的元组进行聚类和划分操作;将聚类所得到的请求流集合按各分区请求到达率之和降序排序,遍历已部署微服务的服务器节点,将每个聚类分区中的微服务请求分配给服务器节点,根据节点拥有的计算资源,对微服务请求进行直接分配或者拆分至多个服务器节点上,得到微服务请求转发概率和请求路由。通过该方案不仅能降低请求服务延迟,节省计算资源,而且能保障请求成功率。

Description

一种微服务调用图部署和请求路由联合优化方法及系统
技术领域
本发明属于微服务技术领域,尤其涉及一种微服务调用图部署和请求路由联合优化方法及系统。
背景技术
近些年来,微服务技术以松耦合和可独立部署的优势,以及高度可维护性、可扩展性和易于开发性的特性,被广泛应用于各类实时云应用程序之中。在云数据中心中,对延迟敏感的应用程序每秒会接收大量的用户请求,这些请求被送入多个队列,随后由多个微服务映像提供服务。用户请求由一组微服务处理,这些微服务递归调用并频繁地相互通信,从而形成微服务调用图。利用排队网络对调用图的多个队列和图像进行建模和分析是一种常见的做法,如何高效地部署多个队列和镜像,从而有效地减少队列延迟、处理延迟和通信延迟,是业务性能优化过程中的一个障碍。
由于服务调用关系的高复杂性以及服务映像的部署与请求路由的完全交互,给服务编排带来了巨大的挑战。一方面,服务部署的效果高度依赖于细粒度的微服务处理和在服务映像之间路由的大量请求。另一方面,请求路由需要部署服务映像作为先例,并且严重依赖于服务级目标的映像级路由策略。
目前,微服务部署和请求路由常被当作两个孤立的问题进行研究,这种方式可以降低开发以及维护工作的难度,做到了服务部署、请求路由二者的局部最优,但忽略了服务之间的内在数据依赖关系,不能实现全局的性能优化,从而导致服务延迟仍较高。
发明内容
有鉴于此,本发明实施例提供了一种微服务调用图部署和请求路由联合优化方法及系统,用于解决现有微服务部署和请求路由分开优化的方式,不能实现全局最优,服务延迟仍较高的问题。
在本发明实施例的第一方面,提供了一种微服务调用图部署和请求路由联合优化方法,包括:
获取用户请求中每个微服务所需的计算资源,在未部署的微服务集合中将所有微服务按所需计算资源大小进行排序,基于各服务器节点剩余容量的约束,按顺序将用户请求的微服务分配至已部署的微服务节点中,得到微服务部署集合;
用请求到达率集合和一个大小相等的元组表示每个微服务请求流的聚类和分区,并对不同微服务的元组进行聚类和划分操作;
将聚类所得到的请求流集合按各分区请求到达率之和降序排序,迭代地遍历已经部署微服务的服务器节点,将每个聚类分区中的微服务请求分配给服务器节点,根据服务器节点拥有的计算资源,对微服务请求进行直接分配或者拆分后分配到多个服务器节点上,得到微服务请求转发概率和请求路由。
在本发明实施例的第二方面,提供了一种微服务调用图部署和请求路由联合优化系统,包括:
微服务部署模块模块,用于获取用户请求中每个微服务所需的计算资源,在未部署的微服务集合中将所有微服务按所需计算资源大小进行排序,基于各服务器节点剩余容量的约束,按顺序将用户请求的微服务分配至已部署的微服务节点中,得到微服务部署集合;
请求路由模块,用于将请求到达率集合和一个大小相等的元组表示为每个微服务请求流的聚类和分区,并对不同微服务的元组进行聚类和划分操作;将聚类所得到的请求流集合按各分区请求到达率之和降序排序,迭代地遍历已经部署微服务的服务器节点,将每个聚类分区中的微服务请求分配给服务器节点,根据服务器节点拥有的计算资源,对微服务请求进行直接分配或者拆分后分配到多个服务器节点上,得到微服务请求转发概率和请求路由。
在本发明实施例的第三方面,提供了一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器运行的计算机程序,所述处理器执行所述计算机程序时实现如本发明实施例第一方面所述方法的步骤。
在本发明实施例的第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现本发明实施例第一方面提供的所述方法的步骤。
本发明实施例中,通过采用微服务部署和请求路由联合优化的方式,不仅能节省计算资源成本,降低端到端的请求延迟,而且能最大化保障请求成功率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单介绍,显而易见地,下面描述的附图仅仅是本发明的一些实施例,对本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获取其他附图。
图1为本发明一个实施例提供的一种微服务调用图部署和请求路由联合优化方法的流程示意图;
图2为本发明一个实施例提供的数据中心部署的映像和请求流的排队网络示意图;
图3为本发明一个实施例提供的酒店预订微服务云应用程序原理示意图;
图4为本发明一个实施例提供的一种微服务调用图部署和请求路由联合优化系统的结构示意图;
图5为本发明的一个实施例提供的一种电子设备的结构示意图。
具体实施方式
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
应当理解,本发明的说明书或权利要求书及上述附图中的术语“包括”以及其他相近意思表述,意指覆盖不排他的包含,如包含一系列步骤或单元的过程、方法或系统、设备没有限定于已列出的步骤或单元。此外,“第一”“第二”用于区分不同对象,并非用于描述特定顺序。
请参阅图1,本发明实施例提供的一种微服务调用图部署和请求路由联合优化方法的流程示意图,包括:
S101、获取用户请求中每个微服务所需的计算资源,在未部署的微服务集合中将所有微服务按所需计算资源大小进行排序,基于各服务器节点剩余容量的约束,按顺序将用户请求的微服务分配至已部署的微服务节点中,得到微服务部署集合;
其中,根据公式(1)计算微服务所需的计算资源:
式中,Nm(f)表示微服务m在最大延迟内处理请求流f所需的计算资源,处理用户请求所需的计算资源随着Nm的增加而增加,Nm通过最小变化量来确定,Mf表示请求流f的所有微服务集合;
所述最小变化量的约束不等式为:
式中,表示m/m/c/∞排队系统中微服务m的平均排队延迟,/>表示微服务m在相应请求流中的最大延迟率,/>表示请求流f的最大延迟限制,/>表示处理器vi、vj之间的通信延迟。
得到每个微服务m的计算资源需求Nm后,按照Nm的大小将所有的微服务m以降序排列,在未部署的微服务集合M_List中优先放置最大的Nm,一旦部署了其中的微服务m的镜像,则立即更新集合M_List。
具体的,基于各服务器节点剩余容量的约束,从已部署的服务器节点中查找满足约束要求的服务器节点,并将满足要求的服务器节点添加至微服务可使用的服务器节点集合中;
若已部署的服务器节点中不存在满足要求的服务器节点,且未被部署的服务器节点不为空,则从未被部署的服务器节点中选取满足ReCv≥Nm条件且平均通信时延较小的服务节点用于部署微服务;
若已部署的服务器节点中不存在满足要求的服务器节点,且未被部署的服务器节点为空,则从未被部署的服务器节点中选取满足ReCv约束不等式的服务器节点用于部署微服务;
其中,ReCv表示服务器节点计算资源的剩余容量,ReCv的约束不等式为ω表示资源分割因子,Nm为所获得的微服务m所需的计算资源。
使用两个集合来区分所有处理器的属性,Activate_List用来表示部署过微服务的服务器节点,Free_List表示未被部署的服务器节点。从M_List中取出微服务m,根据ReCv的约束不等式从Activate_List之中找到满足要求的服务器节点v,将其添加到微服务m所能使用的服务器节点集合Available_V(m)之中;若Activate_List之中不存在满足要求的服务器节点且Free_List为非空集合,则从Free_List中选择满足ReCv≥Nm条件且平均通信时延较小的服务节点用来部署微服务m;若Available_V(m)仍然是一个空集,则将Free_List中满足ReCv的约束不等式的服务器节点添加到Available_V(m)之中。
进一步的,从微服务可使用的服务器节点集合中选取服务器节点,检验节点剩余计算资源是否小于微服务所需资源,若小于,则将微服务所需的全部镜像部署至选取的服务器节点上,否则,将微服务所需的服务镜像拆分,将微服务部署至剩余容量较大的服务器节点;
重复将微服务部署至服务器节点,直至没有可用的服务器节点;
当各服务器节点计算资源的剩余容量小于微服务所需的计算资源,则将微服务作为新的微服务节点添加至待分配队列中等待部署。
从Available_V(m)中选择服务器节点并检查剩余计算资源是否不小于Nm,若小于Nm则将微服务m所需的全部镜像部署在该服务器节点上,否则将微服务m所需的服务镜像拆分,部署到较大的ReCv的服务器节点上,并且移动服务器节点从Free_List到Activate_List。
接着,不断重复这个过程,直到没有可用的服务器节点被分配;若出现∑Available_V(m)ReCv<Nm,即微服务影响Nm无法被完全分配的情况,则将微服务m作为新的微服务节点添加到M_List中等待部署。
其代码实现过程如下:
步骤一:初始化已被使用的服务器节点数组Activate_List=φ,空闲的服务器节点Free_List=V,未被部署选择的微服务列表M_List={M},每个服务器节点的计算资源残余容量集合ReC={C},拥有足够资源放置的服务器节点Available_V(m)=φ;
步骤二:对M_List中对所有的微服务按照微服务总的计算资源需求NM降序排序;
步骤三:当M_List不为空时,获取M_list中的第一个元素,并设Available_V(m)为空;遍历数组Activate_List中的每一个节点v,如果满足就将节点v加入到Available_V(m)集合中;
步骤四:若Available_V(m)为空,则遍历数组Free_List中的每一个元素(服务器节点)v,如果满足ReCv≥Nm就将节点v加入到Available_V(m)集合中;若都不满足,则重新执行步骤一;
步骤五:在Available_V(m)集合中,对所有服务器节点根据ReCv进行升序排序;
步骤六:对于Available_V(m)中的每个服务器节点vi进行遍历,若满足则放置微服务m在服务器节点vi,且/>且/>将微服务m从M_list列表中移除,若vi来自于Free_list则将处理器vi移到Activate_List,然后跳出循环;
步骤七:若则放置微服务m在服务器节点vi,且/>若vi来自于Free_list则将处理器vi移到Activate_List并从Free_list中移除,更新Nm,/>
步骤八:若Nm>0,将微服务m加入未被部署选择的微服务列表M_List,并且计算资源需求总数需要进行更新为当前最新的Nm
步骤九:更新计算资源残余容量的集合ReC,返回每个微服务部署结果的二维数组集合,即标志微服务m在服务节点v上的部署情况二值变量和计算资源需求/>
S102、用请求到达率集合和一个大小相等的元组表示每个微服务请求流的聚类和分区,并对不同微服务的元组进行聚类和划分操作;
其中,用请求到达率集合和一个大小相等的元组表示每个微服务请求流的聚类和分区,元组的大小等于部署特定微服务的处理器数量;
将请求到达率集合中第一个元素最大的两个元组合并,将合并的元组减去元组中的最小值,得到请求流集合组。
在进行聚类和划分时,对于到达率集合中第一个元素最大的两个元组(x1,y1,z1)和(x2,y2,z2),将其结合为(x1+z2,y1+y2,z1+x2)以替换旧位置,在替换之前对合并的元组执行标准规范化操作,即减去元组中的最小值,通过聚类以及划分的操作,最后得到请求流的划分结果,请求流集合组fm,例如,对于到达率为{f1(λ)=4,f2(λ)=9,f3(λ)=7,f4(λ)=6,f5(λ)=2}的请求流,可以表示为3个集群[f1+f4,f3+f5,f2],λ表示微服务请求流的到达率。
S103、将聚类所得到的请求流集合按各分区请求到达率之和降序排序,迭代地遍历已经部署微服务的服务器节点,将每个聚类分区中的微服务请求分配给服务器节点,根据服务器节点拥有的计算资源,对微服务请求进行直接分配或者拆分后分配到多个服务器节点上,得到微服务请求转发概率和请求路由。
其中,获取微服务部署集合中微服务在各服务器节点上分配的计算资源;
比较聚类分区中的微服务请求与各服务器节点上分配的计算资源的大小,若服务器节点上分配的计算资源大于等于微服务请求,则对微服务请求进行直接分配,否则,将微服务请求拆分后,分配到多个服务器节点上。
具体的,对聚类所得到的请求流集合组fm,按各分区请求到达率之和降序排序;
遍历已部署微服务的服务器节点,将每个聚类分区中的微服务请求分配至拥有足够所需计算资源容量的任何微服务节点;否则,将微服务请求的流量进行拆分到多个服务器节点上;
重复分配过程,完成请求路由映射过程,得到微服务之间的转发概率和微服务的请求路由结果/>
对于聚类所得到的请求流集合组fm,按各分区请求到达率之和降序排序,然后,迭代地遍历已经部署的微服务的服务器节点,将每个聚类分区中的微服务请求分配给有足够计算资源容量的任何节点,Λm表示微服务m的单核的处理速率;否则,将微服务请求的流量进行拆分到多个服务器节点上。重复上述过程,完成请求路由映射过程。
使用|F|×|M|矩阵来保存每个用户请求流f遍历每个微服务m时,请求路由到一个或多个服务节点v,最后,结合/>和/>得到每种服务请求r中各微服务之间的转发概率以及微服务的请求路由结果/>
其代码实现过程如下:
步骤一:初始化两个栈队列recover_List=φ和Normalize_values=φ;
步骤二:在分区集合(二维矩阵)multi_flow_List中,根据第一个元素λf值对集合中的所有元素进行降序排序,其中, λf表示服务请求f的请求到达率;
步骤三:当multi_flow_List集合中元素的个数大于1时,找到集合中前两个元素multi_flow_List[0]和multi_flow_List[1],然后将这个两个序列集合中在各个位置上的值进行反序相加,得到一个新的元组tmp_multi_flow_List;
步骤四:将两个原始元组添加到recover_List中,将tmp_multi_flow_List中的所有值进行降序排列;对tmp_multi_flow_List进行归一化,将减去的归一化值添加到Normalize_values中;
步骤五:在原multi_flow_List集合中,用归一化后的multi_flow_list替换这两个元素multi_flow_List[0]和multi_flow_List[1];
步骤六:根据得到的multi_flow_List(差分集合),recover_List和Normalize_values采用回溯方法构建二叉树分区,每一个分支对应请求流fm的不同子集,得到fm的请求流的分区
步骤七:每个元组中的累加值的和对Tuple(fm)进行降序排序;
步骤八:对放置微服务m的所有进行降序排序,得到可用资源集合/>
步骤九:若Tuple(fm)≠φ,取出集合中的第一个请求流分区Tuple(fm)[0];对于中的元素/>若满足/>使得/>且记录fm[i]在节点vi上所分配的资源为/>更新/>并进行下一条请求流的分配;
步骤十:若并且/>使得/>且记录fm[i]在节点vi上所分配的资源为/>更新/>
步骤十一:根据每个服务请求的请求路由的结果 以及相应请求流在对应服务器节点上分配的资源/>计算/>
可以理解,本实施例中,将排队网络理论应用于服务请求模型,所提出的基于资源分割的贪心微服务部署算法(GMDA)和请求匹配和分区映射算法(PMPR)适用于具有多个请求流的数据中心的情况。根据开放的Jackson排队理论,考虑服务请求流之间的交互关系,将所有用户请求建模为如图2所示的排队网络,让请求流遵循概率转发策略,这样能够有效的避免网络拥塞,有利于处理大量并发用户请求。
图2中有四个请求流其中有四个请求流f1、f2、f3和f4,它们各自具有相关属性 不同的微服务由不同的用户请求调用,其中A~E表示微服务映像。当请求流f1将放置在处理器v1上的微服务映像B传递给微服务映像C时,可以描述为B→C有两条请求路由路径v1→v2和v1→v3。根据微服务之间转发概率/>两个请求到达率分别为/>和/>此外,处理器v4上的微服务映像C由三个请求流f1、f2、f3共享,基于不同的请求流可能共享一些服务映像的特征,利用Burke定理和泊松流的线性可见性将请求流合并成如图2所示的排队网络,以此来进行微服务调用图部署和请求路由联合优化,从而将这些请求路由到映像以及将计算资源分配给微服务节点。
在一些实施例中,示例性的,如图3所示,以酒店预订微服务云应用程序为例,
酒店预定微服务云应用程序由六个微服务组成,这些微服务节点构成一个线性微服务调用链,从而形成一个特殊的调用图。酒店预订过程中的每个服务请求r∈R建模为一个请求流m为集合M中的特定微服务,R为用户服务请求集,F表示请求流集,/>表示请求流中的第一个微服务到达的等效入口处理器,/>表示泊松过程之后的请求到达率。对于服务调用链中的两个连续节点,存在数据依赖性,节点mi的数据输入是其祖先节点mi-1的输出,节点mi的数据输出是其后代节点mi+1的输入,服务链的用户请求流必须由所有微服务依次处理。
对于酒店预订过程中的每个微服务,多个映像将存在于不同的处理器上,这些处理器在处理服务请求时彼此独立。如果在最大服务延迟内成功地服务请求流fr,则需要以特定顺序遍历Mr中的一个或多个微服务映像,否则,请求流将失败。在部署微服务映像时,微服务节点之间的数据依赖性较大,在适当的处理核心上部署相应的映像可以显著减少不同处理器之间的通信延迟。使用二进制变量/>来表示微服务m∈M是否部署在处理器v∈V(如果是,则为1,否则为0)。由于微服务映像可以在多个处理器上实例化,符号/>表示哪个处理器v应该处理属于服务请求r的请求流f中的微服务m。
当请求流到达处理器v时,如果处理器v不属于集合微服务m可能在处理器v上不可用。否则,如果确定在此处理器处理,则该微服务图像的数量/>足够可用,/>表示微服务m在处理器v中分配的核数,因此需要确定哪个图像将处理匹配的用户请求。设为请求路由的决策变量,表示请求从部署在处理器vi′的微服务mi路由到部署在处理器vj′的微服务mj的概率,它还表示从vi′到vj′的流f的部分。/>满足如下公式:
通过本实施例所提出的贪心微服务部署(GMDA)算法以及请求匹配和分区映射(PMPR)算法,即可得到和/>其中/>表示处理属于服务请求r的请求流f中的微服务节点m的处理器,然后确定每种微服务的部署位置和服务请求的路由路径,从而达到节省计算资源成本、最小化端到端延迟以及最大化微服务请求成功率的目的。
还可以理解的是,本实施例将微服务部署和请求路由问题表述为NP-hard的混合整数非线性规划(MI NLP)问题,并采用开放的开马尔可夫(Jackson)排队网络对响应延迟进行建模和分析,创造性的提出联合部署和路由的两阶段启发式算法:
第一阶段,针对多图像微服务部署,提出一种基于资源分割的贪心微服务部署算法(GMDA)算法实现细粒度图像部署,可以降低排队延迟、处理延迟和通信延迟,在保障不超过响应时间限制的条件下,使得处理器的使用成本最小。
第二阶段,针对请求路由问题,根据聚类和映射的思想,设计一种请求匹配和分区映射(PMPR)算法来确定请求流的转发概率,可以提高请求流的成功率。
本实施例中,摒弃对微服务部署和请求路由进行局部最优的方式,通过采用联合优化,可以实现全局最优,能在节省成本、降低响应延迟的同时,保障最大化请求成功率,提升了用户体验。
应理解,上述实施例中各步骤的序号大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
图4为本发明实施例提供的一种微服务调用图部署和请求路由联合优化系统的结构示意图,该系统包括:
微服务部署模块模块410,用于获取用户请求中每个微服务所需的计算资源,在未部署的微服务集合中将所有微服务按所需计算资源大小进行排序,基于各服务器节点剩余容量的约束,按顺序将用户请求的微服务分配至已部署的微服务节点中,得到微服务部署集合;
其中,根据公式(1)计算微服务所需的计算资源:
式中,Nm(f)表示微服务m在最大延迟内处理请求流f所需的计算资源,处理用户请求所需的计算资源随着Nm的增加而增加,Nm通过最小变化量来确定,Mf表示请求流f的所有微服务集合;
所述最小变化量的约束不等式为:
式中,表示m/m/c/∞排队系统中微服务m的平均排队延迟,/>表示微服务m在相应请求流中的最大延迟率,/>表示请求流f的最大延迟限制,/>表示处理器vi、vj之间的通信延迟。
具体的,基于各服务器节点剩余容量的约束,从已部署的服务器节点中查找满足约束要求的服务器节点,并将满足要求的服务器节点添加至微服务可使用的服务器节点集合中;
若已部署的服务器节点中不存在满足要求的服务器节点,且未被部署的服务器节点不为空,则从未被部署的服务器节点中选取满足ReCv≥Nm条件且平均通信时延较小的服务节点用于部署微服务;
若已部署的服务器节点中不存在满足要求的服务器节点,且未被部署的服务器节点为空,则从未被部署的服务器节点中选取满足ReCv约束不等式的服务器节点用于部署微服务;
其中,ReCv表示服务器节点计算资源的剩余容量,ReCv的约束不等式为ω表示资源分割因子,Nm为所获得的微服务m所需的计算资源。
进一步的,从微服务可使用的服务器节点集合中选取服务器节点,检验节点剩余计算资源是否小于微服务所需资源,若小于,则将微服务所需的全部镜像部署至选取的服务器节点上,否则,将微服务所需的服务镜像拆分,将微服务部署至剩余容量较大的服务器节点;
重复将微服务部署至服务器节点,直至没有可用的服务器节点;
当各服务器节点计算资源的剩余容量小于微服务所需的计算资源,则将微服务作为新的微服务节点添加至待分配队列中等待部署。
请求路由模块420,用于将请求到达率集合和一个大小相等的元组表示为每个微服务请求流的聚类和分区,并对不同微服务的元组进行聚类和划分操作;将聚类所得到的请求流集合按各分区请求到达率之和降序排序,迭代地遍历已经部署微服务的服务器节点,将每个聚类分区中的微服务请求分配给服务器节点,根据服务器节点拥有的计算资源,对微服务请求进行直接分配或者拆分后分配到多个服务器节点上,得到微服务请求转发概率和请求路由。
其中,用请求到达率集合和一个大小相等的元组表示每个微服务请求流的聚类和分区,元组的大小等于部署特定微服务的处理器数量;
将请求到达率集合中第一个元素最大的两个元组合并,将合并的元组减去元组中的最小值,得到请求流集合组。
具体的,对聚类所得到的请求流集合组fm,按各分区请求到达率之和降序排序;
遍历已部署微服务的服务器节点,将每个聚类分区中的微服务请求分配至拥有足够所需计算资源容量的任何微服务节点;否则,将微服务请求的流量进行拆分到多个服务器节点上;
重复分配过程,完成请求路由映射过程,得到微服务之间的转发概率和微服务的请求路由结果/>
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和模块的具体工作过程可以参考前述方法实施例中对应的过程,在此不再赘述。
图5是本发明一实施例提供的一种电子设备的结构示意图。所述电子设备用于微服务部署和请求路由联合优化。如图5所示,该实施例的电子设备5包括:存储器510、处理器520以及系统总线530,所述存储器510包括存储其上的可运行的程序5101,本领域技术人员可以理解,图5中示出的电子设备结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图5对电子设备的各个构成部件进行具体的介绍:
存储器510可用于存储软件程序以及模块,处理器520通过运行存储在存储器510的软件程序以及模块,从而执行电子设备的各种功能应用以及数据处理。存储器510可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据电子设备的使用所创建的数据(比如缓存数据)等。此外,存储器510可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
在存储器510上包含网络请求方法的可运行程序5101,所述可运行程序5101可以被分割成一个或多个模块/单元,所述一个或多个模块/单元被存储在所述存储器510中,并由处理器520执行,以实现微服务部署和请求路由的联合优化等,所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序5101在所述电子设备5中的执行过程。例如,所述计算机程序5101可以被分割为微服务部署模块和请求路由模块等功能模块。
处理器520是电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器510内的软件程序和/或模块,以及调用存储在存储器510内的数据,执行电子设备的各种功能和处理数据,从而对电子设备进行整体状态监控。可选的,处理器320可包括一个或多个处理单元;优选的,处理器520可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器520中。
系统总线530是用来连接计算机内部各功能部件,可以传送数据信息、地址信息、控制信息,其种类可以是例如PC I总线、I SA总线、CAN总线等。处理器520的指令通过总线传递至存储器510,存储器510反馈数据给处理器520,系统总线530负责处理器520与存储器510之间的数据、指令交互。当然系统总线530还可以接入其他设备,例如网络接口、显示设备等。
在本发明实施例中,该电子设备所包括的处理器520执行的可运行程序包括:
获取用户请求中每个微服务所需的计算资源,在未部署的微服务集合中将所有微服务按所需计算资源大小进行排序,基于各服务器节点剩余容量的约束,按顺序将用户请求的微服务分配至已部署的微服务节点中,得到微服务部署集合;
用请求到达率集合和一个大小相等的元组表示每个微服务请求流的聚类和分区,并对不同微服务的元组进行聚类和划分操作;
将聚类所得到的请求流集合按各分区请求到达率之和降序排序,迭代地遍历已经部署微服务的服务器节点,将每个聚类分区中的微服务请求分配给服务器节点,根据服务器节点拥有的计算资源,对微服务请求进行直接分配或者拆分后分配到多个服务器节点上,得到微服务请求转发概率和请求路由。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、设备和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种微服务调用图部署和请求路由联合优化方法,其特征在于,包括:
获取用户请求中每个微服务所需的计算资源,在未部署的微服务集合中将所有微服务按所需计算资源大小进行排序,基于各服务器节点剩余容量的约束,按顺序将用户请求的微服务分配至已部署的微服务节点中,得到微服务部署集合;
用请求到达率集合和一个大小相等的元组表示每个微服务请求流的聚类和分区,并对不同微服务的元组进行聚类和划分操作;
将聚类所得到的请求流集合按各分区请求到达率之和降序排序,迭代地遍历已经部署微服务的服务器节点,将每个聚类分区中的微服务请求分配给服务器节点,根据服务器节点拥有的计算资源,对微服务请求进行直接分配或者拆分后分配到多个服务器节点上,得到微服务请求转发概率和请求路由。
2.根据权利要求1所述的方法,其特征在于,所述获取用户请求中每个微服务所需的计算资源包括:
根据公式(1)计算微服务所需的计算资源:
式中,Nm(f)表示微服务m在最大延迟内处理请求流f所需的计算资源,处理用户请求所需的计算资源随着Nm的增加而增加,Nm通过最小变化量来确定,Mf表示请求流f的所有微服务集合;
所述最小变化量的约束不等式为:
式中,表示m/m/c/∞排队系统中微服务m的平均排队延迟,/>表示微服务m在相应请求流中的最大延迟率,/>表示请求流f的最大延迟限制,/>表示处理器vi、vj之间的通信延迟。
3.根据权利要求1所述的方法,其特征在于,所述基于各服务器节点剩余容量的约束,按顺序将用户请求的微服务分配至已部署的微服务节点中包括:
基于各服务器节点剩余容量的约束,从已部署的服务器节点中查找满足约束要求的服务器节点,并将满足要求的服务器节点添加至微服务可使用的服务器节点集合中;
若已部署的服务器节点中不存在满足要求的服务器节点,且未被部署的服务器节点不为空,则从未被部署的服务器节点中选取满足ReCv≥Nm条件且平均通信时延较小的服务节点用于部署微服务;
若已部署的服务器节点中不存在满足要求的服务器节点,且未被部署的服务器节点为空,则从未被部署的服务器节点中选取满足ReC1约束不等式的服务器节点用于部署微服务;
其中,ReCv表示服务器节点计算资源的剩余容量,ReCv的约束不等式为ω表示资源分割因子,Nm为所获得的微服务m所需的计算资源。
4.根据权利要求1所述的方法,其特征在于,所述基于各服务器节点剩余容量的约束,按顺序将用户请求的微服务分配至已部署的微服务节点中包括:
从微服务可使用的服务器节点集合中选取服务器节点,检验节点剩余计算资源是否小于微服务所需资源,若小于,则将微服务所需的全部镜像部署至选取的服务器节点上,否则,将微服务所需的服务镜像拆分,将微服务部署至剩余容量较大的服务器节点;
重复将微服务部署至服务器节点,直至没有可用的服务器节点;
当各服务器节点计算资源的剩余容量小于微服务所需的计算资源,则将微服务作为新的微服务节点添加至待分配队列中等待部署。
5.根据权利要求1所述的方法,其特征在于,所述用请求到达率集合和一个大小相等的元组表示每个微服务请求流的聚类和分区,并对不同微服务的元组进行聚类和划分操作包括:
用请求到达率集合和一个大小相等的元组表示每个微服务请求流的聚类和分区,元组的大小等于部署特定微服务的处理器数量;
将请求到达率集合中第一个元素最大的两个元组合并,将合并的元组减去元组中的最小值,得到请求流集合组。
6.根据权利要求1所述的方法,其特征在于,所述将每个聚类分区中的微服务请求分配给服务器节点,根据服务器节点拥有的计算资源,对微服务请求进行直接分配或者拆分后分配到多个服务器节点上包括:
获取微服务部署集合中微服务在各服务器节点上分配的计算资源;
比较聚类分区中的微服务请求与各服务器节点上分配的计算资源的大小,若服务器节点上分配的计算资源大于等于微服务请求,则对微服务请求进行直接分配,否则,将微服务请求拆分后,分配到多个服务器节点上。
7.根据权利要求1所述的方法,其特征在于,所述将聚类所得到的请求流集合按各分区请求到达率之和降序排序,迭代地遍历已经部署微服务的服务器节点,将每个聚类分区中的微服务请求分配给服务器节点,根据服务器节点拥有的计算资源,对微服务请求进行直接分配或者拆分后分配到多个服务器节点上包括:
对聚类所得到的请求流集合组fm,按各分区请求到达率之和降序排序;
遍历已部署微服务的服务器节点,将每个聚类分区中的微服务请求分配至拥有足够所需计算资源容量的任何微服务节点;否则,将微服务请求的流量进行拆分到多个服务器节点上;
重复分配过程,完成请求路由映射过程,得到微服务之间的转发概率和微服务的请求路由结果/>
8.一种微服务调用图部署和请求路由联合优化系统,其特征在于,包括:
微服务部署模块模块,用于获取用户请求中每个微服务所需的计算资源,在未部署的微服务集合中将所有微服务按所需计算资源大小进行排序,基于各服务器节点剩余容量的约束,按顺序将用户请求的微服务分配至已部署的微服务节点中,得到微服务部署集合;
请求路由模块,用于将请求到达率集合和一个大小相等的元组表示为每个微服务请求流的聚类和分区,并对不同微服务的元组进行聚类和划分操作;将聚类所得到的请求流集合按各分区请求到达率之和降序排序,迭代地遍历已经部署微服务的服务器节点,将每个聚类分区中的微服务请求分配给服务器节点,根据服务器节点拥有的计算资源,对微服务请求进行直接分配或者拆分后分配到多个服务器节点上,得到微服务请求转发概率和请求路由。
9.一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述的一种微服务调用图部署和请求路由联合优化方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被执行时实现如权利要求1至7任一项所述的一种微服务调用图部署和请求路由联合优化方法的步骤。
CN202311100198.6A 2023-08-28 2023-08-28 一种微服务调用图部署和请求路由联合优化方法及系统 Pending CN117097806A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311100198.6A CN117097806A (zh) 2023-08-28 2023-08-28 一种微服务调用图部署和请求路由联合优化方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311100198.6A CN117097806A (zh) 2023-08-28 2023-08-28 一种微服务调用图部署和请求路由联合优化方法及系统

Publications (1)

Publication Number Publication Date
CN117097806A true CN117097806A (zh) 2023-11-21

Family

ID=88778989

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311100198.6A Pending CN117097806A (zh) 2023-08-28 2023-08-28 一种微服务调用图部署和请求路由联合优化方法及系统

Country Status (1)

Country Link
CN (1) CN117097806A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117349036A (zh) * 2023-12-06 2024-01-05 湖北省楚天云有限公司 微服务实例部署方法、系统、设备及存储介质
CN117527590A (zh) * 2024-01-04 2024-02-06 湖北省楚天云有限公司 基于边缘网络的微服务部署与请求路由方法、系统及介质
CN117692503A (zh) * 2024-02-04 2024-03-12 国网湖北省电力有限公司信息通信公司 动态微服务图部署和概率请求路由的联合优化方法及系统

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117349036A (zh) * 2023-12-06 2024-01-05 湖北省楚天云有限公司 微服务实例部署方法、系统、设备及存储介质
CN117349036B (zh) * 2023-12-06 2024-04-05 湖北省楚天云有限公司 微服务实例部署方法、系统、设备及存储介质
CN117527590A (zh) * 2024-01-04 2024-02-06 湖北省楚天云有限公司 基于边缘网络的微服务部署与请求路由方法、系统及介质
CN117527590B (zh) * 2024-01-04 2024-05-21 湖北省楚天云有限公司 基于边缘网络的微服务部署与请求路由方法、系统及介质
CN117692503A (zh) * 2024-02-04 2024-03-12 国网湖北省电力有限公司信息通信公司 动态微服务图部署和概率请求路由的联合优化方法及系统
CN117692503B (zh) * 2024-02-04 2024-04-26 国网湖北省电力有限公司信息通信公司 动态微服务图部署和概率请求路由的联合优化方法及系统

Similar Documents

Publication Publication Date Title
CN117097806A (zh) 一种微服务调用图部署和请求路由联合优化方法及系统
EP3770774B1 (en) Control method for household appliance, and household appliance
CN108322333B (zh) 一种基于遗传算法的虚拟网络功能的放置方法
CN109788046B (zh) 一种基于改进蜂群算法的多策略边缘计算资源调度方法
CN111385202B (zh) 一种基于虚拟网络功能的路由分配方法
CN114610474B (zh) 一种异构超算环境下多策略的作业调度方法及系统
CN114679451B (zh) 面向边缘计算的服务调度系统及其调度方法
CN110231986A (zh) 基于多fpga的动态可重配置的多任务调度和放置方法
CN111352711A (zh) 多计算引擎调度方法、装置、设备及存储介质
Shi et al. Coflow scheduling in data centers: routing and bandwidth allocation
CN107360031B (zh) 一种基于优化开销收益比的虚拟网络映射方法
CN109062683B (zh) 主机资源分配的方法、装置及计算机可读存储介质
CN113190342B (zh) 用于云-边协同网络的多应用细粒度卸载的方法与系统架构
CN113641448A (zh) 一种边缘计算容器分配和层下载排序体系结构及其方法
Patel et al. An improved load-balancing mechanism based on deadline failure recovery on GridSim
CN112214318A (zh) 一种任务调度方法、系统、设备以及介质
CN116954905A (zh) 一种面向Flink大数据的任务编排与迁移方法
CN115361349B (zh) 资源使用方法和装置
CN116048759A (zh) 数据流的数据处理方法、装置、计算机和存储介质
CN111813525B (zh) 一种异构系统工作流调度方法
CN111245906B (zh) 一种业务请求分配方法
CN109600251B (zh) 一种虚拟网络部署方法、系统及装置
CN114035919A (zh) 基于配电网分层分布特征的任务调度系统及方法
Chen et al. MOClusVNF: Leveraging multi-objective for scalable NFV orchestration
Sato et al. Program file placement problem for machine-to-machine service network platform

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