一种基于微服务负载的动态弹性伸缩方法技术

技术编号:39743182 阅读:8 留言:0更新日期:2023-12-17 23:43
本发明专利技术涉及一种基于微服务负载的动态弹性伸缩方法,包括以下步骤:

【技术实现步骤摘要】
一种基于微服务负载的动态弹性伸缩方法


[0001]本专利技术涉及微服务负载
,具体为一种基于微服务负载的动态弹性伸缩方法


技术介绍

[0002]近些年来,
IT
系统发展很快,随着需求增加

各项新的软件技术产生等使得软件部署环境的运维管理越来越复杂,能够提供基于业务负载的动态弹性伸缩能力成为了迫切的需求,由于微服务架构和容器技术的兴起,大部分业务应用都采用微服务架构并且使用容器技术,所以最小的伸缩力度是容器,负载的弹性伸缩,在应用级别伸缩层面一般可以指定应用的实例以及每个实例使用的资源进行伸缩调整,提供垂直

水平伸缩的方式

[0003]随着信息时代和大数据时代的到来,数据呈爆发式增长,灵活高效的数据处理方法变得越来越重要,数据处理由多个步骤组成,如数据采集

重新格式化数据

运行分析等,这些步骤形成一条工作流,工作流通常需要对海量数据进行查找

移动

处理

分析及可视化等操作,但其部署和执行对计算资源和存储空间的要求较高

[0004]微服务架构中云数据中心一直存在管理困难

资源利用率不足

高能耗等问题,加上容器本身管理的复杂性,使得在云平台中基于容器执行工作流需要一种高效的工作流编排调度系统来有效地协调和管理数据

任务及资源;工作流在实际运行中往往会面临突发负载,需要动态调整资源,云计算结合容器技术虽然让资源扩缩变得更加方便,可以按需使用与扩缩,但依然需要人工手动操作,智能和自动化程度较低


技术实现思路

[0005]针对现有技术的不足,本专利技术提供了一种基于微服务负载的动态弹性伸缩方法,具备减少任务等待时间等优点,解决了管理困难

资源利用率不足

高能耗的问题

[0006]为实现上述目的,本专利技术提供如下技术方案:一种基于微服务负载的动态弹性伸缩方法,包括以下步骤:
[0007]S1
用户通过图形界面定义工作流,系统根据用户输入自动生成工作流描述文件并提交给流程解析器;
[0008]S2
流程解析器对工作流描述进行解析,生成相应的容器启动命令交给容器调度器;
[0009]S3
容器调度器根据主机资源使用情况选取合适的主机运行容器;
[0010]S4
弹性伸缩决策器定时计算每个服务的资源使用率,并与规定的指标比较;
[0011]S5
如果符合伸缩条件,则弹性伸缩决策模块根据服务的伸缩策略执行服务伸缩操作

[0012]进一步,所述弹性伸缩过程中当一个流程有多个容器实例时,采用负载均衡机制将请求均衡分配到每个容器,每个流程通过
TCP
协议将处理结果直接发送到下一个流程

[0013]进一步,所述弹性伸缩过程中的任务处理程序在接收数据前先判断是否需停止,
使程序通过停止信号退出时没有任务处于执行状态,接收数据后发送确认信号使发送方确认数据被接收,同样发送数据后等待确认的信号,确保数据已发送给下一个流程

[0014]进一步,所述弹性伸缩过程中基于
NFS
实现跨主机容器之间的数据交互,基于
redis
构建任务队列实现多容器并发执行,每个流程创建一个任务队列,任务队列中存放待处理数据的地址,每个处理程序从任务队列中取出数据,然后判断是否为停止信号

[0015]进一步,所述弹性伸缩包括横向伸缩和纵向伸缩,所述横向伸缩也叫水平扩展,即用更多的节点来支撑更大量的请求,所述纵向伸缩也叫垂直扩展,即扩展一个点的能力来支撑更大量的请求

[0016]进一步,所述横向伸缩的过程中弹性伸缩决策器首先获取待扩容服务的资源配额,然后查找是否存在空闲资源大于该配额的主机,若存在则通过
docker

service

scale
将服务的实例数目增加1个

[0017]进一步,所述纵向伸缩的过程中需更新容器的资源配额,直接使用
docker

service

scale
命令更新容器时会启动一个新容器代替当前容器,存在任务丢失可能,此时发送停止信号停止待更新容器,待容器自动停止后再更新容器的资源配额,每次更新时增加或缩减的资源数目可由用户设定

[0018]进一步,对于
Web
服务器,须监控如下指标:
[0019]1)
每秒
web
服务器接收了多少数据量;
[0020]2)
每秒
web
服务器发送了多少数据量;
[0021]3)
每秒有多少次尝试
HTTP
连接;
[0022]4)
当前连接数;
[0023]5)
每秒产生的错误数量;
[0024]6)
计算节点处理器使用率;
[0025]7)
计算节点内存使用率

[0026]进一步,所述计算节点可以为小型机
、Pc
服务器

虚拟机,在业务支撑云平台上,通过
HMC
接口实现上述服务器的纳管,制定相应计算节点的模板,部署应用程序

监控代理至模板中

[0027]进一步,当分配计算节点时,业务支撑云平台通过
PXE
调用部署物理机,通过
HMC、vCenter
接口部署小型机分区及
VMware
虚拟机,分配
IP
地址

存储等资源至计算节点

[0028]与现有技术相比,本申请的技术方案具备以下有益效果:
[0029]该基于微服务负载的动态弹性伸缩方法,每个流程以微服务的形式运行于容器中,在实现工作流便捷部署

运行隔离和集中管理的基础上,可利用微服务的松耦合性自由编排组合工作流,并基于
CPU
使用率进行工作流的快速自动弹性伸缩,基于
CPU
使用率的工作流自动伸缩模型,在流程过载时自动扩充流程的容器数目,减少任务等待时间,当任务负载减小时,能够在确保任务不丢失的情况下完成流程的缩容,以节约资源和成本,通过部署弹性伸缩集群,在很大程度上提高了业务支撑系统对整体计算资源利用率,减少了计算资源的使用,实现了业务系统横向扩展能力,可以减少应用对操作系统

服务器的依赖

附图说明
[0030]图1为本专利技术伸缩方法示意图;
[003本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种基于微服务负载的动态弹性伸缩方法,其特征在于,包括以下步骤:
S1
用户通过图形界面定义工作流,系统根据用户输入自动生成工作流描述文件并提交给流程解析器;
S2
流程解析器对工作流描述进行解析,生成相应的容器启动命令交给容器调度器;
S3
容器调度器根据主机资源使用情况选取合适的主机运行容器;
S4
弹性伸缩决策器定时计算每个服务的资源使用率,并与规定的指标比较;
S5
如果符合伸缩条件,则弹性伸缩决策模块根据服务的伸缩策略执行服务伸缩操作
。2.
根据权利要求1所述的一种基于微服务负载的动态弹性伸缩方法,其特征在于:所述弹性伸缩过程中当一个流程有多个容器实例时,采用负载均衡机制将请求均衡分配到每个容器,每个流程通过
TCP
协议将处理结果直接发送到下一个流程
。3.
根据权利要求1所述的一种基于微服务负载的动态弹性伸缩方法,其特征在于:所述弹性伸缩过程中的任务处理程序在接收数据前先判断是否需停止,使程序通过停止信号退出时没有任务处于执行状态,接收数据后发送确认信号使发送方确认数据被接收,同样发送数据后等待确认的信号,确保数据已发送给下一个流程
。4.
根据权利要求1所述的一种基于微服务负载的动态弹性伸缩方法,其特征在于:所述弹性伸缩过程中基于
NFS
实现跨主机容器之间的数据交互,基于
redis
构建任务队列实现多容器并发执行,每个流程创建一个任务队列,任务队列中存放待处理数据的地址,每个处理程序从任务队列中取出数据,然后判断是否为停止信号
。5.
根据权利要求1所述的一种基于微服务负载的动态弹性伸缩方法,其特征在于:所述弹性伸缩包括横向伸缩和纵向伸缩,所述横向伸缩也叫水平扩展,即用更多的节点来支撑更大量的请求,所述纵向伸缩也叫垂直扩展,即扩展一个点的能力来支撑更大量的请求
。6.
根据权利要求5所述的一种基于微服务负载的动态弹性伸缩方法,其特征在于:所述横向伸缩的过程中弹性伸缩决策器首先获取待扩容服务的资源配额,然后查找是否存在空闲资源大于该配额的主机,若存在则通过
...

【专利技术属性】
技术研发人员:魏飞陈志刚肖飞
申请(专利权)人:四川开物信息技术有限公司
类型:发明
国别省市:

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

1