一种微服务架构弹性升级方法技术

技术编号:23431604 阅读:23 留言:0更新日期:2020-02-25 13:04
本发明专利技术公开的微服务架构弹性升级方法,涉及计算机技术领域,当微服务实例的负载较高或较低时,不需要人工参与便能够动态增加或减少微服务实例的数量,从而实现降低单个微服务实例负载的目的且不会出现升级中断的情况,提高了系统的稳定性及用户的体验,节省了系统资源。

A flexible upgrade method of microservice architecture

【技术实现步骤摘要】
一种微服务架构弹性升级方法
本专利技术涉及计算机
,具体涉及一种微服务架构弹性升级方法。
技术介绍
随着信息技术的不断发展,互联网在生活和工作方面成为不可或缺的工具。随着互联网服务越来越多,如何对各些复杂的网络服务进行有效合理地开发、部署是目前存在的问题。微服务架构是目前应用比较多并且广泛的软件服务架构。微服务良好的接口规范,方便的服务治理方法提高了软件开发效率及使用效率。但基于微服务架构的软件系统存在如下缺陷:(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为系统吞吐量平均目标值。可选地,根据实例个数,对微服务架构进行升级包括:将实例个数与当前实例个数的差值作为微服务架构需要增加/减少的实例个本文档来自技高网...

【技术保护点】
1.一种微服务架构弹性升级方法,其特征在于,包括:/n实时获取微服务架构系统资源的运行状态数据,生成运行状态数据集;/n根据所述运行状态数据集,判断所述微服务架构是否需要升级;/n若是,则根据实例个数计算规则,分别计算各个运行状态数据下,微服务架构期望的实例个数,生成实例个数集;/n从所述实例个数集中选择数值最大的实例个数作为微服务架构当前期望的实例个数;/n根据所述实例个数,对所述微服务架构进行升级。/n

【技术特征摘要】
1.一种微服务架构弹性升级方法,其特征在于,包括:
实时获取微服务架构系统资源的运行状态数据,生成运行状态数据集;
根据所述运行状态数据集,判断所述微服务架构是否需要升级;
若是,则根据实例个数计算规则,分别计算各个运行状态数据下,微服务架构期望的实例个数,生成实例个数集;
从所述实例个数集中选择数值最大的实例个数作为微服务架构当前期望的实例个数;
根据所述实例个数,对所述微服务架构进行升级。


2.根据权利要求1所述的微服务架构弹性升级方法,其特征在于,根据所述运行状态数据集,判断所述微服务架构是否需要升级包括:
分别判断各个运行状态数据的数值是否大于其设定的第一阈值,若是,则确定所述微服务架构需要增加微服务实例。


3.根据权利要求1或2所述的微服务架构弹性升级方法,其特征在于,根据所述运行...

【专利技术属性】
技术研发人员:孔祥文郭涛
申请(专利权)人:神州数码融信软件有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1