一种基于RabbitMQ集群的服务节点弹性伸缩方法技术

技术编号:26797763 阅读:42 留言:0更新日期:2020-12-22 17:15
本发明专利技术提供一种基于RabbitMQ集群的服务节点弹性伸缩方法,包括如下步骤:S1.在RabbitMQ集群内设置监控服务以及服务节点伸缩阈值,并保存RabbitMQ集群配置文件;S2.开启监控服务,监控服务获取RabbitMQ集群运行参数,并在RabbitMQ集群运行参数触发服务节点伸缩阈值时,进行服务节点数目调整;S3.在监控服务关闭或者RabbitMQ集群恢复时,保存RabbitMQ集群的消息数据,获取并根据RabbitMQ集群配置文件,恢复原有RabbitMQ集群,再将RabbitMQ集群的消息数据同步到原有RabbitMQ集群。本发明专利技术实现服务节点的自动弹性伸缩,提高效率,降低运维成本。

【技术实现步骤摘要】
一种基于RabbitMQ集群的服务节点弹性伸缩方法
本专利技术属于集群服务
,具体涉及一种基于RabbitMQ集群的服务节点弹性伸缩方法。
技术介绍
RabbitMQ:一个消息中间件;RabbitMQ集群:有多个节点的RabbitMQ服务组成的集群,提供高可用、负载均衡等功能;HA策略:RabbitMQ的高可用(Highavailability)策略,用于定义集群中节点如何同步、备份数据;消息速率:RabbitMQ上每秒消息推送和订阅的数量。RabbitMQ是目前使用广泛、技术成熟的开源消息中间件。集群服务保证了业务的稳定性和可靠性,同时提高了RabbitMQ的吞吐量。但一般使用RabbitMQ集群服务是配置好集群的配置文件,然后启动集群服务。在需要进行节点扩展的时候将新建节点添加到集群中,这些情况都是需要人工进行判断和操作,不但提高了维护成本,且人工判断基于主观因素,不准确,甚至出现误判及误操作。此为现有技术的不足,因此,针对现有技术中的上述缺陷,提供一种基于RabbitMQ集群的服务节点弹性伸缩方法,是非常有必要的。
技术实现思路
针对现有技术的上述现有RabbitMQ集群服务基于配置文件,只能依据人工进行服务扩展判断和操作,不但效率低,而且也有容易出错的缺陷,本专利技术提供一种基于RabbitMQ集群的服务节点弹性伸缩方法,以解决上述技术问题。本专利技术提供一种基于RabbitMQ集群的服务节点弹性伸缩方法,包括如下步骤:S1.在RabbitMQ集群内设置监控服务以及服务节点伸缩阈值,并保存RabbitMQ集群配置文件;S2.开启监控服务,监控服务获取RabbitMQ集群运行参数,并在RabbitMQ集群运行参数触发服务节点伸缩阈值时,进行服务节点数目调整;S3.在监控服务关闭或者RabbitMQ集群恢复时,保存RabbitMQ集群的消息数据,获取并根据RabbitMQ集群配置文件,恢复原有RabbitMQ集群,再将RabbitMQ集群的消息数据同步到原有RabbitMQ集群。进一步地,RabbitMQ集群运行参数包括但不限于RabbitMQ集群消息速率、内存使用情况以及CPU使用情况;服务节点伸缩阈值数量至少包括RabbitMQ集群消息速率阈值上下限、内存使用情况阈值上下限及CPU使用情况阈值上下限。进一步地,步骤S2具体步骤如下:S21.开启监控服务;S22.设置监控服务实时获取RabbitMQ集群运行参数,并判断RabbitMQ集群运行参数是否触发服务节点伸缩阈值;若是,进入步骤S23;若否,进入步骤S3;S23.根据RabbitMQ集群运行参数触发服务节点伸缩阈值下限或者上限,进行对应服务节点添加或删除;S24.验证服务节点调整后RabbitMQ集群运行参数是否处于服务节点伸缩阈值上下限之间;若是,进入步骤S3;若否,返回步骤S23。监控服务调整服务节点数量,实现自反馈,根据调整后的RabbitMQ集群运行参数确认调整是否有效,如果调整后的情况仍然在服务节点伸缩阈值上下限之外,根据既有的策略继续调整。进一步地,步骤S23具体步骤如下:S231.当RabbitMQ集群消息速率高于RabbitMQ集群消息速率阈值上限时,进行服务节点添加及配置;当RabbitMQ集群消息速率低于RabbitMQ集群消息速率阈值下限时,将服务节点数据同步后,进行服务节点删除;S232.当RabbitMQ集群内存使用情况高于RabbitMQ集群内存使用情况上限时,进行服务节点添加及配置;当RabbitMQ集群内存使用情况低于RabbitMQ集群内存使用情况阈值下限时,将服务节点数据同步后,进行服务节点删除;S233.当RabbitMQ集群CPU使用情况高于RabbitMQ集群CPU使用情况上限时,进行服务节点添加及配置;当RabbitMQ集群CPU使用情况低于RabbitMQ集群CPU使用情况阈值下限时,将服务节点数据同步后,进行服务节点删除。进一步地,步骤S231,步骤S232以及步骤S233中,进行服务节点删除前,判断是否存在服务节点同步数据的HA策略;若有,将需要删除服务节点的数据依据HA策略进行同步,再进行服务节点删除;若无,将需要删除服务节点数据强制同步到任一服务节点,再进行服务节点删除。服务节点同步数据的HA策略,可以全RabbitMQ集群服务节点同步数据,也可以设置一个已有服务节点的从节点进行数据同步。进一步地,服务节点伸缩阈值还包括服务节点数目上限;步骤S23中,服务节点添加后,若服务节点数目超过服务节点数目上限,则进行服务节点删除。进一步地,步骤S3具体步骤如下:S31.当监控服务关闭或RabbitMQ集群恢复时,保存RabbitMQ集群的消息数据;S32.获取保存的RabbitMQ集群配置文件,根据RabbitMQ集群中配置文件恢复原有服务节点数目,实现原有RabbitMQ集群恢复;S33.将RabbitMQ集群的消息数据同步到原有RabbitMQ集群。进一步地,所述RabbitMQ集群的消息数据包括RabbitMQ集群的消息队列、消息交换以及消息实体数据。原有RabbitMQ集群恢复,需要将恢复前发生的消息队列、消息交换以及消息实体数据。进一步地,步骤S32中,恢复原有RabbitMQ集群时,若需要删除扩展服务节点,则判断是否存在服务节点同步数据的HA策略;若有,将扩展服务节点的数据依据HA策略进行同步,再进行扩展服务节点删除;若无,将扩展服务节点数据强制同步到任一服务节点,再进行扩展服务节点删。进一步地,步骤S1中,RabbitMQ集群内设置若干个监控服务,并配置各监控服务同步。各监控服务可以和RabbitMQ集群内服务节点在同一个系统下,也可以在不同的系统下。进一步地,还包括如下步骤:S4.在RabbitMQ集群设置手动操作接口,用户通过手动操作接口进行手动操作,所述手动操作包括恢复集群、添加服务节点、删除服务节点以及配置服务节点;S5.在RabbitMQ集群设置外部查询接口,用户通过外部接口进行查询操作,包括查询RabbitMQ集群状态、参数设置以及操作历史记录。本专利技术的有益效果在于,本专利技术提供的基于RabbitMQ集群的服务节点弹性伸缩方法,通过设置监控服务及服务节点伸缩阈值参数实现RabbitMQ集群的服务节点自动的弹性伸缩功能,不但避免人工判断和操作的局限性,而且实现服务节点硬件资源的充分利用,提高效率,降低运维成本。此外,本专利技术设计原理可靠,结构简单,具有非常广泛的应用前景。由此可见,本专利技术与现有技术相比,具有突出的实质性特点和显著的进步,其实施的有益效果也是显而易见的。附图说明为了更清楚地说明本专利技术实施例或现本文档来自技高网...

【技术保护点】
1.一种基于RabbitMQ集群的服务节点弹性伸缩方法,其特征在于,包括如下步骤:/nS1.在RabbitMQ集群内设置监控服务以及服务节点伸缩阈值,并保存RabbitMQ集群配置文件;/nS2.开启监控服务,监控服务获取RabbitMQ集群运行参数,并在RabbitMQ集群运行参数触发服务节点伸缩阈值时,进行服务节点数目调整;/nS3.在监控服务关闭或者RabbitMQ集群恢复时,保存RabbitMQ集群的消息数据,获取并根据RabbitMQ集群配置文件,恢复原有RabbitMQ集群,再将RabbitMQ集群的消息数据同步到原有RabbitMQ集群。/n

【技术特征摘要】
1.一种基于RabbitMQ集群的服务节点弹性伸缩方法,其特征在于,包括如下步骤:
S1.在RabbitMQ集群内设置监控服务以及服务节点伸缩阈值,并保存RabbitMQ集群配置文件;
S2.开启监控服务,监控服务获取RabbitMQ集群运行参数,并在RabbitMQ集群运行参数触发服务节点伸缩阈值时,进行服务节点数目调整;
S3.在监控服务关闭或者RabbitMQ集群恢复时,保存RabbitMQ集群的消息数据,获取并根据RabbitMQ集群配置文件,恢复原有RabbitMQ集群,再将RabbitMQ集群的消息数据同步到原有RabbitMQ集群。


2.如权利要求1所述的基于RabbitMQ集群的服务节点弹性伸缩方法,其特征在于,RabbitMQ集群运行参数包括但不限于RabbitMQ集群消息速率、内存使用情况以及CPU使用情况;
服务节点伸缩阈值数量至少包括RabbitMQ集群消息速率阈值上下限、内存使用情况阈值上下限及CPU使用情况阈值上下限。


3.如权利要求2所述的基于RabbitMQ集群的服务节点弹性伸缩方法,其特征在于,步骤S2具体步骤如下:
S21.开启监控服务;
S22.设置监控服务实时获取RabbitMQ集群运行参数,并判断RabbitMQ集群运行参数是否触发服务节点伸缩阈值;
若是,进入步骤S23;
若否,进入步骤S3;
S23.根据RabbitMQ集群运行参数触发服务节点伸缩阈值下限或者上限,进行对应服务节点添加或删除;
S24.验证服务节点调整后RabbitMQ集群运行参数是否处于服务节点伸缩阈值上下限之间;
若是,进入步骤S3;
若否,返回步骤S23。


4.如权利要求3所述的基于RabbitMQ集群的服务节点弹性伸缩方法,其特征在于,步骤S23具体步骤如下:
S231.当RabbitMQ集群消息速率高于RabbitMQ集群消息速率阈值上限时,进行服务节点添加及配置;
当RabbitMQ集群消息速率低于RabbitMQ集群消息速率阈值下限时,将服务节点数据同步后,进行服务节点删除;
S232.当RabbitMQ集群内存使用情况高于RabbitMQ集群内存使用情况上限时,进行服务节点添加及配置;
当RabbitMQ集群内存使用情况低于RabbitMQ集群内存使用情况阈值下限时,将服务节点数据同步后,进行服务节点删除;
S233.当RabbitMQ集群CPU使用情况高于RabbitMQ集群CPU使用情况上限时,进行服务节点添加及配置;
当RabbitMQ集群CPU使用情况低于RabbitMQ集群...

【专利技术属性】
技术研发人员:袁东海胡玉鹏李红卫
申请(专利权)人:苏州浪潮智能科技有限公司
类型:发明
国别省市:江苏;32

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

1