CN110837386A - 一种微服务架构弹性升级方法 - Google Patents
一种微服务架构弹性升级方法 Download PDFInfo
- Publication number
- CN110837386A CN110837386A CN201911085023.6A CN201911085023A CN110837386A CN 110837386 A CN110837386 A CN 110837386A CN 201911085023 A CN201911085023 A CN 201911085023A CN 110837386 A CN110837386 A CN 110837386A
- Authority
- CN
- China
- Prior art keywords
- micro
- service architecture
- instances
- service
- upgrading
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 32
- 238000004364 calculation method Methods 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 6
- 230000003247 decreasing effect Effects 0.000 claims description 3
- 230000008569 process Effects 0.000 description 11
- 238000005516 engineering process Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000008602 contraction Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开的微服务架构弹性升级方法,涉及计算机技术领域,当微服务实例的负载较高或较低时,不需要人工参与便能够动态增加或减少微服务实例的数量,从而实现降低单个微服务实例负载的目的且不会出现升级中断的情况,提高了系统的稳定性及用户的体验,节省了系统资源。
Description
技术领域
本发明涉及计算机技术领域,具体涉及一种微服务架构弹性升级方法。
背景技术
随着信息技术的不断发展,互联网在生活和工作方面成为不可或缺的工具。随着互联网服务越来越多,如何对各些复杂的网络服务进行有效合理地开发、部署是目前存在的问题。
微服务架构是目前应用比较多并且广泛的软件服务架构。微服务良好的接口规范,方便的服务治理方法提高了软件开发效率及使用效率。但基于微服务架构的软件系统存在如下缺陷:
(1)无法动态实现服务扩容或缩容,需要人工参与,增大了微服务出错的概率,导致微服务架构不稳定;
(2)升级功能有限,导致升级时微服务会出现中断,影响用户体验;
(3)无法确定各个微服务到底需要运行多少实例,导致有些微服务负载过高,影响最大用户并发请求数,有些微服务负载很低时仍然占用系统资源,硬件资源成本较高。
发明内容
为解决现有技术的不足,本发明实施例提供了一种微服务架构弹性升级方法,该方法包括以下步骤:
实时获取微服务架构系统资源的运行状态数据,生成运行状态数据集;
根据所述运行状态数据集,判断所述微服务架构是否需要升级;
若是,则根据实例个数计算规则,分别计算各个运行状态数据下,微服务架构期望的实例个数,生成实例个数集;
从所述实例个数集中选择数值最大的实例个数作为微服务架构当前期望的实例个数;
根据所述实例个数,对所述微服务架构进行升级。
优选地,根据所述运行状态数据集,判断所述微服务架构是否需要升级包括:
分别判断各个运行状态数据的数值是否大于其设定的第一阈值,若是,则确定所述微服务架构需要增加微服务实例。
优选地,根据所述运行状态数据集,判断所述微服务架构是否需要升级还包括:
分别判断各个运行状态数据的数值是否小于其设定的第二阈值,若是,则确定所述微服务架构需要减少微服务实例。
优选地,根据所述实例个数,对所述微服务架构进行升级包括:
将所述实例个数与当前实例个数的差值作为所述微服务架构需要增加/减少的实例个数,对所述微服务架构进行升级。
优选地,所述运行状态数据包括CPU平均利用率、内存平均利用率、文件系统平均利用率、网络平均利用率及系统吞吐量平均值。
本发明实施例提供的微服务架构弹性升级方法,具有以下有益效果:
(1)服务零失败
微服务升级过程不会出现任何服务请求失败,所有用户请求都能够及时得到响应。
(2)服务零中断
微服务升级过程不会出现任何服务请求中断,服务不需要有专门对升级维护时间或是有任何的宕机时间。
(3)零侵入
所有环节对开发者零侵入,开发者无需关心微服务微服务升级实现细节,无需在代码开发中引入任何和这些功能相关的代码逻辑。
(4)实时性高
所有环节均考虑到实时性,几秒内在微服务管理模块页面看到该服务的CPU状态、内存状态、文件系统状态、网络状态及TPS数量等信息。
(5)高并发
所有环节考虑实际应用中可能产生的性能瓶颈,采取时许数据库、微服务、容器化等技术对大并发产生的大量数据进行平滑弹性扩容或缩容,实现十万级并发规模的TPS业务性能支持。
具体实施方式
以下结合具体实施例对本发明作具体的介绍。
本发明提供的实施例提供的微服务架构弹性升级方法,包括以下步骤:
S101,实时获取微服务架构系统资源的运行状态数据,生成运行状态数据集。
作为一个具体的实施例,系统资源包括CPU、内存、文件系统、网络及系统吞吐量。
S102,根据运行状态数据集,判断微服务架构是否需要升级。
S103,若是,则根据实例个数计算规则,分别计算各个运行状态数据下,微服务架构期望的实例个数,生成实例个数集。
S104,从实例个数集中选择数值最大的实例个数作为微服务架构当前期望的实例个数。
作为一个具体的实施例,当CPU当前需要的实例个数为15个、内存当前需要的实例个数为10个、文件系统当前需要的实例个数为5个,CPU当前需要的实例个数为8个,CPU当前需要的实例个数为12个,则确定CPU当前需要的实例个数15为微服务架构当前期望的实例个数。
特别说明,由于系统限制,实际运行的微服务实例个数不能超过实例个数的上限值,该上限值默认为10;不能小于实例个数的下限值,该下限值默认为1。
S105,根据实例个数,对微服务架构进行升级。
可选地,根据运行状态数据集,判断微服务架构是否需要升级包括:
分别判断各个运行状态数据的数值是否大于其设定的第一阈值,若是,则确定微服务架构需要增加微服务实例。
可选地,根据所述运行状态数据集,判断所述微服务架构是否需要升级还包括:
分别判断各个运行状态数据的数值是否小于其设定的第二阈值,若是,则确定所述微服务架构需要减少微服务实例。
作为一个具体的实施例,当CPU平均利用率高于最大值70%或低于最小值20%时,就确定该微服务架构实例的数量需要调整,调整后的CPU平均利用率目标值为50%。其中,CPU期望的微服务实例个数为的计算公式为:C1=M1/N1,其中,C1为CPU期望的微服务实例个数,M1为各个微服务实例当前CPU利用率的和,N1为CPU平均利用率目标值。
作为一个具体的实施例,当内存平均利用率高于最大值70%或低于最小值30%时,就确定该微服务架构实例的数量需要调整,调整后的内存平均利用率目标值为50%。其中,内存期望的微服务实例个数为的计算公式为:C2=M2/N2,其中,C2为内存期望的微服务实例个数,M2为各个微服务实例当前内存利用率的和,N2为内存平均利用率目标值。
作为一个具体的实施例,当文件系统平均利用率高于最大值80%或低于最小值20%时,就确定该微服务架构实例的数量需要调整,调整后的文件系统平均利用率目标值为50%。其中,文件系统期望的微服务实例个数为的计算公式为:C3=M3/N3,其中,C3为内存期望的微服务实例个数,M3为各个微服务实例当前内存利用率的和,N3为内存平均利用率目标值。
作为一个具体的实施例,当网络平均利用率高于最大值60%或低于最小值5%时,就确定该微服务架构实例的数量需要调整,调整后的网络平均利用率目标值为50%。其中,文件系统期望的微服务实例个数为的计算公式为:C4=M4/N4,其中,C4为网络期望的微服务实例个数,M4为各个微服务实例当前网络利用率的和,N4为网络平均利用率目标值。
作为一个具体的实施例,当系统吞吐量的平均值高于1000tps或低于最小值200tps时,就确定该微服务架构实例的数量需要调整,调整后的系统吞吐量的平均目标值为600tps。其中,文件系统期望的微服务实例个数为的计算公式为:C5=M5/N5,其中,C5为系统吞吐量期望的微服务实例个数,M5为各个微服务实例当前系统吞吐量的和,N4为系统吞吐量平均目标值。
可选地,根据实例个数,对微服务架构进行升级包括:
将实例个数与当前实例个数的差值作为微服务架构需要增加/减少的实例个数,对所述微服务架构进行升级。
作为一个具体的实施例,当微服务架构当前需要的实例个数为15个,当前实例个数为8个时,则对该微服务架构做增加7个实例的操作,对对该微服务架构进行扩容。
作为一个具体的实施例,当微服务架构当前需要的实例个数为15个,当前实例个数为20个时,则对该微服务架构做减少5个实例的操作,对对该微服务架构进行缩容。
可选地,运行状态数据包括CPU平均利用率、内存平均利用率、文件系统平均利用率、网络平均利用率及系统吞吐量平均值。
其中,微服务架构主要包括运行模块、管理模块、监控模块及镜像仓库,其中,运行模块负责从镜像仓库中拉提服务镜像,将所有微服务以容器化的方式运行,接收微服务扩容指令、缩容指令,接收指令后,根据指令中的参数重新调整微服务运行的实例数量,调整过程中不对正在运行的服务造成影响。
在实际升级过程中,只需一键点击即可实现微服务平滑滚动升级,所有正在运行的用户请求不会出现中断,用户请求会平缓的向新版本服务切换,全程无需人工干预,而且整个升级过程对系统性能无明显影响。
该系统的微服务扩缩容和微服务升级都对微服务业务开发零侵入,微服务业务开发者不需要关心服务扩缩容和服务升级,所有环节不需要为这些功能增加新的代码或是增加新的配置参数。对软件开发者友好。
本发明实施例提供的微服务架构弹性升级方法,当微服务实例的负载较高或较低时,不需要人工参与便能够动态增加或减少微服务实例的数量,从而实现降低单个微服务实例负载的目的且不会出现升级中断的情况,提高了系统的稳定性及用户的体验,节省了系统资源。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
可以理解的是,上述方法及装置中的相关特征可以相互参考。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
此外,存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (6)
1.一种微服务架构弹性升级方法,其特征在于,包括:
实时获取微服务架构系统资源的运行状态数据,生成运行状态数据集;
根据所述运行状态数据集,判断所述微服务架构是否需要升级;
若是,则根据实例个数计算规则,分别计算各个运行状态数据下,微服务架构期望的实例个数,生成实例个数集;
从所述实例个数集中选择数值最大的实例个数作为微服务架构当前期望的实例个数;
根据所述实例个数,对所述微服务架构进行升级。
2.根据权利要求1所述的微服务架构弹性升级方法,其特征在于,根据所述运行状态数据集,判断所述微服务架构是否需要升级包括:
分别判断各个运行状态数据的数值是否大于其设定的第一阈值,若是,则确定所述微服务架构需要增加微服务实例。
3.根据权利要求1或2所述的微服务架构弹性升级方法,其特征在于,根据所述运行状态数据集,判断所述微服务架构是否需要升级还包括:
分别判断各个运行状态数据的数值是否小于其设定的第二阈值,若是,则确定所述微服务架构需要减少微服务实例。
4.根据权利要求1所述的微服务架构弹性升级方法,其特征在于,根据所述实例个数,对所述微服务架构进行升级包括:
将所述实例个数与当前实例个数的差值作为所述微服务架构需要增加/减少的实例个数,对所述微服务架构进行升级。
5.根据权利要求1所述的微服务架构弹性升级方法,其特征在于,所述运行状态数据包括CPU平均利用率、内存平均利用率、文件系统平均利用率、网络平均利用率及系统吞吐量平均值。
6.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-4所述的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911085023.6A CN110837386A (zh) | 2019-11-08 | 2019-11-08 | 一种微服务架构弹性升级方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911085023.6A CN110837386A (zh) | 2019-11-08 | 2019-11-08 | 一种微服务架构弹性升级方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110837386A true CN110837386A (zh) | 2020-02-25 |
Family
ID=69574671
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911085023.6A Pending CN110837386A (zh) | 2019-11-08 | 2019-11-08 | 一种微服务架构弹性升级方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110837386A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112491581A (zh) * | 2020-10-30 | 2021-03-12 | 中国人寿保险股份有限公司 | 一种服务性能监控管理方法及装置 |
CN117851269A (zh) * | 2024-03-07 | 2024-04-09 | 长江龙新媒体有限公司 | 一种基于云端自动化测试环境管理方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106227611A (zh) * | 2016-07-26 | 2016-12-14 | 北京北森云计算股份有限公司 | 一种多语言云编译的动态微服务调用方法及装置 |
CN108366082A (zh) * | 2017-01-26 | 2018-08-03 | 华为技术有限公司 | 扩容方法及扩容装置 |
CN109522115A (zh) * | 2018-10-11 | 2019-03-26 | 平安科技(深圳)有限公司 | 资源配置方法、电子设备及存储介质 |
CN109783073A (zh) * | 2017-11-13 | 2019-05-21 | 中兴通讯股份有限公司 | 应用容器的弹缩方法及装置、微服务、存储介质 |
-
2019
- 2019-11-08 CN CN201911085023.6A patent/CN110837386A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106227611A (zh) * | 2016-07-26 | 2016-12-14 | 北京北森云计算股份有限公司 | 一种多语言云编译的动态微服务调用方法及装置 |
CN108366082A (zh) * | 2017-01-26 | 2018-08-03 | 华为技术有限公司 | 扩容方法及扩容装置 |
CN109783073A (zh) * | 2017-11-13 | 2019-05-21 | 中兴通讯股份有限公司 | 应用容器的弹缩方法及装置、微服务、存储介质 |
CN109522115A (zh) * | 2018-10-11 | 2019-03-26 | 平安科技(深圳)有限公司 | 资源配置方法、电子设备及存储介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112491581A (zh) * | 2020-10-30 | 2021-03-12 | 中国人寿保险股份有限公司 | 一种服务性能监控管理方法及装置 |
CN117851269A (zh) * | 2024-03-07 | 2024-04-09 | 长江龙新媒体有限公司 | 一种基于云端自动化测试环境管理方法及系统 |
CN117851269B (zh) * | 2024-03-07 | 2024-05-28 | 长江龙新媒体有限公司 | 一种基于云端自动化测试环境管理方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11416286B2 (en) | Computing on transient resources | |
US9367803B2 (en) | Predictive analytics for information technology systems | |
US9348709B2 (en) | Managing nodes in a distributed computing environment | |
US20190229992A1 (en) | System and Methods for Auto-Tuning Big Data Workloads on Cloud Platforms | |
CN109614227B (zh) | 任务资源调配方法、装置、电子设备及计算机可读介质 | |
US10356150B1 (en) | Automated repartitioning of streaming data | |
CN107016016B (zh) | 一种数据处理的方法及装置 | |
US10268741B2 (en) | Multi-nodal compression techniques for an in-memory database | |
CN113010260A (zh) | 容器数量弹性伸缩方法以及容器数量弹性伸缩方法系统 | |
JP2016042284A (ja) | 並列計算機システム、管理装置、並列計算機システムの制御方法及び管理装置の制御プログラム | |
CN110837386A (zh) | 一种微服务架构弹性升级方法 | |
CN111221653B (zh) | 一种服务处理方法、装置及计算机可读存储介质 | |
CN115827028A (zh) | 系统的升级方法、装置、存储介质以及电子设备 | |
CN110209693A (zh) | 高并发数据查询方法、装置、系统、设备及可读存储介质 | |
CN115994029A (zh) | 容器资源调度方法及装置 | |
CN106888244B (zh) | 一种业务处理方法及装置 | |
CN115328608A (zh) | 一种Kubernetes容器垂直伸缩调节方法和装置 | |
CN114443262A (zh) | 计算资源管理方法、装置、设备及系统 | |
CN113742646A (zh) | 将单语言复合函数编译为单个实体 | |
CN112540842A (zh) | 动态调整系统资源的方法及装置 | |
CN111158940A (zh) | 物联网领域的不同设备的对接和动态加载的方法和装置 | |
US11582327B1 (en) | Dynamically coordinated service maintenance operations and adaptive service polling for microservices | |
US20240012667A1 (en) | Resource prediction for microservices | |
CN113051025B (zh) | 容器集群资源管理方法、装置与设备 | |
CN114706628B (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200225 |
|
RJ01 | Rejection of invention patent application after publication |