CN117349036B - 微服务实例部署方法、系统、设备及存储介质 - Google Patents
微服务实例部署方法、系统、设备及存储介质 Download PDFInfo
- Publication number
- CN117349036B CN117349036B CN202311658003.XA CN202311658003A CN117349036B CN 117349036 B CN117349036 B CN 117349036B CN 202311658003 A CN202311658003 A CN 202311658003A CN 117349036 B CN117349036 B CN 117349036B
- Authority
- CN
- China
- Prior art keywords
- micro
- service
- physical server
- server node
- deployment
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 66
- 239000011159 matrix material Substances 0.000 claims abstract description 44
- 230000005540 biological transmission Effects 0.000 claims abstract description 35
- 238000004891 communication Methods 0.000 claims description 32
- 238000010586 diagram Methods 0.000 claims description 23
- 238000012163 sequencing technique Methods 0.000 claims description 20
- 230000003993 interaction Effects 0.000 abstract description 2
- 230000008569 process Effects 0.000 description 14
- 230000006978 adaptation Effects 0.000 description 11
- 230000004044 response Effects 0.000 description 11
- 230000006870 function Effects 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 4
- 230000006872 improvement Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000003044 adaptive effect Effects 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000010845 search algorithm Methods 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 238000011144 upstream manufacturing Methods 0.000 description 2
- 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/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
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种微服务实例部署方法、系统、设备及存储介质,所述方法包括:构建多个用户请求的距离矩阵,遍历距离矩阵中的多个关联程度,从多个关联程度中选取最大关联程度的第一用户请求和第二用户请求;将第一用户请求与第二用户请求的消耗资源大小进行比较,确定消耗资源较多请求;在消耗资源较多请求的当前微服务所有微服务实例不满足目标物理服务器节点的资源部署条件时,根据目标物理服务器节点确定时延最小物理服务器节点;将当前微服务的所有微服务实例部署至时延最小物理服务器节点。本发明通过尽可能的将同一用户请求的微服务实例放置在同一个物理服务器上,避免不同物理服务器之间信息交互带来的传输时延。
Description
技术领域
本发明涉及微服务部署技术领域,尤其涉及一种微服务实例部署方法、系统、设备及存储介质。
背景技术
如今,微服务架构越来越流行,其导致了在线基于云服务的应用程序的激增和部署模式发生巨大的转变,这些应用程序通常被解耦成几十到几百的小的微服务单元,这些微服务单元可以互相通信。此外,每个微服务可能被实现为容器,功能等。这些应用中的绝大多数是面向用户的,因此有着严格的性能要求。
目前,已经有多种微服务架构被实现,这些微服务之间需要进行大量的通信来同步信息,以支持各种大规模的在线用户应用请求,现有的微服务部署策略对其传输时延、服务性能和部署成本,都还有很大的提升空间。因此,如何在降低微服务整体的响应时延的情况下提高服务器利用率成为一个亟待解决的问题。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于提供了一种微服务实例部署方法、系统、设备及存储介质,旨在解决如何在降低微服务整体的响应时延的情况下提高服务器利用率的技术问题。
为实现上述目的,本发明提供了一种微服务实例部署方法,所述微服务实例部署方法包括:
构建多个用户请求对应的距离矩阵,遍历所述距离矩阵中的多个关联程度,并从多个关联程度中选取最大关联程度对应的第一用户请求和第二用户请求;
将所述第一用户请求与所述第二用户请求之间的消耗资源大小进行比较,确定消耗资源较多请求;
在所述消耗资源较多请求对应的当前微服务的所有微服务实例不满足目标物理服务器节点的资源部署条件时,根据所述目标物理服务器节点确定时延最小物理服务器节点;
将所述当前微服务的所有微服务实例部署至所述时延最小物理服务器节点;
遍历结束时,完成微服务实例部署。
可选地,所述将所述第一用户请求与所述第二用户请求之间的消耗资源大小进行比较,确定消耗资源较多请求的步骤之后,还包括:
对多个物理服务器节点的剩余资源容量进行降序排序,获得节点资源容量排序结果;
从资源容量排序结果中选取资源容量最多的物理服务器节点,并将所述资源容量最多的物理服务器节点作为目标物理服务器节点。
可选地,所述在所述消耗资源较多请求对应的当前微服务的所有微服务实例不满足目标物理服务器节点的资源部署条件时,根据所述目标物理服务器节点确定时延最小物理服务器节点的步骤之前,还包括:
获取所述消耗资源较多请求对应的微服务调度图;
对所述微服务调度图进行拓扑排序,获得微服务排序结果;
判断所述消耗资源较多请求对应的所有微服务的所有微服务实例是否满足目标物理服务器节点的资源部署条件;
若不满足,则基于所述微服务排序结果根据所述所有微服务的所有微服务实例确定待处理微服务的所有微服务实例,将所述待处理微服务的所有微服务实例放置所述目标物理服务器节点,并根据所述所有微服务的所有微服务实例和所述待处理微服务的所有微服务实例确定剩余微服务的所有微服务实例;
根据所述剩余微服务的所有微服务实例确定所述消耗资源较多请求对应的当前微服务的所有微服务实例;
判断所述消耗资源较多请求对应的当前微服务的所有微服务实例是否满足所述目标物理服务器节点的资源部署条件。
可选地,所述判断所述消耗资源较多请求对应的所有微服务的所有微服务实例是否满足目标物理服务器节点的资源部署条件的步骤之后,还包括:
在所述消耗资源较多请求对应的所有微服务的所有微服务实例满足所述目标物理服务器节点的资源部署条件时,则基于所述微服务排序结果将所述消耗资源较多请求对应的所有微服务的所有微服务实例部署至所述目标物理服务器节点。
可选地,所述根据所述目标物理服务器节点确定时延最小物理服务器节点的步骤,包括:
获取多个物理服务器节点之间对应的通信时延;
根据所述通信时延生成通信时延传输矩阵;
基于所述通信时延传输矩阵按照时延从小到大排序规则对多个物理服务器节点进行排序,获得节点时延传输结果;
根据所述目标物理服务器节点从所述节点时延传输结果中选取时延最小物理服务器节点。
此外,为实现上述目的,本发明还提出一种微服务实例部署系统,所述微服务实例部署系统包括:
选取模块,用于构建多个用户请求对应的距离矩阵,遍历所述距离矩阵中的多个关联程度,并从多个关联程度中选取最大关联程度对应的第一用户请求和第二用户请求;
比较模块,用于将所述第一用户请求与所述第二用户请求之间的消耗资源大小进行比较,确定消耗资源较多请求;
确定模块,用于在所述消耗资源较多请求对应的当前微服务的所有微服务实例不满足目标物理服务器节点的资源部署条件时,根据所述目标物理服务器节点确定时延最小物理服务器节点;
部署模块,用于将所述当前微服务的所有微服务实例部署至所述时延最小物理服务器节点;
所述部署模块,还用于遍历结束时,完成微服务实例部署。
此外,为实现上述目的,本发明还提出一种微服务实例部署设备,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的微服务实例部署程序,所述微服务实例部署程序配置为实现如上文所述的微服务实例部署方法的步骤。
此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有微服务实例部署程序,所述微服务实例部署程序被处理器执行时实现如上文所述的微服务实例部署方法的步骤。
本发明首先构建多个用户请求对应的距离矩阵,遍历距离矩阵中的多个关联程度,并从多个关联程度中选取最大关联程度对应的第一用户请求和第二用户请求,然后将第一用户请求与第二用户请求之间的消耗资源大小进行比较,确定消耗资源较多请求,之后在消耗资源较多请求对应的当前微服务的所有微服务实例不满足目标物理服务器节点的资源部署条件时,根据目标物理服务器节点确定时延最小物理服务器节点,将当前微服务的所有微服务实例部署至时延最小物理服务器节点,最后遍历结束时,完成微服务实例部署。相较于现有技术中微服务部署策略对其传输时延、服务性能和部署成本,都还有很大的提升空间,而本发明通过改进微服务的部署方式,进而降低了微服务整体的响应时延,提高服务器利用率,降低部署成本。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的微服务实例部署设备的结构示意图;
图2为本发明微服务实例部署方法第一实施例的流程示意图;
图3为本发明微服务实例部署方法第一实施例的链式管道图;
图4为本发明微服务实例部署方法第一实施例的交叉并行微服务图;
图5为本发明微服务实例部署方法第一实施例的复杂的微服务用户请求图;
图6为本发明微服务实例部署方法第一实施例的基于下次适应算法的微服务放置算法的流程图;
图7为本发明微服务实例部署系统第一实施例的结构框图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的微服务实例部署设备结构示意图。
如图1所示,该微服务实例部署设备可以包括:处理器1001,例如中央处理器(Central Processing Unit,CPU),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(DisPlay)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(Wireless-Fidelity,Wi-Fi)接口)。存储器1005可以是高速的随机存取存储器(RandomAccess Memory,RAM),也可以是稳定的非易失性存储器(Non-Volatile Memory,NVM),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储系统。
本领域技术人员可以理解,图1中示出的结构并不构成对微服务实例部署设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及微服务实例部署程序。
在图1所示的微服务实例部署设备中,网络接口1004主要用于与网络服务器进行数据通信;用户接口1003主要用于与用户进行数据交互;本发明微服务实例部署设备中的处理器1001、存储器1005可以设置在微服务实例部署设备中,所述微服务实例部署设备通过处理器1001调用存储器1005中存储的微服务实例部署程序,并执行本发明实施例提供的微服务实例部署方法。
本发明实施例提供了一种微服务实例部署方法,参照图2,图2为本发明微服务实例部署方法第一实施例的流程示意图。
本实施例中,所述微服务实例部署方法包括以下步骤:
步骤S10:构建多个用户请求对应的距离矩阵,遍历所述距离矩阵中的多个关联程度,并从多个关联程度中选取最大关联程度对应的第一用户请求和第二用户请求。
易于理解的是,本实施例的执行主体可以是具有数据处理、网络通讯和程序运行等功能的微服务实例部署系统,也可以为其他具有相似功能的计算机设备等,本实施例并不加以限制。
还需要说明的是,用表示云数据中心网络/云计算中心,其中表示物理服务器节点的集合,表示连接任意两个服务器节点的链路集合。对于每个物理服务器节点,用符号表示节点所拥有最大等效计算资源(例如CPU,内存,存储等)。用表示节点一旦被使用需要的固定和维护成本,微服务的部署成本,二进制微服务文件只用从云计算服务中心下载一次,之后在同一物理服务器节点上部署相同微服务实例不需要重新下载相应的二进制资源配置文件。符号表示物理服务器节点和相连接。对于任意两个节点,符号表示节点之间的最大带宽容量,表示数据传输的通信链路延迟。云数据中心采用基于脊-叶(Spine-Leaf)的网络拓扑结构,每个物理服务器可以虚拟化多个容器,但一个容器只能部署一个微服务实例。
微服务是将一个业务请求拆分成细粒度的服务,每个微服务针对单一的用户业务,每个服务都在自己的进程运行,但相互合作并使用轻量级机制(REST/RPC)进行通信,容器化技术可以有效避免微服务之间产生干扰,可以有效保证微服务功能的边界,Docker提供了Dockerfile和docker commit两种方式构建镜像,并且提供了Docker image registry机制以保存和分发镜像,为容器之间提供了良好的隔离性。单位容器docker占用的等效计算资源为。
;
使用符号表示所需微服务类型的集合。表示在数据中心网络中用户请求的集合。用户请求可以被看作是一个完整的应用程序,微服务可以被认为是它们被划分为的细粒度的模块,因此微服务在运行时会密集地相互协作和通信。考虑微服务之间的关系,将用户请求分为三种形式:第一种形式是链式管道,参考图3,图3为本发明微服务实例部署方法第一实施例的链式管道图,其中微服务被顺序执行。例如,一个微信支付管道由四个顺序的阶段组成(用户信息,缴费类型,支付推荐,用户支付,办理代扣)。第二种形式代表了简单的并行微服务,参考图4,图4为本发明微服务实例部署方法第一实施例的交叉并行微服务图,通常一个微服务可以upsteam/父亲微服务得到用户数据,合并请求流量到一个最终的合并微服务被处理。第三种形式是一个更复杂的微服务用户请求,参考图5,图5为本发明微服务实例部署方法第一实施例的复杂的微服务用户请求图。
基于第二种,存在多个交叉并行的微服务,下游的微服务节点必须得到上游的微服务被完全处理才能开始被服务,因此存在拓扑排序和时延关键路径。
本实施例使用的微服务放置算法以第三种形式为应用场景,前两种形式同样通用。对于第三种有向无环图形式的的微服务拓扑关系,本发明提出一种基于下次适应算法(next fit)的微服务放置算法,参考图6,图6为本发明微服务实例部署方法第一实施例的基于下次适应算法的微服务放置算法的流程图,在部署过程中,如果用户请求所需要的总资源需求超过服务器节点所提供的,那么将会拆分微服务,部署它们到通信时延最短的相邻服务器节点,直到所有微服务实例部署完成。主要通过其中同一请求所需微服务在同一物理服务器或最近物理服务器部署的方式避免或降低传输时延,从而提高响应速度,节省资源,降低部署成本。
确定用户请求中每个微服务实例的数量,从而更加准确有效的部署微服务。对于有向无环图(微服务调度图)的微服务请求,用深度优先搜索算法得到|r|个服务路径,其中。每条路径根据单位微服务处理能力的比值,得到满足时延需求的实例数量,计算公式如下:
;
其中代表指示函数,代表微服务是否在集合中,不存在为若0。若服务路径上有此微服务就计算,没有则为0。若有同种的微服务,则取最大的。符号表示对于用户请求r,在物理服务器节点v上,微服务的实例队列的平均响应时延。表示微服务的每个实例在单位容器上的处理速率。表示用户请求流的最大容忍时延。
在具体实现中,在开始部署微服务到具体的物理服务器上之前,首先要建立关于所有用户请求r的距离矩阵。是一个的斜对称矩阵,R表示所有用户服务请求的集合。其中是其中的一个元素,代表了用户请求和之间的关联程度。考虑用户请求的四种属性,分别是最大容忍时延,计算资源需求,请求到达率和总带宽需求。因此,在数学上可以由一维向量表示每个用户请求,表达式如下:
;
其中,表示用户请求r的最大容忍时延,表示用户请求r的请求到达率,表示用户请求r所需的微服务集合,表示用户请求r所需的微服务集合中的i个微服务的每个实例在单位容器上的处理速率。表示在单位请求到达率下,从微服务到微服务传输数据消耗的带宽资源。由的表达式可以得到的计算公式如下:
;
其中,表示在用户请求和之间的皮尔逊相关系数,其数值范围在[-1,1]之间,用来消除分量之间数量级不统一的影响,尽力保证平移不变性和尺度不变性。
步骤S20:将所述第一用户请求与所述第二用户请求之间的消耗资源大小进行比较,确定消耗资源较多请求。
还需要说明的是,选择部署的服务器节点,然后选择最大关联程度(距离值最大)的两个用户请求,将两个用户请求中消耗资源更多的请求标记为,另一个标记为。
应理解的是,距离值最大表示两个请求的相关性越高,耦合性越高,把放在一起或者尽可能的放的近,可以有效的降低时延。
步骤S30:在所述消耗资源较多请求对应的当前微服务的所有微服务实例不满足目标物理服务器节点的资源部署条件时,根据所述目标物理服务器节点确定时延最小物理服务器节点。
还需要说明的是,获取消耗资源较多请求对应的微服务调度图;对微服务调度图进行拓扑排序,获得微服务排序结果;判断消耗资源较多请求对应的所有微服务的所有微服务实例是否满足目标物理服务器节点的资源部署条件;在消耗资源较多请求对应的所有微服务的所有微服务实例满足目标物理服务器节点的资源部署条件时,则基于微服务排序结果将消耗资源较多请求对应的所有微服务的所有微服务实例部署至所述目标物理服务器节点;若不满足,则基于微服务排序结果根据所有微服务的所有微服务实例确定待处理微服务的所有微服务实例,将待处理微服务的所有微服务实例放置目标物理服务器节点,并根据所有微服务的所有微服务实例和待处理微服务的所有微服务实例确定剩余微服务的所有微服务实例;根据剩余微服务的所有微服务实例确定消耗资源较多请求对应的当前微服务的所有微服务实例;判断消耗资源较多请求对应的当前微服务的所有微服务实例是否满足目标物理服务器节点的资源部署条件;在消耗资源较多请求对应的当前微服务的所有微服务实例不满足目标物理服务器节点的资源部署条件时,根据目标物理服务器节点确定时延最小物理服务器节点。
还需要说明的是,资源部署条件可以理解为能够部署消耗资源较多请求对应的全部微服务或部分微服务的所有微服务实例或当前微服务的所有微服务实例。
还需要说明的是,资源部署条件可以理解为能够部署消耗资源较多请求对应的全部微服务的所有微服务实例或当前微服务的所有微服务实例。
对多个物理服务器节点的剩余资源容量进行降序排序,获得节点资源容量排序结果;从资源容量排序结果中选取资源容量最多的物理服务器节点,并将资源容量最多的物理服务器节点作为目标物理服务器节点。
基于微服务排序结果根据所有微服务的所有微服务实例确定待处理微服务的所有微服务实例可以理解为根据微服务排序结果依次选取能够放置目标物理服务器节点的微服务(单个或多个)的所有微服务实例(即待处理微服务的所有微服务实例)。
剩余微服务(单个或多个)的所有微服务实例可以理解为没有放置在目标物理服务器节点上剩余的微服务的所有微服务实例。
根据剩余微服务的所有微服务实例确定消耗资源较多请求对应的当前微服务的所有微服务实例可以理解为基于微服务排序结果从剩余微服务的所有微服务实例中选取的当前微服务的所有微服务实例。
步骤S40:将所述当前微服务的所有微服务实例部署至所述时延最小物理服务器节点。
需要说明的是,时延最小物理服务器节点为有足够的计算资源并且没有其他微服务实例在上面部署的物理服务器节点。
进一步地,根据目标物理服务器节点确定时延最小物理服务器节点的处理方式为获取多个物理服务器节点之间对应的通信时延;根据通信时延生成通信时延传输矩阵;基于通信时延传输矩阵按照时延从小到大排序规则对多个物理服务器节点进行排序,获得节点时延传输结果;根据目标物理服务器节点从节点时延传输结果中选取时延最小物理服务器节点。
在具体实现中,如果选择的用户请求r需要遍历的所有微服务作为一个能够实例化在当前服务器节点上,那么按照顺序依次放置,并更新集合和,表示服务器节点的服务状态。同时将这个请求从集合R中移除。
如果当前服务器节点剩余的计算资源容量小于请求r需要的等效计算资源,那么将请求r拆分为独立的微服务分别放置。采用基于首部适应算法(next-fit)的部署方式,依次放置微服务。
如果微服务的实例不能完全部署在服务器节点v上,那么表明被选中的微服务需要放置在新的服务器节点即时延最小物理服务器节点上。
还应理解的是,需要考虑微服务节点之间的通信的数据量和服务器节点之间的传输时延,根据距离当前服务器节点的时延大小,对V进行排序得到集合,找到合适的物理服务器节点即时延最小物理服务器节点,需要有足够的计算资源并且没有其他微服务实例在上面部署。
在本实施例中,还可以理解为先选择距离矩阵中相距值最大的两个用户请求,然后比较消耗资源的多少,先处理消耗资源多的请求,将当前要处理的用户请求的所有微服务尝试放置在剩余计算资源最多的物理服务器中,如果超出物理服务器的剩余资源容量,则将剩余微服务放在距当前物理服务器最近,传输时延最短的物理服务器中。
还需要说明的是,引入用户请求距离矩阵的概念,按照用户请求距离的远近放置微服务,有效提高服务器节点的利用率。采用基于next fit的微服务放置算法,可以尽量把同一个请求的微服务放置在同一个物理服务器节点上,或者拆分微服务,放置在最近的物理服务器节点,对于同一用户请求,保证在时延容忍范围内实现局部最有,提高服务响应速率,降低部署成本。
步骤S50:遍历结束时,完成微服务实例部署。
还需要说明的是,需要以上述流程处理另一个用户请求,然后选出下一个距离值最大的用户请求对,以同样的方式处理,直到处理完所有的用户请求,完成所有微服务的放置工作。
在本实施例中,完整的技术方案可参考以下基于下次适应算法(next fit)的微服务放置算法流程表:
算法1-1:局部 Next Fit 微服务放置算法---从每条微服务链的角度考虑;
输入:所有用户服务请求的集合:;
每个物理服务器节点的剩余计算资源容量的集合;
输出:部署有微服务实例的服务器节点:;
服务器节点的服务状态;
1.对所有用户请求的微服务调度图进行拓扑排序;
2.计算不同用户请求之间的距离矩阵,评估请求之间的相似程度和相关性,得到矩阵;
3.初始化,并进行降序排序;
4. whiledo;
5.初始化为剩余计算资源最多的服务器节点;
6.从矩阵中选择值最大的元素,获取用户请求;
7.分别计算需要消耗的等效计算资源,并进行比较,其中用表示消耗更多计算资源的用户请求,表示需要较少资源的用户请求;
8.For k in 2 do;
9.if then;
10.将中的所有微服务实例均在节点上部署;
11.更新和,将节点加入中;
12.将部署完成的请求从集合中移除;
13.else ifthen (Next Fit部署);
14.forindo;
15.ifthen;
16.;
17.else ifthen;
18.根据通信时延传输矩阵,根据时延从小到大排序得到集合,找到首次出现的,满足且没有部署微服务;
19.更新,并且;
20.end if;
21.end for;
22.更新和,将节点加入中;
23.将部署完成的请求从集合中移除;
24.end if;
25.end for;
26.计算对应的,矩阵中关于的行列的值标为-1;
27.end while;
28.return ,,。
在具体实现中,参考上述基于下次适应算法(next fit)的微服务放置算法流程表:
1)选择首次部署微服务实例的服务器节点。从距离矩阵中挑选出有最大请求距离的一对用户请求。
2)对这对用户请求所消耗的计算资源进行比较,将其中消耗更多计算资源的请求r优先选择放置,并标记为,另一个标记为。
3)如果选择的用户请求r需要遍历的所有微服务作为一个能够实例化在当前服务器节点上,那么我们按照顺序依次放置,并更新集合和,表示服务器节点的服务状态。同时将这个请求从集合R中移除。
4)如果当前服务器节点剩余的计算资源容量小于请求r需要的等效计算资源,那么我们将请求r拆分为独立的微服务分别放置。
5)采用基于首部适应算法(next-fit)的部署方式,依次放置微服务。如果微服务的实例不能完全部署在服务器节点上,那么表明被选中的微服务需要放置在新的服务器节点上。
6)此时需要考虑微服务节点之间的通信的数据量和服务器节点之间的传输时延,根据距离当前服务器节点的时延大小,对V进行排序得到集合,找到合适的物理服务器,需要有足够的计算资源并且没有其他微服务实例在上面部署。
7)当选择的一对用户请求放置完成后,计算转移概率,表示当服务请求的微服务的节点上处理的概率。然后将距离矩阵中关于的行列的值标为-1。
8)重复以上过程直到为空集,如果在循环结束后,中所有元素的值为-1,那么意味着所有的请求均被部署完成,且微服务在物理服务器上的处理概率也能被确定。
9)得到,,,其中表示部署有微服务实例的服务器节点集合,表示服务器节点的服务状态,二值决策变量,表示物理服务器节点上是否存在微服务的实例,决策变量表示微服务在物理服务器上占用的容器数量,二值决策变量表示在节点上是否处理请求所要求的中包含的微服务。
在本实施例中,首先构建多个用户请求对应的距离矩阵,遍历距离矩阵中的多个关联程度,并从多个关联程度中选取最大关联程度对应的第一用户请求和第二用户请求,然后将第一用户请求与第二用户请求之间的消耗资源大小进行比较,确定消耗资源较多请求,之后在消耗资源较多请求对应的当前微服务的所有微服务实例不满足目标物理服务器节点的资源部署条件时,根据目标物理服务器节点确定时延最小物理服务器节点,将当前微服务的所有微服务实例部署至时延最小物理服务器节点,最后遍历结束时,完成微服务实例部署。相较于现有技术中微服务部署策略对其传输时延、服务性能和部署成本,都还有很大的提升空间,而本实施例通过改进微服务的部署方式,进而降低了微服务整体的响应时延,提高服务器利用率,降低部署成本。
参照图7,图7为本发明微服务实例部署系统第一实施例的结构框图。
如图7所示,本发明实施例提出的微服务实例部署系统包括:
选取模块7001,用于构建多个用户请求对应的距离矩阵,遍历所述距离矩阵中的多个关联程度,并从多个关联程度中选取最大关联程度对应的第一用户请求和第二用户请求。
还需要说明的是,用表示云数据中心网络/云计算中心,其中表示物理服务器节点的集合,表示连接任意两个服务器节点的链路集合。对于每个物理服务器节点,用符号表示节点所拥有最大等效计算资源(例如CPU,内存,存储等)。用表示节点一旦被使用需要的固定和维护成本,微服务的部署成本,二进制微服务文件只用从云计算服务中心下载一次,之后在同一物理服务器节点上部署相同微服务实例不需要重新下载相应的二进制资源配置文件。符号表示物理服务器节点和相连接。对于任意两个节点,符号表示节点之间的最大带宽容量,表示数据传输的通信链路延迟。云数据中心采用基于脊-叶(Spine-Leaf)的网络拓扑结构,每个物理服务器可以虚拟化多个容器,但一个容器只能部署一个微服务实例。
微服务是将一个业务请求拆分成细粒度的服务,每个微服务针对单一的用户业务,每个服务都在自己的进程运行,但相互合作并使用轻量级机制(REST/RPC)进行通信,容器化技术可以有效避免微服务之间产生干扰,可以有效保证微服务功能的边界,Docker提供了Dockerfile和docker commit两种方式构建镜像,并且提供了Docker image registry机制以保存和分发镜像,为容器之间提供了良好的隔离性。单位容器docker占用的等效计算资源为。
;
使用符号表示所需微服务类型的集合。表示在数据中心网络中用户请求的集合。用户请求可以被看作是一个完整的应用程序,微服务可以被认为是它们被划分为的细粒度的模块,因此微服务在运行时会密集地相互协作和通信。考虑微服务之间的关系,将用户请求分为三种形式:第一种形式是链式管道,参考图3,图3为本发明微服务实例部署方法第一实施例的链式管道图,其中微服务被顺序执行。例如,一个微信支付管道由四个顺序的阶段组成(用户信息,缴费类型,支付推荐,用户支付,办理代扣)。第二种形式代表了简单的并行微服务,参考图4,图4为本发明微服务实例部署方法第一实施例的交叉并行微服务图,通常一个微服务可以upsteam/父亲微服务得到用户数据,合并请求流量到一个最终的合并微服务被处理。第三种形式是一个更复杂的微服务用户请求,参考图5,图5为本发明微服务实例部署方法第一实施例的复杂的微服务用户请求图。
基于第二种,存在多个交叉并行的微服务,下游的微服务节点必须得到上游的微服务被完全处理才能开始被服务,因此存在拓扑排序和时延关键路径。
本实施例使用的微服务放置算法以第三种形式为应用场景,前两种形式同样通用。对于第三种有向无环图形式的的微服务拓扑关系,本发明提出一种基于下次适应算法(next fit)的微服务放置算法,参考图6,图6为本发明微服务实例部署方法第一实施例的基于下次适应算法的微服务放置算法的流程图,在部署过程中,如果用户请求所需要的总资源需求超过服务器节点所提供的,那么将会拆分微服务,部署它们到通信时延最短的相邻服务器节点,直到所有微服务实例部署完成。主要通过其中同一请求所需微服务在同一物理服务器或最近物理服务器部署的方式避免或降低传输时延,从而提高响应速度,节省资源,降低部署成本。
确定用户请求中每个微服务实例的数量,从而更加准确有效的部署微服务。对于有向无环图(微服务调度图)的微服务请求,用深度优先搜索算法得到|r|个服务路径,其中。每条路径根据单位微服务处理能力的比值,得到满足时延需求的实例数量,计算公式如下:
;
其中代表指示函数,代表微服务是否在集合中,不存在为若0。若服务路径上有此微服务就计算,没有则为0。若有同种的微服务,则取最大的。符号表示对于用户请求r,在物理服务器节点v上,微服务的实例队列的平均响应时延。表示微服务的每个实例在单位容器上的处理速率。表示用户请求流的最大容忍时延。
在具体实现中,在开始部署微服务到具体的物理服务器上之前,首先要建立关于所有用户请求r的距离矩阵。是一个的斜对称矩阵,R表示所有用户服务请求的集合。其中是其中的一个元素,代表了用户请求和之间的关联程度。考虑用户请求的四种属性,分别是最大容忍时延,计算资源需求,请求到达率和总带宽需求。因此,在数学上可以由一维向量表示每个用户请求,表达式如下:
;
其中,表示用户请求r的最大容忍时延,表示用户请求r的请求到达率,表示用户请求r所需的微服务集合,表示用户请求r所需的微服务集合中的i个微服务的每个实例在单位容器上的处理速率。表示在单位请求到达率下,从微服务到微服务传输数据消耗的带宽资源。由的表达式可以得到的计算公式如下:
;
其中,表示在用户请求和之间的皮尔逊相关系数,其数值范围在[-1,1]之间,用来消除分量之间数量级不统一的影响,尽力保证平移不变性和尺度不变性。
比较模块7002,用于将所述第一用户请求与所述第二用户请求之间的消耗资源大小进行比较,确定消耗资源较多请求。
还需要说明的是,选择部署的服务器节点,然后选择最大关联程度(距离值最大)的两个用户请求,将两个用户请求中消耗资源更多的请求标记为,另一个标记为。
应理解的是,距离值最大表示两个请求的相关性越高,耦合性越高,把放在一起或者尽可能的放的近,可以有效的降低时延。
确定模块7003,用于在所述消耗资源较多请求对应的当前微服务的所有微服务实例不满足目标物理服务器节点的资源部署条件时,根据所述目标物理服务器节点确定时延最小物理服务器节点。
还需要说明的是,获取消耗资源较多请求对应的微服务调度图;对微服务调度图进行拓扑排序,获得微服务排序结果;判断消耗资源较多请求对应的所有微服务的所有微服务实例是否满足目标物理服务器节点的资源部署条件;在消耗资源较多请求对应的所有微服务的所有微服务实例满足目标物理服务器节点的资源部署条件时,则基于微服务排序结果将消耗资源较多请求对应的所有微服务的所有微服务实例部署至所述目标物理服务器节点;若不满足,则基于微服务排序结果根据所有微服务的所有微服务实例确定待处理微服务的所有微服务实例,将待处理微服务的所有微服务实例放置目标物理服务器节点,并根据所有微服务的所有微服务实例和待处理微服务的所有微服务实例确定剩余微服务的所有微服务实例;根据剩余微服务的所有微服务实例确定消耗资源较多请求对应的当前微服务的所有微服务实例;判断消耗资源较多请求对应的当前微服务的所有微服务实例是否满足目标物理服务器节点的资源部署条件;在消耗资源较多请求对应的当前微服务的所有微服务实例不满足目标物理服务器节点的资源部署条件时,根据目标物理服务器节点确定时延最小物理服务器节点。
还需要说明的是,资源部署条件可以理解为能够部署消耗资源较多请求对应的全部微服务或部分微服务的所有微服务实例或当前微服务的所有微服务实例。
还需要说明的是,资源部署条件可以理解为能够部署消耗资源较多请求对应的全部微服务的所有微服务实例或当前微服务的所有微服务实例。
对多个物理服务器节点的剩余资源容量进行降序排序,获得节点资源容量排序结果;从资源容量排序结果中选取资源容量最多的物理服务器节点,并将资源容量最多的物理服务器节点作为目标物理服务器节点。
基于微服务排序结果根据所有微服务的所有微服务实例确定待处理微服务的所有微服务实例可以理解为根据微服务排序结果依次选取能够放置目标物理服务器节点的微服务(单个或多个)的所有微服务实例(即待处理微服务的所有微服务实例)。
剩余微服务(单个或多个)的所有微服务实例可以理解为没有放置在目标物理服务器节点上剩余的微服务的所有微服务实例。
根据剩余微服务的所有微服务实例确定消耗资源较多请求对应的当前微服务的所有微服务实例可以理解为基于微服务排序结果从剩余微服务的所有微服务实例中选取的当前微服务的所有微服务实例。
部署模块7004,用于将所述当前微服务的所有微服务实例部署至所述时延最小物理服务器节点。
需要说明的是,时延最小物理服务器节点为有足够的计算资源并且没有其他微服务实例在上面部署的物理服务器节点。
进一步地,根据目标物理服务器节点确定时延最小物理服务器节点的处理方式为获取多个物理服务器节点之间对应的通信时延;根据通信时延生成通信时延传输矩阵;基于通信时延传输矩阵按照时延从小到大排序规则对多个物理服务器节点进行排序,获得节点时延传输结果;根据目标物理服务器节点从节点时延传输结果中选取时延最小物理服务器节点。
在具体实现中,如果选择的用户请求r需要遍历的所有微服务作为一个能够实例化在当前服务器节点上,那么按照顺序依次放置,并更新集合和,表示服务器节点的服务状态。同时将这个请求从集合R中移除。
如果当前服务器节点剩余的计算资源容量小于请求r需要的等效计算资源,那么将请求r拆分为独立的微服务分别放置。采用基于首部适应算法(next-fit)的部署方式,依次放置微服务。
如果微服务的实例不能完全部署在服务器节点v上,那么表明被选中的微服务需要放置在新的服务器节点即时延最小物理服务器节点上。
还应理解的是,需要考虑微服务节点之间的通信的数据量和服务器节点之间的传输时延,根据距离当前服务器节点的时延大小,对V进行排序得到集合,找到合适的物理服务器节点即时延最小物理服务器节点,需要有足够的计算资源并且没有其他微服务实例在上面部署。
在本实施例中,还可以理解为先选择距离矩阵中相距值最大的两个用户请求,然后比较消耗资源的多少,先处理消耗资源多的请求,将当前要处理的用户请求的所有微服务尝试放置在剩余计算资源最多的物理服务器中,如果超出物理服务器的剩余资源容量,则将剩余微服务放在距当前物理服务器最近,传输时延最短的物理服务器中。
还需要说明的是,引入用户请求距离矩阵的概念,按照用户请求距离的远近放置微服务,有效提高服务器节点的利用率。采用基于next fit的微服务放置算法,可以尽量把同一个请求的微服务放置在同一个物理服务器节点上,或者拆分微服务,放置在最近的物理服务器节点,对于同一用户请求,保证在时延容忍范围内实现局部最有,提高服务响应速率,降低部署成本。
所述部署模块7004,还用于遍历结束时,完成微服务实例部署。
还需要说明的是,需要以上述流程处理另一个用户请求,然后选出下一个距离值最大的用户请求对,以同样的方式处理,直到处理完所有的用户请求,完成所有微服务的放置工作。
在本实施例中,完整的技术方案可参考以下基于下次适应算法(next fit)的微服务放置算法流程表:
算法1-1:局部 Next Fit 微服务放置算法---从每条微服务链的角度考虑;
输入:所有用户服务请求的集合:;
每个物理服务器节点的剩余计算资源容量的集合;
输出:部署有微服务实例的服务器节点:;
服务器节点的服务状态;
1.对所有用户请求的微服务调度图进行拓扑排序;
2.计算不同用户请求之间的距离矩阵,评估请求之间的相似程度和相关性,得到矩阵;
3.初始化,并进行降序排序;
4. whiledo;
5.初始化为剩余计算资源最多的服务器节点;
6.从矩阵中选择值最大的元素,获取用户请求;
7.分别计算需要消耗的等效计算资源,并进行比较,其中用表示消耗更多计算资源的用户请求,表示需要较少资源的用户请求;
8.For k in 2 do;
9.if then;
10.将中的所有微服务实例均在节点上部署;
11.更新和,将节点加入中;
12.将部署完成的请求从集合中移除;
13.else ifthen (Next Fit部署);
14.forindo;
15.ifthen;
16.;
17.else ifthen;
18.根据通信时延传输矩阵,根据时延从小到大排序得到集合,找到首次出现的,满足且没有部署微服务;
19.更新,并且;
20.end if;
21.end for;
22.更新和,将节点加入中;
23.将部署完成的请求从集合中移除;
24.end if;
25.end for;
26.计算对应的,矩阵中关于的行列的值标为-1;
27.end while;
28.return ,,。
在具体实现中,参考上述基于下次适应算法(next fit)的微服务放置算法流程表:
1)选择首次部署微服务实例的服务器节点。从距离矩阵中挑选出有最大请求距离的一对用户请求。
2)对这对用户请求所消耗的计算资源进行比较,将其中消耗更多计算资源的请求r优先选择放置,并标记为,另一个标记为。
3)如果选择的用户请求r需要遍历的所有微服务作为一个能够实例化在当前服务器节点上,那么我们按照顺序依次放置,并更新集合和,表示服务器节点的服务状态。同时将这个请求从集合R中移除。
4)如果当前服务器节点剩余的计算资源容量小于请求r需要的等效计算资源,那么我们将请求r拆分为独立的微服务分别放置。
5)采用基于首部适应算法(next-fit)的部署方式,依次放置微服务。如果微服务的实例不能完全部署在服务器节点v上,那么表明被选中的微服务需要放置在新的服务器节点上。
6)此时需要考虑微服务节点之间的通信的数据量和服务器节点之间的传输时延,根据距离当前服务器节点的时延大小,对V进行排序得到集合,找到合适的物理服务器,需要有足够的计算资源并且没有其他微服务实例在上面部署。
7)当选择的一对用户请求放置完成后,计算转移概率,表示当服务请求的微服务的节点上处理的概率。然后将距离矩阵中关于的行列的值标为-1。
8)重复以上过程直到为空集,如果在循环结束后,中所有元素的值为-1,那么意味着所有的请求均被部署完成,且微服务在物理服务器上的处理概率也能被确定。
9)得到,,,其中表示部署有微服务实例的服务器节点集合,表示服务器节点的服务状态,二值决策变量,表示物理服务器节点上是否存在微服务的实例,决策变量表示微服务在物理服务器上占用的容器数量,二值决策变量表示在节点上是否处理请求所要求的中包含的微服务。
在本实施例中,首先构建多个用户请求对应的距离矩阵,遍历距离矩阵中的多个关联程度,并从多个关联程度中选取最大关联程度对应的第一用户请求和第二用户请求,然后将第一用户请求与第二用户请求之间的消耗资源大小进行比较,确定消耗资源较多请求,之后在消耗资源较多请求对应的当前微服务的所有微服务实例不满足目标物理服务器节点的资源部署条件时,根据目标物理服务器节点确定时延最小物理服务器节点,将当前微服务的所有微服务实例部署至时延最小物理服务器节点,最后遍历结束时,完成微服务实例部署。相较于现有技术中微服务部署策略对其传输时延、服务性能和部署成本,都还有很大的提升空间,而本实施例通过改进微服务的部署方式,进而降低了微服务整体的响应时延,提高服务器利用率,降低部署成本。
本发明微服务实例部署系统的其他实施例或具体实现方式可参照上述各方法实施例,此处不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器/随机存取存储器、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (8)
1.一种微服务实例部署方法,其特征在于,所述微服务实例部署方法包括以下步骤:
构建多个用户请求对应的距离矩阵,遍历所述距离矩阵中的多个关联程度,并从多个关联程度中选取最大关联程度对应的第一用户请求和第二用户请求;
将所述第一用户请求与所述第二用户请求之间的消耗资源大小进行比较,确定消耗资源较多请求;
在所述消耗资源较多请求对应的当前微服务的所有微服务实例不满足目标物理服务器节点的资源部署条件时,根据所述目标物理服务器节点确定时延最小物理服务器节点;
将所述当前微服务的所有微服务实例部署至所述时延最小物理服务器节点;
若所述消耗资源较多请求为第一用户请求,则判断所述第二用户请求对应的所有微服务是否能全部部署至所述时延最小物理服务器节点;
若是,则将所述第二用户请求对应的所有微服务的所有微服务实例全部部署至所述时延最小物理服务器节点;
遍历结束时,完成微服务实例部署。
2.如权利要求1所述的方法,其特征在于,所述将所述第一用户请求与所述第二用户请求之间的消耗资源大小进行比较,确定消耗资源较多请求的步骤之后,还包括:
对多个物理服务器节点的剩余资源容量进行降序排序,获得节点资源容量排序结果;
从资源容量排序结果中选取资源容量最多的物理服务器节点,并将所述资源容量最多的物理服务器节点作为目标物理服务器节点。
3.如权利要求2所述的方法,其特征在于,所述在所述消耗资源较多请求对应的当前微服务的所有微服务实例不满足目标物理服务器节点的资源部署条件时,根据所述目标物理服务器节点确定时延最小物理服务器节点的步骤之前,还包括:
获取所述消耗资源较多请求对应的微服务调度图;
对所述微服务调度图进行拓扑排序,获得微服务排序结果;
判断所述消耗资源较多请求对应的所有微服务的所有微服务实例是否满足目标物理服务器节点的资源部署条件;
若不满足,则基于所述微服务排序结果根据所述所有微服务的所有微服务实例确定待处理微服务的所有微服务实例,将所述待处理微服务的所有微服务实例放置所述目标物理服务器节点,并根据所述所有微服务的所有微服务实例和所述待处理微服务的所有微服务实例确定剩余微服务的所有微服务实例;
根据所述剩余微服务的所有微服务实例确定所述消耗资源较多请求对应的当前微服务的所有微服务实例;
判断所述消耗资源较多请求对应的当前微服务的所有微服务实例是否满足所述目标物理服务器节点的资源部署条件。
4.如权利要求3所述的方法,其特征在于,所述判断所述消耗资源较多请求对应的所有微服务的所有微服务实例是否满足目标物理服务器节点的资源部署条件的步骤之后,还包括:
在所述消耗资源较多请求对应的所有微服务的所有微服务实例满足所述目标物理服务器节点的资源部署条件时,则基于所述微服务排序结果将所述消耗资源较多请求对应的所有微服务的所有微服务实例部署至所述目标物理服务器节点。
5.如权利要求1-4任一项所述的方法,其特征在于,所述根据所述目标物理服务器节点确定时延最小物理服务器节点的步骤,包括:
获取多个物理服务器节点之间对应的通信时延;
根据所述通信时延生成通信时延传输矩阵;
基于所述通信时延传输矩阵按照时延从小到大排序规则对多个物理服务器节点进行排序,获得节点时延传输结果;
根据所述目标物理服务器节点从所述节点时延传输结果中选取时延最小物理服务器节点。
6.一种微服务实例部署系统,其特征在于,所述微服务实例部署系统包括:
选取模块,用于构建多个用户请求对应的距离矩阵,遍历所述距离矩阵中的多个关联程度,并从多个关联程度中选取最大关联程度对应的第一用户请求和第二用户请求;
比较模块,用于将所述第一用户请求与所述第二用户请求之间的消耗资源大小进行比较,确定消耗资源较多请求;
确定模块,用于在所述消耗资源较多请求对应的当前微服务的所有微服务实例不满足目标物理服务器节点的资源部署条件时,根据所述目标物理服务器节点确定时延最小物理服务器节点;
部署模块,用于将所述当前微服务的所有微服务实例部署至所述时延最小物理服务器节点;
所述部署模块,还用于若所述消耗资源较多请求为第一用户请求,则判断所述第二用户请求对应的所有微服务是否能全部部署至所述时延最小物理服务器节点;
所述部署模块,还用于若是,则将所述第二用户请求对应的所有微服务的所有微服务实例全部部署至所述时延最小物理服务器节点;
所述部署模块,还用于遍历结束时,完成微服务实例部署。
7.一种微服务实例部署设备,其特征在于,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的微服务实例部署程序,所述微服务实例部署程序配置为实现如权利要求1至5中任一项所述的微服务实例部署方法的步骤。
8.一种存储介质,其特征在于,所述存储介质上存储有微服务实例部署程序,所述微服务实例部署程序被处理器执行时实现如权利要求1至5任一项所述的微服务实例部署方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311658003.XA CN117349036B (zh) | 2023-12-06 | 2023-12-06 | 微服务实例部署方法、系统、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311658003.XA CN117349036B (zh) | 2023-12-06 | 2023-12-06 | 微服务实例部署方法、系统、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117349036A CN117349036A (zh) | 2024-01-05 |
CN117349036B true CN117349036B (zh) | 2024-04-05 |
Family
ID=89367203
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311658003.XA Active CN117349036B (zh) | 2023-12-06 | 2023-12-06 | 微服务实例部署方法、系统、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117349036B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111736983A (zh) * | 2020-05-25 | 2020-10-02 | 南京大学 | 一种面向任务和资源感知的微服务部署方法 |
CN112068943A (zh) * | 2020-09-08 | 2020-12-11 | 山东省计算中心(国家超级计算济南中心) | 一种基于复杂异构环境的微服务调度方法及其实现系统 |
CN112256429A (zh) * | 2020-10-22 | 2021-01-22 | 莫毓昌 | 基于计算图和工业云边缘系统的数据请求处理方法 |
CN112783649A (zh) * | 2021-01-19 | 2021-05-11 | 苏州博纳讯动软件有限公司 | 一种面向云计算的交互感知的容器化微服务资源调度方法 |
WO2022028157A1 (zh) * | 2020-08-03 | 2022-02-10 | 同济大学 | 云环境下微服务系统的弹性伸缩方法、系统、介质及设备 |
WO2023061584A1 (en) * | 2021-10-13 | 2023-04-20 | Telefonaktiebolaget Lm Ericsson (Publ) | Numerology aware cloud resource scheduling |
CN117041053A (zh) * | 2023-07-14 | 2023-11-10 | 新华三技术有限公司 | 业务部署方法、装置、设备及存储介质 |
CN117041330A (zh) * | 2023-10-10 | 2023-11-10 | 三峡高科信息技术有限责任公司 | 一种基于强化学习的边缘微服务细粒度部署方法及系统 |
CN117097806A (zh) * | 2023-08-28 | 2023-11-21 | 湖北省楚天云有限公司 | 一种微服务调用图部署和请求路由联合优化方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11805076B2 (en) * | 2020-08-21 | 2023-10-31 | Kyndryl, Inc. | Microservice placement in hybrid multi-cloud using graph matching |
-
2023
- 2023-12-06 CN CN202311658003.XA patent/CN117349036B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111736983A (zh) * | 2020-05-25 | 2020-10-02 | 南京大学 | 一种面向任务和资源感知的微服务部署方法 |
WO2022028157A1 (zh) * | 2020-08-03 | 2022-02-10 | 同济大学 | 云环境下微服务系统的弹性伸缩方法、系统、介质及设备 |
CN112068943A (zh) * | 2020-09-08 | 2020-12-11 | 山东省计算中心(国家超级计算济南中心) | 一种基于复杂异构环境的微服务调度方法及其实现系统 |
CN112256429A (zh) * | 2020-10-22 | 2021-01-22 | 莫毓昌 | 基于计算图和工业云边缘系统的数据请求处理方法 |
CN112783649A (zh) * | 2021-01-19 | 2021-05-11 | 苏州博纳讯动软件有限公司 | 一种面向云计算的交互感知的容器化微服务资源调度方法 |
WO2023061584A1 (en) * | 2021-10-13 | 2023-04-20 | Telefonaktiebolaget Lm Ericsson (Publ) | Numerology aware cloud resource scheduling |
CN117041053A (zh) * | 2023-07-14 | 2023-11-10 | 新华三技术有限公司 | 业务部署方法、装置、设备及存储介质 |
CN117097806A (zh) * | 2023-08-28 | 2023-11-21 | 湖北省楚天云有限公司 | 一种微服务调用图部署和请求路由联合优化方法及系统 |
CN117041330A (zh) * | 2023-10-10 | 2023-11-10 | 三峡高科信息技术有限责任公司 | 一种基于强化学习的边缘微服务细粒度部署方法及系统 |
Non-Patent Citations (2)
Title |
---|
Joint Deployment and Request Routing for Microservice Call Graphs in Data Centers;Yi Hu , HaoWang;《IEEE》;全文 * |
主动式微服务细粒度弹性缩放算法研究;彭凯,马芳玲,徐博,郭佳璐,胡梦兰;《计算机工程与应用》;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN117349036A (zh) | 2024-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7389177B2 (ja) | 連合学習方法、装置、機器及び記憶媒体 | |
CN114338504B (zh) | 一种基于网络边缘系统的微服务部署和路由方法 | |
CN108243044B (zh) | 业务部署的方法与装置 | |
CN109033001B (zh) | 用于分配gpu的方法和装置 | |
Huang et al. | DeePar: A hybrid device-edge-cloud execution framework for mobile deep learning applications | |
CN112764936B (zh) | 基于深度强化学习的边缘计算服务器信息处理方法及装置 | |
CN112363813A (zh) | 资源调度方法、装置、电子设备和计算机可读介质 | |
CN105376111B (zh) | 资源分配方法和装置 | |
CN111538570B (zh) | 一种面向节能和QoS保障的VNF部署方法及装置 | |
CN108667657B (zh) | 一种面向sdn的基于局部特征信息的虚拟网络映射方法 | |
CN109947565A (zh) | 用于分配计算任务的方法和装置 | |
CN113835899B (zh) | 针对分布式图学习的数据融合方法及装置 | |
CN108304256B (zh) | 一种边缘计算中低开销的任务调度方法及装置 | |
Ullah et al. | Task classification and scheduling based on K-means clustering for edge computing | |
CN109189494B (zh) | 配置灰度发布方法、装置、设备及计算机可读存储介质 | |
CN110740194A (zh) | 基于云边融合的微服务组合方法及应用 | |
CN116233262B (zh) | 基于边缘网络架构的微服务部署与请求路由方法及系统 | |
CN112667400A (zh) | 边缘自治中心管控的边云资源调度方法、装置及系统 | |
CN111124708A (zh) | 面向微服务的批推理方法、服务器和计算机可读存储介质 | |
CN117349036B (zh) | 微服务实例部署方法、系统、设备及存储介质 | |
CN114301907B (zh) | 云计算网络中的业务处理方法、系统、装置及电子设备 | |
Berten et al. | Brokering strategies in computational grids using stochastic prediction models | |
CN115509715A (zh) | 一种分布式任务调度方法、装置和电子设备 | |
Hyytiä et al. | Dispatching fixed-sized jobs with multiple deadlines to parallel heterogeneous servers | |
CN111694670B (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 |