一种云环境MongoDB数据库集群实例节点弹性伸缩方法和系统技术方案

技术编号:34367876 阅读:53 留言:0更新日期:2022-07-31 09:41
本发明专利技术提供了一种云环境MongoDB数据库集群实例节点弹性伸缩方法和系统,通过提出由部署公有云环境上MongoDB数据库过程、数据库监控数据训练预测过程和数据库节点弹性伸缩过程组成的一种云环境MongoDB数据库集群实例节点弹性伸缩方法,该系统自动判断当前时间段内MongoDB副本集实例合适的节点数,对数据库集群只读节点进行弹性伸缩,优化实例节点资源数,同时保证数据库服务不宕机,并且利用分析云环境下过去时间段的大数据量的监控指标,建立监控数据训练模块,并且根据合适的只读节点,自动创建或删除只读实例节点,自动配置MongoDB数据库副本集集群,节省用户的资源成本,减少了随时监控数据库性能的运维成本。减少了随时监控数据库性能的运维成本。减少了随时监控数据库性能的运维成本。

An elastic scaling method and system for instance nodes of mongodb database cluster in cloud environment

【技术实现步骤摘要】
一种云环境MongoDB数据库集群实例节点弹性伸缩方法和系统


[0001]本专利技术涉及云数据库相关
,特别涉及一种云环境MongoDB数据库集群实例节点弹性伸缩方法和系统。

技术介绍

[0002]在互联网的应用场景中,数据库的读请求数据量大、并发量要求高,需要读写分离的数据库架构满足其需求。其中,只读实例组即是读写分离的一种实现方式。
[0003]在对数据库有少量写请求,但有大量读请求的应用场景下,数据库的读请求成为数据库的瓶颈,现有数据库实例无法同时满足读请求和写操作的快速响应。为了提升数据库的性能,分担数据库压力,增加数据库集群的节点数,让数据库的读请求分发到新节点,减少现有数据库节点的压力。可以创建一个或多个数据库节点,组成节点组,利用新的节点组提供只读功能来分担数据库读需求,也称为只读实例组。应用程序中配置主实例地址和只读实例地址,可以实现写请求转发到主实例,读请求转发到只读实例,更方便读写分离。
[0004]MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。副本集方式的集群提供冗余和高可用性,并且是所有生产环境部署的基础。MongoDB的复制至少需要两个节点,其中一个是主节点,负责处理客户端请求,其余的都是从节点,负责复制主节点上的数据。一个副本集可以有一个或多个从节点。主节点接收所有的写操作,副本集的所有成员都可以接受读取操作。默认情况下,应用程序将其读取操作定向到主节点,当数据库读请求量较大时,主节点成为数据库访问的短板。

技术实现思路

[0005]本专利技术实施例提供了一种云环境MongoDB数据库集群实例节点弹性伸缩方法和系统,能够提高访问服务器的安全性。
[0006]一种云环境MongoDB数据库集群实例节点弹性伸缩方法和系统包括:
[0007]部署公有云环境上MongoDB数据库过程;
[0008]数据库监控数据训练预测过程,所述数据库监控数据训练预测过程具体包括:模型的训练过程和节点数的预测过程;
[0009]数据库节点弹性伸缩过程,所述数据库节点弹性伸缩过程具体包括:节点扩容过程和节点缩容过程。
[0010]可选地,
[0011]所述部署公有云环境上MongoDB数据库过程具体包括:
[0012]步骤一:提示用户是否开启MongoDB数据库集群实例节点,开启则进入步骤二,不开启则结束此流程,用户可自行判断创建或删除数据库实例节点;
[0013]步骤二:MongoDB数据库获取MongoDB数据库的监控性能指标,包括不同时间段的
CPU、内存、网络、读写请求数、读写比例指标以及读操作平均响应时间;
[0014]步骤三:MongoDB数据库监控数据信息,设定5分钟内读操作平均响应时间阈值,在读操作平均响应时间符合设定阈值范围内,建立多元线性回归模型进行监控指标的学习,预测合适的只读节点数;
[0015]步骤四:当前节点数是否在预测的节点数合适范围内,若在预测的节点数范围内,则说明当前节点数合适,此流程结束,否则进入步骤五。
[0016]步骤五:节点的当前节点数小于预测的节点数,则进行节点扩容功能,否则进行节点缩容功能。
[0017]可选地,
[0018]所述模型的训练过程包括:
[0019]步骤六:根据数据库监控历史数据构建训练数据和测试集,训练数据和测试集包含的标记数据主要有当前数据库实例的节点数、数据库实例的CPU、内存、网络、读负载;
[0020]步骤七:训练数据和测试数据归一化处理,去掉运算过程中测试指标不统一的单位,用x表示当前的指标值,y代表对应指标的归化数据,采用公式为:
[0021][0022]步骤八:构建多元线性回归模型,具体公式为:f(x)=w1*x1+w2*x2+

+wd*xd+b,其中w1、w2、

、wd为权重,b为偏置,x1、x2、

、xd为影响因子,如当前数据库实例的节点数、数据库实例的CPU、内存、网络、读负载影响因子,f(x)为预测值,损失函数采用均方误差,找极值采用随机梯度下降算法;
[0023]步骤九:使用训练数据对构建的多元线性回归模型进行多轮训练,训练次数设定1000次;
[0024]步骤十:训练好模型后,对该模型参数通过测试集进行验证,如果偏差过大,可以调大训练次数,继续对模型进行优化,直到误差在合理范围之内。
[0025]可选地,
[0026]所述节点数的预测过程包括:
[0027]步骤十一:识别影响读操作平均响应时间的参数因子,如当前数据库实例的节点数、数据库实例的CPU、内存、网络、读负载等影响因子;
[0028]步骤十二:获取监控MongoDB数据库性能数据,其中包括采集数据库不同时间段的CPU、内存、网络、读写请求数、读写比例指标以及读操作平均响应时间等监控数据,同时进行数据的归一化处理;
[0029]步骤十三:如果读操作平均响应时间如果大于最大响应时间阈值或者小于最小响应时间阈值,则执行节点数预测操作,此处的阈值设置结合MongoDB数据库的特点,数据库节点的弹性扩容需要考虑数据库数据的同步问题,因此弹性扩容前需要提前进行扩容,预留MongoDB数据恢复时间,在读响应时间连续上升阶段连续达到3次最大响应时间阈值进行弹性伸缩节点数预测,所以读平均最大响应时间阈值比正常响应时间设置小;
[0030]步骤十四:节点预测操作需通过训练模型和采集值,读操作平均响应时间设置为指定的值,对预测节点数进行预测;
[0031]步骤十五:根据预测合适节点数与当前实例的节点数据进行比对,通知程序是否
进行节点的弹性伸缩以及伸缩几个节点。
[0032]可选地,
[0033]所述节点扩容过程包括:
[0034]步骤十六:创建扩容实例节点虚机,推荐扩容节点同主实例规格保持一致,即同CPU内存规格,便于后续监控性能数据;
[0035]步骤十七:MongoDB主实例集群节点数据恢复至新扩容的节点,保持扩容实例节点数据与主实例同步,防止数据量大时,主实例集群新增副本,副本同步数据时间较长;
[0036]步骤十八:集群主实例节点配置文件同步至扩容实例,保持扩容副本与主实例配置一致;
[0037]步骤十九:集群主实例节点添加新实例副本成员,MongoDB数据库执行rs.add命令,同时配置新成员优先级低于主实例,保障副本集集群故障节点切换时优先选择主实例集群的节点,保证只读实例节点作为从节点;
[0038]步骤二十:集群主实例节点查看集群状态,MongoDB数据库执行rs.status命令查看当前实例副本集集群的状态,若状态正常,则进入步骤二十一;否则进入步骤二十三;
[0039]步骤二十一:只读负载均衡配置增加新扩容实例,负责只读实例负载分发负载均衡器配置中增加新扩容实例节点的信息;...

【技术保护点】

【技术特征摘要】
1.一种云环境MongoDB数据库集群实例节点弹性伸缩方法和系统,其特征在于,所述一种云环境MongoDB数据库集群实例节点弹性伸缩方法包括:部署公有云环境上MongoDB数据库过程;数据库监控数据训练预测过程,所述数据库监控数据训练预测过程具体包括:模型的训练过程和节点数的预测过程;数据库节点弹性伸缩过程,所述数据库节点弹性伸缩过程具体包括:节点扩容过程和节点缩容过程。2.根据权利要求1所述的一种云环境MongoDB数据库集群实例节点弹性伸缩的方法,其特征在于:所述部署公有云环境上MongoDB数据库过程具体包括:步骤一:提示用户是否开启MongoDB数据库集群实例节点,开启则进入步骤二,不开启则结束此流程,用户可自行判断创建或删除数据库实例节点;步骤二:MongoDB数据库获取MongoDB数据库的监控性能指标,包括不同时间段的CPU、内存、网络、读写请求数、读写比例指标以及读操作平均响应时间;步骤三:MongoDB数据库监控数据信息,设定5分钟内读操作平均响应时间阈值,在读操作平均响应时间符合设定阈值范围内,建立多元线性回归模型进行监控指标的学习,预测合适的只读节点数;步骤四:当前节点数是否在预测的节点数合适范围内,若在预测的节点数范围内,则说明当前节点数合适,此流程结束,否则进入步骤五。步骤五:节点的当前节点数小于预测的节点数,则进行节点扩容功能,否则进行节点缩容功能。3.根据权利要求2所述的一种云环境MongoDB数据库集群实例节点弹性伸缩的方法,其特征在于:所述模型的训练过程包括:步骤六:根据数据库监控历史数据构建训练数据和测试集,训练数据和测试集包含的标记数据主要有当前数据库实例的节点数、数据库实例的CPU、内存、网络、读负载;步骤七:训练数据和测试数据归一化处理,去掉运算过程中测试指标不统一的单位,用x表示当前的指标值,y代表对应指标的归化数据,采用公式为:步骤八:构建多元线性回归模型,具体公式为:f(x)=w1*x1+w2*x2+

+wd*xd+b,其中w1、w2、

、wd为权重,b为偏置,x1、x2、

、xd为影响因子,如当前数据库实例的节点数、数据库实例的CPU、内存、网络、读负载影响因子,f(x)为预测值,损失函数采用均方误差,找极值采用随机梯度下降算法;步骤九:使用训练数据对构建的多元线性回归模型进行多轮训练,训练次数设定1000次;步骤十:训练好模型后,对该模型参数通过测试集进行验证,如果偏差过大,可以调大训练次数,继续对模型进行优化,直到误差在合理范围之内。
4.根据权利要求3所述的一种云环境MongoDB数据库集群实例节点弹性伸缩的方法,其特征在于:所述节点数的预测过程包括:步骤十一:识别影响读操作平均响应时间的参数因子,如当前数据库实例的节点数、数据库实例的CPU、内存、网络、读负载等影响因子;步骤十二:获取监控MongoDB数据库性能数据,其中包括采集数据库不同时间段的CPU、内存、网络、读写请求数、读写比例指标以及读操作平均响应时间等监控数据,同时进行数据的归一化处理;步骤十三:如果读操作平均响应时间如果大于最大响应时间阈值或者小于最小响应时间阈值,则执行节点数预测操作,此处的阈值设置结合MongoDB数据库的特点,数据库节点的弹性扩容需要考虑数据库数据的同步问题,因此弹性扩容前需要提前进行扩容,预留MongoDB数据恢复时间,在读响应时间连续上升阶段连续达到3次最大响应时间阈值进行弹性伸缩节点数预测,所以读平均最大响应时间阈值比正常响应时间设置小;步骤十四:节点预测操作需通过训练模型和采集值,读操作平均响应时间设置为指定的值,对预测节点数进行预测;步骤十五:根据预测合适节点数与当前实例的节点数据进行比对,通知程序是否进行节点的弹性伸缩以及伸缩几个节点。5.根据权利要求4所述的一种云环境MongoDB数据库集群实例节点弹性伸缩的方法,其特征在于:所述节点扩容过程包括:步骤十六:创建扩容实例节点虚机,推荐扩容节点同主实例规格保持一致,即同CPU内存规格,便于后续监控性能数据;步骤十七:MongoDB主实例集群节点数据恢复至新扩容的节点,保持扩容实例节点数据与主实例同步,防止数据量大时,主实例集群新增副本,副本同步数据时间较长;步骤十八:集群主实例节点配置文件同步至扩容实例,保持扩容副本与主实例配置...

【专利技术属性】
技术研发人员:厉颖赵山王阳孙思清肖雪
申请(专利权)人:浪潮云信息技术股份公司
类型:发明
国别省市:

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

1