CN110971430B - 自动化扩容缩容的控制方法、装置、存储介质及处理器 - Google Patents
自动化扩容缩容的控制方法、装置、存储介质及处理器 Download PDFInfo
- Publication number
- CN110971430B CN110971430B CN201811146691.0A CN201811146691A CN110971430B CN 110971430 B CN110971430 B CN 110971430B CN 201811146691 A CN201811146691 A CN 201811146691A CN 110971430 B CN110971430 B CN 110971430B
- Authority
- CN
- China
- Prior art keywords
- message
- consumers
- producer
- rate
- queue middleware
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0896—Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/562—Brokering proxy services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/566—Grouping or aggregating service requests, e.g. for unified processing
Abstract
本发明公开了一种自动化扩容缩容的控制方法,周期性监测消息队列中间件中的总消息数和消息生产者的消息发布速率、以及每个消息消费者的消息消费速率,当当前总消息数大于预设最大消息数阈值时触发预设分布式应用扩容机制,并当当前总消息数小于预设最小消息数阈值时触发预设分布式应用缩容机制。自动化实现分布式应用的扩容缩容控制,及时监测到消息队列中间件负载较高的状态和负载较低的状态,在负载较高时合理扩容,并在负载较低时合理缩容,提高分布式集群资源的利用率。
Description
技术领域
本发明涉及数据处理技术领域,更具体的,涉及一种自动化扩容缩容的控制方法、装置、存储介质及处理器。
背景技术
分布式应用会使用一种以消息队列为消息中间件的架构,此种架构之下,如果消息生产的速率大于消息消费的速率时,数据便会积压在消息队列中间件中,此时会对消息队列中间件产生负载压力,不稳定的中间件会出现崩溃、丢数据等情况。
传统的解决方案一般为软件开发人员手动启动一个或多个分布式应用的副本,从而增加消息队列中间件的消息消费速率,使得消息消费速率大于消息生产速率,从而使尽量少的消息积压在消息队列中间件中,减少其负载压力。
而传统的方案往往出现的问题就是一旦发现队列中数据有积压时,很可能数据已经有大量的积压,且开发人员未必能对分布式应用消费速率有一个很准确的判断,而导致多启动一些分布式应用的副本从而导致对整个分布式集群的资源的浪费。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种自动化扩容缩容的控制方法、装置、存储介质及处理器。
为了实现上述发明目的,本发明提供的具体技术方案如下:
一种自动化扩容缩容的控制方法,包括:
监测消息生产者发布到消息队列中间件中的总消息数、消息生产者发布消息的速率、以及每个消息消费者对消息队列中间件中消息的消费速率;
判断消息生产者发布到消息队列中间件中的总消息数是否大于预设最大消息数阈值;
若大于,根据消息生产者发布消息的速率和每个消息消费者对消息队列中间件中消息的消费速率,启动相应数量的消息消费者,使启动的消息消费者对消息队列中间件中的消息进行消费。
可选的,所述根据消息生产者发布消息的速率和每个消息消费者对消息队列中间件中消息的消费速率,启动相应数量的消息消费者,使启动的消息消费者对消息队列中间件中的消息进行消费,包括:
当所有消息消费者的消费速率的和值为预设最大消费速率时,根据消息生产者发布消息的速率、总消息数、以及预设最大消费速率,判断消息生产者发布到消息队列中间件中的总消息是否能在预设时间内消费完毕;
若能消费完毕,基于消息生产者发布消息的速率、总消息数、以及每个消费者对消息队列中间件中消息的消费速率,计算消息生产者发布到消息队列中间件中的总消息能在预设时间内消费完毕时所需启动的消息消费者的数量,并启动相应数量的消息消费者;
若不能消费完毕,依据预设最大消费速率和每个消费者对消息队列中间件中消息的消费速率,计算使扩容后所有消息消费者的消费速率的和值大于所述预设最大消费速率时所需启动的最小消息消费者数,并启动所述最小消息消费者数的消息消费者。
可选的,所述当所有消息消费者的消费速率的和值为预设最大消费速率时,判断消息生产者发布到消息队列中间件中的总消息是否能在预设时间内消费完毕,包括:
判断消息生产者发布消息的速率是否大于所述预设最大消费速率;
若大于,判定当所有消息消费者的消费速率的和值为预设最大消费速率时,消息生产者发布到消息队列中间件中的总消息不能在预设时间内消费完毕;
若不大于,判断消息生产者发布到消息队列中间件中的总消息数与速率差值的比值是否小于所述预设时间,所述速率差值为所述预设最大消费速率与消息生产者发布消息的速率的差值;
若小于,判定当所有消息消费者的消费速率的和值为预设最大消费速率时,消息生产者发布到消息队列中间件中的总消息能在预设时间内消费完毕;
若不小于,判定当所有消息消费者的消费速率的和值为预设最大消费速率时,消息生产者发布到消息队列中间件中的总消息不能在预设时间内消费完毕。
可选的,所述方法还包括:
当消息生产者发布到消息队列中间件中的总消息数不大于预设最大消息数阈值时,根据消息生产者发布消息的速率和每个消息消费者对消息队列中间件中消息的消费速率,关闭相应数量的消息消费者,关闭的消息消费者停止对消息队列中间件中的消息进行消费。
可选的,所述根据消息生产者发布消息的速率和每个消息消费者对消息队列中间件中消息的消费速率,关闭相应数量的消息消费者,包括:
判断消息生产者发布消息的速率是否小于所有消息消费者的消费速率的和值;
若是,判断当消息消费者的数量为预设最小消息消费者数时所有消息消费者的消费速率的和值是否大于消息生产者发布消息的速率;
若大于,根据消息消费者的数量与所述预设最小消息消费者数的差值关闭相应数量的消息消费者,使当前为启动状态的消息消费者的数量为所述预设最小消息消费者数;
若不大于,根据消息消费者的数量与临界数的差值关闭相应数量的消息消费者,使当前为启动状态的消息消费者的数量为临界数,所述临界数为使所有消费者的消费速率的和值大于生产者发布消息的速率时的最小消息消费者数。
一种自动化扩容缩容的控制装置,包括:
监测单元,用于监测消息生产者发布到消息队列中间件中的总消息数、消息生产者发布消息的速率、以及每个消息消费者对消息队列中间件中消息的消费速率;
第一判断单元,用于判断消息生产者发布到消息队列中间件中的总消息数是否大于预设最大消息数阈值;
若是,触发扩容控制单元,用于根据消息生产者发布消息的速率和每个消息消费者对消息队列中间件中消息的消费速率,启动相应数量的消息消费者,使启动的消息消费者对消息队列中间件中的消息进行消费。
可选的,所述扩容控制单元包括:
第一判断子单元,用于当所有消息消费者的消费速率的和值为预设最大消费速率时,根据消息生产者发布消息的速率、总消息数、以及预设最大消费速率,判断消息生产者发布到消息队列中间件中的总消息是否能在预设时间内消费完毕;若是,触发第一扩容控制子单元,若否,触发第二扩容控制子单元;
所述第一扩容控制子单元,用于基于消息生产者发布消息的速率、总消息数、以及每个消费者对消息队列中间件中消息的消费速率,计算消息生产者发布到消息队列中间件中的总消息能在预设时间内消费完毕时所需启动的消息消费者的数量,并启动相应数量的消息消费者;
所述第二扩容控制子单元,用于依据预设最大消费速率和每个消费者对消息队列中间件中消息的消费速率,计算使扩容后所有消息消费者的消费速率的和值大于所述预设最大消费速率时所需启动的最小消息消费者数,并启动所述最小消息消费者数的消息消费者。
可选的,所述第一判断子单元,具体用于判断消息生产者发布消息的速率是否大于所述预设最大消费速率;若大于,判定当所有消息消费者的消费速率的和值为预设最大消费速率时,消息生产者发布到消息队列中间件中的总消息不能在预设时间内消费完毕;若不大于,判断消息生产者发布到消息队列中间件中的总消息数与速率差值的比值是否小于所述预设时间,所述速率差值为所述预设最大消费速率与消息生产者发布消息的速率的差值;若小于,判定当所有消息消费者的消费速率的和值为预设最大消费速率时,消息生产者发布到消息队列中间件中的总消息能在预设时间内消费完毕;若不小于,判定当所有消息消费者的消费速率的和值为预设最大消费速率时,消息生产者发布到消息队列中间件中的总消息不能在预设时间内消费完毕。
可选的,所述装置还包括:
缩容控制单元,用于当消息生产者发布到消息队列中间件中的总消息数不大于预设最大消息数阈值时,根据消息生产者发布消息的速率和每个消息消费者对消息队列中间件中消息的消费速率,关闭相应数量的消息消费者,关闭的消息消费者停止对消息队列中间件中的消息进行消费。
可选的,所述缩容控制单元包括:
第二判断子单元,用于判断消息生产者发布消息的速率是否小于所有消息消费者的消费速率的和值;若是,触发第三判断子单元;
所述第三判断子单元,用于判断当消息消费者的数量为预设最小消息消费者数时所有消息消费者的消费速率的和值是否大于消息生产者发布消息的速率;若是,触发第一缩容控制子单元,若否,触发第二缩容控制子单元;
所述第一缩容控制子单元,用于根据消息消费者的数量与所述预设最小消息消费者数的差值关闭相应数量的消息消费者,使当前为启动状态的消息消费者的数量为所述预设最小消息消费者数;
所述第二缩容控制子单元,用于根据消息消费者的数量与临界数的差值关闭相应数量的消息消费者,使当前为启动状态的消息消费者的数量为临界数,所述临界数为使所有消费者的消费速率的和值大于生产者发布消息的速率时的最小消息消费者数。
一种存储介质,所述存储介质包括存储的程序,
其中,在所述程序运行时控制所述存储介质所在的设备执行如上述中任一项所述的自动化扩容缩容的控制方法。
一种处理器,所述处理器用于运行程序,
其中,所述程序运行时执行如上述中任一项所述的自动化扩容缩容的控制方法。
借由上述技术方案,本发明提供的一种自动化扩容缩容的控制方法,周期性监测消息队列中间件的当前总消息数和当前生产者的消息发布速率、以及当前每个消费者的消息消费速率,当当前总消息数大于预设最大消息数阈值时触发预设分布式应用扩容机制,并当当前总消息数小于预设最小消息数阈值时触发预设分布式应用缩容机制。自动化实现分布式应用的扩容缩容控制,及时监测到消息队列中间件负载较高的状态和负载较低的状态,在负载较高时合理扩容,并在负载较低时合理缩容,提高分布式集群资源的利用率。
本技术旨在通过控制程序自动解决一些开发人员需要手动以及需要脑力判断的问题,可以及时发现消息队列中间件负载较高的状态,合理启动适量的分布式应用消费者,增加对消息队列中间件的消费速率,减少其负载压力,并可以在消息队列中间件中消息数较少时以及负载较低时停止部分分布式应用以释放分布式集群的资源。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明实施例中公开的一种自动化扩容缩容的控制方法流程图;
图2示出了本发明实施例中公开的一种判断消息生产者发布到消息队列中间件中的总消息是否能在预设时间内消费完毕的方法流程图;
图3示出了本发明实施例中公开的一种自动化扩容缩容的控制方法流程图;
图4示出了本发明实施例中公开的一种缩容控制方法流程图;
图5示出了本发明实施例中公开的一种自动化扩容缩容的控制装置结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
请参阅图1,本实施例公开了一种自动化扩容缩容的控制方法,具体包括以下步骤:
S101:监测消息生产者发布到消息队列中间件中的总消息数、消息生产者发布消息的速率、以及每个消息消费者对消息队列中间件中消息的消费速率;
在分布式应用中,消息生产者生产消息,并将消息发布到消息队列中间件中,并不需要考虑消息如何被使用,只需要保证所生产消息结构的正确性。
在分布式应用中存在多个消息消费者,每个消息消费者对应一个分布式程序副本,每个消息消费者的消息消费速率可能不同。
可以理解的是,监测到的消息队列中间件的当前总消息数和当前生产者的消息发布速率、以及当前每个消费者的消息消费速率是不断更新的。
S102:判断消息生产者发布到消息队列中间件中的总消息数是否大于预设最大消息数阈值;
需要说明的是,预设最大消息阈值是经过多次试验预先设定的值。
若大于,执行S103:根据消息生产者发布消息的速率和每个消息消费者对消息队列中间件中消息的消费速率,启动相应数量的消息消费者,使启动的消息消费者对消息队列中间件中的消息进行消费;
根据消息生产者发布消息的速率和每个消息消费者对消息队列中间件中消息的消费速率,启动相应数量的消息消费者,使启动的消息消费者对消息队列中间件中的消息进行消费,包括:
当所有消息消费者的消费速率的和值为预设最大消费速率时,判断消息生产者发布到消息队列中间件中的总消息是否能在预设时间内消费完毕;
若能消费完毕,基于消息生产者发布消息的速率、总消息数、以及每个消费者对消息队列中间件中消息的消费速率,计算消息生产者发布到消息队列中间件中的总消息能在预设时间内消费完毕时所需启动的消息消费者的数量,并启动相应数量的消息消费者;
具体计算方法为:
其中,T为消息生产者发布到消息队列中间件中的总消息数,P为消息生产者发布消息的速率,S为预设时间,C1,C2...Cn为每个消息消费者对消息队列中间件中消息的消费速率,n为消息消费者的数量,A为所需启动的消息消费者数量。
若不能消费完毕,依据预设最大消费速率和每个消费者对消息队列中间件中消息的消费速率,计算使扩容后所有消息消费者的消费速率的和值大于所述预设最大消费速率时所需启动的最小消息消费者数,并启动所述最小消息消费者数的消息消费者。
具体计算方法为:
其中,A为所需启动的消息消费者数量,M为最大消费速率。
需要说明的是,由于新启动的消息消费者并没有对应的消息消费速率的统计信息,所以假定其消息消费速率为当前已存在的所有消息消费速率的平均值。
具体的,请参阅图2,所述当所有消息消费者的消费速率的和值为预设最大消费速率时,判断消息生产者发布到消息队列中间件中的总消息是否能在预设时间内消费完毕,包括:
S201:判断消息生产者发布消息的速率是否大于所述预设最大消费速率;
若大于,S202:判定当所有消息消费者的消费速率的和值为预设最大消费速率时,消息生产者发布到消息队列中间件中的总消息不能在预设时间内消费完毕;
若不大于,S203:判断消息生产者发布到消息队列中间件中的总消息数与速率差值的比值是否小于所述预设时间;
所述速率差值为所述预设最大消费速率与消息生产者发布消息的速率的差值;
若小于,S204:判定当所有消息消费者的消费速率的和值为预设最大消费速率时,消息生产者发布到消息队列中间件中的总消息能在预设时间内消费完毕;
若不小于,S202:判定当所有消息消费者的消费速率的和值为预设最大消费速率时,消息生产者发布到消息队列中间件中的总消息不能在预设时间内消费完毕。
T为消息生产者发布到消息队列中间件中的总消息数,P为消息生产者发布消息的速率,S为预设时间,M为最大消费速率时,消息生产者发布到消息队列中间件中的总消息能在预设时间内消费完毕的条件为:P<M且T/(M-P)<S。
消息生产者发布到消息队列中间件中的总消息能在预设时间内消费完毕的条件为:
P>M
或
P<M且T/(M-P)≥S
本实施例公开的一种自动化扩容缩容的控制方法,自动化实现分布式应用的扩容控制,及时监测到消息队列中间件负载较高的状态,在负载较高时合理扩容,提高分布式集群资源的利用率。
请参阅图3,本实施例公开了另一种自动化扩容缩容的控制方法,自动化实现分布式应用的扩容控制和缩容控制,具体包括以下步骤:
S301:监测消息生产者发布到消息队列中间件中的总消息数、消息生产者发布消息的速率、以及每个消息消费者对消息队列中间件中消息的消费速率;
S302:判断消息生产者发布到消息队列中间件中的总消息数是否大于预设最大消息数阈值;
若大于,S303:根据消息生产者发布消息的速率和每个消息消费者对消息队列中间件中消息的消费速率,启动相应数量的消息消费者,使启动的消息消费者对消息队列中间件中的消息进行消费;
若不大于,执行S304:判断消息生产者发布到消息队列中间件中的总消息数是否小于预设最小消息阈值;
若小于,执行S305:根据消息生产者发布消息的速率和每个消息消费者对消息队列中间件中消息的消费速率,关闭相应数量的消息消费者;
若不小于,返回执行S301。;
需要说明的是,关闭的消息消费者停止对消息队列中间件中的消息进行消费,预设最小消息阈值是经过多次试验预先设定的值。
具体的,请参阅图4,缩容控制方法具体包括以下步骤:
S401:判断消息生产者发布消息的速率是否小于所有消息消费者的消费速率的和值;
若不小于,消息生产者发布消息的速率大于所有消息消费者的消费速率的和值,S402:不进行缩容控制;
若是,S403:判断当消息消费者的数量为预设最小消息消费者数时所有消息消费者的消费速率的和值是否大于消息生产者发布消息的速率;
若大于,S404:根据消息消费者的数量与所述预设最小消息消费者数的差值关闭相应数量的消息消费者,使当前为启动状态的消息消费者的数量为所述预设最小消息消费者数;
若不大于,S405:根据消息消费者的数量与临界数的差值关闭相应数量的消息消费者,使当前为启动状态的消息消费者的数量为临界数。
所述临界数为使所有消费者的消费速率的和值大于生产者发布消息的速率时的最小消息消费者数。
本实施例公开的一种自动化扩容缩容的控制方法,周期性监测消息队列中间件的当前总消息数和当前生产者的消息发布速率、以及当前每个消费者的消息消费速率,当当前总消息数大于预设最大消息数阈值时触发预设分布式应用扩容机制,并当当前总消息数小于预设最小消息数阈值时触发预设分布式应用缩容机制。自动化实现分布式应用的扩容缩容控制,及时监测到消息队列中间件负载较高的状态和负载较低的状态,在负载较高时合理扩容,并在负载较低时合理缩容,提高分布式集群资源的利用率。
基于上述实施例公开的一种自动化扩容缩容的控制方法,请参阅图5,本实施例对应公开了一种自动化扩容缩容的控制装置,包括:
监测单元501,用于监测消息生产者发布到消息队列中间件中的总消息数、消息生产者发布消息的速率、以及每个消息消费者对消息队列中间件中消息的消费速率;
第一判断单元502,用于判断消息生产者发布到消息队列中间件中的总消息数是否大于预设最大消息数阈值;
若大于,触发扩容控制单元503,所述扩容控制单元403用于根据消息生产者发布消息的速率和每个消息消费者对消息队列中间件中消息的消费速率,启动相应数量的消息消费者,使启动的消息消费者对消息队列中间件中的消息进行消费。
可选的,所述扩容控制单元503包括:
第一判断子单元,用于当所有消息消费者的消费速率的和值为预设最大消费速率时,根据消息生产者发布消息的速率、总消息数、以及预设最大消费速率,判断消息生产者发布到消息队列中间件中的总消息是否能在预设时间内消费完毕;若是,触发第一扩容控制子单元,若否,触发第二扩容控制子单元;
所述第一扩容控制子单元,用于基于消息生产者发布消息的速率、总消息数、以及每个消费者对消息队列中间件中消息的消费速率,计算消息生产者发布到消息队列中间件中的总消息能在预设时间内消费完毕时所需启动的消息消费者的数量,并启动相应数量的消息消费者;
所述第二扩容控制子单元,用于依据预设最大消费速率和每个消费者对消息队列中间件中消息的消费速率,计算使扩容后所有消息消费者的消费速率的和值大于所述预设最大消费速率时所需启动的最小消息消费者数,并启动所述最小消息消费者数的消息消费者。
可选的,所述第一判断子单元,具体用于判断消息生产者发布消息的速率是否大于所述预设最大消费速率;若大于,判定当所有消息消费者的消费速率的和值为预设最大消费速率时,消息生产者发布到消息队列中间件中的总消息不能在预设时间内消费完毕;若不大于,判断消息生产者发布到消息队列中间件中的总消息数与速率差值的比值是否小于所述预设时间,所述速率差值为所述预设最大消费速率与消息生产者发布消息的速率的差值;若小于,判定当所有消息消费者的消费速率的和值为预设最大消费速率时,消息生产者发布到消息队列中间件中的总消息能在预设时间内消费完毕;若不小于,判定当所有消息消费者的消费速率的和值为预设最大消费速率时,消息生产者发布到消息队列中间件中的总消息不能在预设时间内消费完毕。
可选的,所述装置还包括:
缩容控制单元,用于当消息生产者发布到消息队列中间件中的总消息数不大于预设最大消息数阈值时,根据消息生产者发布消息的速率和每个消息消费者对消息队列中间件中消息的消费速率,关闭相应数量的消息消费者,关闭的消息消费者停止对消息队列中间件中的消息进行消费。
可选的,所述缩容控制单元包括:
第二判断子单元,用于判断消息生产者发布消息的速率是否小于所有消息消费者的消费速率的和值;若是,触发第三判断子单元;
所述第三判断子单元,用于判断当消息消费者的数量为预设最小消息消费者数时所有消息消费者的消费速率的和值是否大于消息生产者发布消息的速率;若是,触发第一缩容控制子单元,若否,触发第二缩容控制子单元;
所述第一缩容控制子单元,用于根据消息消费者的数量与所述预设最小消息消费者数的差值关闭相应数量的消息消费者,使当前为启动状态的消息消费者的数量为所述预设最小消息消费者数;
所述第二缩容控制子单元,用于根据消息消费者的数量与临界数的差值关闭相应数量的消息消费者,使当前为启动状态的消息消费者的数量为临界数,所述临界数为使所有消费者的消费速率的和值大于生产者发布消息的速率时的最小消息消费者数。
本实施例公开了一种自动化扩容缩容的控制装置,周期性监测消息队列中间件的当前总消息数和当前生产者的消息发布速率、以及当前每个消费者的消息消费速率,当当前总消息数大于预设最大消息数阈值时触发预设分布式应用扩容机制,并当当前总消息数小于预设最小消息数阈值时触发预设分布式应用缩容机制。自动化实现分布式应用的扩容缩容控制,及时监测到消息队列中间件负载较高的状态和负载较低的状态,在负载较高时合理扩容,并在负载较低时合理缩容,提高分布式集群资源的利用率。
所述自动化扩容缩容的控制装置包括处理器和存储器,上述监测单元、第一判断单元、扩容控制单元、第二判断单元和缩容控制单元等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来提高自动化控制扩容和缩容的效率。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本发明实施例提供了一种存储介质,其上存储有程序,该程序被处理器执行时实现所述自动化扩容缩容的控制方法。
本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行所述自动化扩容缩容的控制方法。
本发明实施例提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现以下步骤:
监测消息生产者发布到消息队列中间件中的总消息数、消息生产者发布消息的速率、以及每个消息消费者对消息队列中间件中消息的消费速率;
判断消息生产者发布到消息队列中间件中的总消息数是否大于预设最大消息数阈值;
若大于,根据消息生产者发布消息的速率和每个消息消费者对消息队列中间件中消息的消费速率,启动相应数量的消息消费者,使启动的消息消费者对消息队列中间件中的消息进行消费。
进一步,所述根据消息生产者发布消息的速率和每个消息消费者对消息队列中间件中消息的消费速率,启动相应数量的消息消费者,使启动的消息消费者对消息队列中间件中的消息进行消费,包括:
当所有消息消费者的消费速率的和值为预设最大消费速率时,根据消息生产者发布消息的速率、总消息数、以及预设最大消费速率,判断消息生产者发布到消息队列中间件中的总消息是否能在预设时间内消费完毕;
若能消费完毕,基于消息生产者发布消息的速率、总消息数、以及每个消费者对消息队列中间件中消息的消费速率,计算消息生产者发布到消息队列中间件中的总消息能在预设时间内消费完毕时所需启动的消息消费者的数量,并启动相应数量的消息消费者;
若不能消费完毕,依据预设最大消费速率和每个消费者对消息队列中间件中消息的消费速率,计算使扩容后所有消息消费者的消费速率的和值大于所述预设最大消费速率时所需启动的最小消息消费者数,并启动所述最小消息消费者数的消息消费者。
进一步,所述当所有消息消费者的消费速率的和值为预设最大消费速率时,判断消息生产者发布到消息队列中间件中的总消息是否能在预设时间内消费完毕,包括:
判断消息生产者发布消息的速率是否大于所述预设最大消费速率;
若大于,判定当所有消息消费者的消费速率的和值为预设最大消费速率时,消息生产者发布到消息队列中间件中的总消息不能在预设时间内消费完毕;
若不大于,判断消息生产者发布到消息队列中间件中的总消息数与速率差值的比值是否小于所述预设时间,所述速率差值为所述预设最大消费速率与消息生产者发布消息的速率的差值;
若小于,判定当所有消息消费者的消费速率的和值为预设最大消费速率时,消息生产者发布到消息队列中间件中的总消息能在预设时间内消费完毕;
若不小于,判定当所有消息消费者的消费速率的和值为预设最大消费速率时,消息生产者发布到消息队列中间件中的总消息不能在预设时间内消费完毕。
进一步,所述方法还包括:
当消息生产者发布到消息队列中间件中的总消息数不大于预设最大消息数阈值时,根据消息生产者发布消息的速率和每个消息消费者对消息队列中间件中消息的消费速率,关闭相应数量的消息消费者,关闭的消息消费者停止对消息队列中间件中的消息进行消费。
进一步,所述根据消息生产者发布消息的速率和每个消息消费者对消息队列中间件中消息的消费速率,关闭相应数量的消息消费者,包括:
判断消息生产者发布消息的速率是否小于所有消息消费者的消费速率的和值;
若是,判断当消息消费者的数量为预设最小消息消费者数时所有消息消费者的消费速率的和值是否大于消息生产者发布消息的速率;
若大于,根据消息消费者的数量与所述预设最小消息消费者数的差值关闭相应数量的消息消费者,使当前为启动状态的消息消费者的数量为所述预设最小消息消费者数;
若不大于,根据消息消费者的数量与临界数的差值关闭相应数量的消息消费者,使当前为启动状态的消息消费者的数量为临界数,所述临界数为使所有消费者的消费速率的和值大于生产者发布消息的速率时的最小消息消费者数。
本文中的设备可以是服务器、PC、PAD、手机等。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:
监测消息生产者发布到消息队列中间件中的总消息数、消息生产者发布消息的速率、以及每个消息消费者对消息队列中间件中消息的消费速率;
判断消息生产者发布到消息队列中间件中的总消息数是否大于预设最大消息数阈值;
若大于,根据消息生产者发布消息的速率和每个消息消费者对消息队列中间件中消息的消费速率,启动相应数量的消息消费者,使启动的消息消费者对消息队列中间件中的消息进行消费。
进一步,所述根据消息生产者发布消息的速率和每个消息消费者对消息队列中间件中消息的消费速率,启动相应数量的消息消费者,使启动的消息消费者对消息队列中间件中的消息进行消费,包括:
当所有消息消费者的消费速率的和值为预设最大消费速率时,根据消息生产者发布消息的速率、总消息数、以及预设最大消费速率,判断消息生产者发布到消息队列中间件中的总消息是否能在预设时间内消费完毕;
若能消费完毕,基于消息生产者发布消息的速率、总消息数、以及每个消费者对消息队列中间件中消息的消费速率,计算消息生产者发布到消息队列中间件中的总消息能在预设时间内消费完毕时所需启动的消息消费者的数量,并启动相应数量的消息消费者;
若不能消费完毕,依据预设最大消费速率和每个消费者对消息队列中间件中消息的消费速率,计算使扩容后所有消息消费者的消费速率的和值大于所述预设最大消费速率时所需启动的最小消息消费者数,并启动所述最小消息消费者数的消息消费者。
进一步,所述当所有消息消费者的消费速率的和值为预设最大消费速率时,判断消息生产者发布到消息队列中间件中的总消息是否能在预设时间内消费完毕,包括:
判断消息生产者发布消息的速率是否大于所述预设最大消费速率;
若大于,判定当所有消息消费者的消费速率的和值为预设最大消费速率时,消息生产者发布到消息队列中间件中的总消息不能在预设时间内消费完毕;
若不大于,判断消息生产者发布到消息队列中间件中的总消息数与速率差值的比值是否小于所述预设时间,所述速率差值为所述预设最大消费速率与消息生产者发布消息的速率的差值;
若小于,判定当所有消息消费者的消费速率的和值为预设最大消费速率时,消息生产者发布到消息队列中间件中的总消息能在预设时间内消费完毕;
若不小于,判定当所有消息消费者的消费速率的和值为预设最大消费速率时,消息生产者发布到消息队列中间件中的总消息不能在预设时间内消费完毕。
进一步,所述方法还包括:
当消息生产者发布到消息队列中间件中的总消息数不大于预设最大消息数阈值时,根据消息生产者发布消息的速率和每个消息消费者对消息队列中间件中消息的消费速率,关闭相应数量的消息消费者,关闭的消息消费者停止对消息队列中间件中的消息进行消费。
进一步,所述根据消息生产者发布消息的速率和每个消息消费者对消息队列中间件中消息的消费速率,关闭相应数量的消息消费者,包括:
判断消息生产者发布消息的速率是否小于所有消息消费者的消费速率的和值;
若是,判断当消息消费者的数量为预设最小消息消费者数时所有消息消费者的消费速率的和值是否大于消息生产者发布消息的速率;
若大于,根据消息消费者的数量与所述预设最小消息消费者数的差值关闭相应数量的消息消费者,使当前为启动状态的消息消费者的数量为所述预设最小消息消费者数;
若不大于,根据消息消费者的数量与临界数的差值关闭相应数量的消息消费者,使当前为启动状态的消息消费者的数量为临界数,所述临界数为使所有消费者的消费速率的和值大于生产者发布消息的速率时的最小消息消费者数。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (8)
1.一种自动化扩容缩容的控制方法,其特征在于,包括:
监测消息生产者发布到消息队列中间件中的总消息数、消息生产者发布消息的速率、以及每个消息消费者对消息队列中间件中消息的消费速率;
判断消息生产者发布到消息队列中间件中的总消息数是否大于预设最大消息数阈值;
若大于,根据消息生产者发布消息的速率和每个消息消费者对消息队列中间件中消息的消费速率,启动相应数量的消息消费者,使启动的消息消费者对消息队列中间件中的消息进行消费;
其中,所述根据消息生产者发布消息的速率和每个消息消费者对消息队列中间件中消息的消费速率,启动相应数量的消息消费者,使启动的消息消费者对消息队列中间件中的消息进行消费,包括:
当所有消息消费者的消费速率的和值为预设最大消费速率时,根据消息生产者发布消息的速率、总消息数、以及预设最大消费速率,判断消息生产者发布到消息队列中间件中的总消息是否能在预设时间内消费完毕;
若能消费完毕,基于消息生产者发布消息的速率、总消息数、以及每个消费者对消息队列中间件中消息的消费速率,计算消息生产者发布到消息队列中间件中的总消息能在预设时间内消费完毕时所需启动的消息消费者的数量,并启动相应数量的消息消费者;
若不能消费完毕,依据预设最大消费速率和每个消费者对消息队列中间件中消息的消费速率,计算使扩容后所有消息消费者的消费速率的和值大于所述预设最大消费速率时所需启动的最小消息消费者数,并启动所述最小消息消费者数的消息消费者。
2.根据权利要求1所述的方法,其特征在于,所述当所有消息消费者的消费速率的和值为预设最大消费速率时,判断消息生产者发布到消息队列中间件中的总消息是否能在预设时间内消费完毕,包括:
判断消息生产者发布消息的速率是否大于所述预设最大消费速率;
若大于,判定当所有消息消费者的消费速率的和值为预设最大消费速率时,消息生产者发布到消息队列中间件中的总消息不能在预设时间内消费完毕;
若不大于,判断消息生产者发布到消息队列中间件中的总消息数与速率差值的比值是否小于所述预设时间,所述速率差值为所述预设最大消费速率与消息生产者发布消息的速率的差值;
若小于,判定当所有消息消费者的消费速率的和值为预设最大消费速率时,消息生产者发布到消息队列中间件中的总消息能在预设时间内消费完毕;
若不小于,判定当所有消息消费者的消费速率的和值为预设最大消费速率时,消息生产者发布到消息队列中间件中的总消息不能在预设时间内消费完毕。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当消息生产者发布到消息队列中间件中的总消息数不大于预设最大消息数阈值时,根据消息生产者发布消息的速率和每个消息消费者对消息队列中间件中消息的消费速率,关闭相应数量的消息消费者,关闭的消息消费者停止对消息队列中间件中的消息进行消费。
4.根据权利要求3所述的方法,其特征在于,所述根据消息生产者发布消息的速率和每个消息消费者对消息队列中间件中消息的消费速率,关闭相应数量的消息消费者,包括:
判断消息生产者发布消息的速率是否小于所有消息消费者的消费速率的和值;
若是,判断当消息消费者的数量为预设最小消息消费者数时所有消息消费者的消费速率的和值是否大于消息生产者发布消息的速率;
若大于,根据消息消费者的数量与所述预设最小消息消费者数的差值关闭相应数量的消息消费者,使当前为启动状态的消息消费者的数量为所述预设最小消息消费者数;
若不大于,根据消息消费者的数量与临界数的差值关闭相应数量的消息消费者,使当前为启动状态的消息消费者的数量为临界数,所述临界数为使所有消费者的消费速率的和值大于生产者发布消息的速率时的最小消息消费者数。
5.一种自动化扩容缩容的控制装置,其特征在于,包括:
监测单元,用于监测消息生产者发布到消息队列中间件中的总消息数、消息生产者发布消息的速率、以及每个消息消费者对消息队列中间件中消息的消费速率;
第一判断单元,用于判断消息生产者发布到消息队列中间件中的总消息数是否大于预设最大消息数阈值;
若是,触发扩容控制单元,用于根据消息生产者发布消息的速率和每个消息消费者对消息队列中间件中消息的消费速率,启动相应数量的消息消费者,使启动的消息消费者对消息队列中间件中的消息进行消费;
其中,所述扩容控制单元包括:
第一判断子单元,用于当所有消息消费者的消费速率的和值为预设最大消费速率时,根据消息生产者发布消息的速率、总消息数、以及预设最大消费速率,判断消息生产者发布到消息队列中间件中的总消息是否能在预设时间内消费完毕;若是,触发第一扩容控制子单元,若否,触发第二扩容控制子单元;
所述第一扩容控制子单元,用于基于消息生产者发布消息的速率、总消息数、以及每个消费者对消息队列中间件中消息的消费速率,计算消息生产者发布到消息队列中间件中的总消息能在预设时间内消费完毕时所需启动的消息消费者的数量,并启动相应数量的消息消费者;
所述第二扩容控制子单元,用于依据预设最大消费速率和每个消费者对消息队列中间件中消息的消费速率,计算使扩容后所有消息消费者的消费速率的和值大于所述预设最大消费速率时所需启动的最小消息消费者数,并启动所述最小消息消费者数的消息消费者。
6.根据权利要求5所述的装置,其特征在于,所述第一判断子单元,具体用于判断消息生产者发布消息的速率是否大于所述预设最大消费速率;若大于,判定当所有消息消费者的消费速率的和值为预设最大消费速率时,消息生产者发布到消息队列中间件中的总消息不能在预设时间内消费完毕;若不大于,判断消息生产者发布到消息队列中间件中的总消息数与速率差值的比值是否小于所述预设时间,所述速率差值为所述预设最大消费速率与消息生产者发布消息的速率的差值;若小于,判定当所有消息消费者的消费速率的和值为预设最大消费速率时,消息生产者发布到消息队列中间件中的总消息能在预设时间内消费完毕;若不小于,判定当所有消息消费者的消费速率的和值为预设最大消费速率时,消息生产者发布到消息队列中间件中的总消息不能在预设时间内消费完毕。
7.一种存储介质,其特征在于,所述存储介质包括存储的程序,
其中,在所述程序运行时控制所述存储介质所在的设备执行如权利要求1-4中任一项所述的自动化扩容缩容的控制方法。
8.一种处理器,其特征在于,所述处理器用于运行程序,
其中,所述程序运行时执行如权利要求1-4中任一项所述的自动化扩容缩容的控制方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811146691.0A CN110971430B (zh) | 2018-09-29 | 2018-09-29 | 自动化扩容缩容的控制方法、装置、存储介质及处理器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811146691.0A CN110971430B (zh) | 2018-09-29 | 2018-09-29 | 自动化扩容缩容的控制方法、装置、存储介质及处理器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110971430A CN110971430A (zh) | 2020-04-07 |
CN110971430B true CN110971430B (zh) | 2022-09-09 |
Family
ID=70027158
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811146691.0A Active CN110971430B (zh) | 2018-09-29 | 2018-09-29 | 自动化扩容缩容的控制方法、装置、存储介质及处理器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110971430B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112612607A (zh) * | 2020-12-16 | 2021-04-06 | 平安消费金融有限公司 | 基于消息队列的数据处理方法、装置、计算机设备和介质 |
CN112463416A (zh) * | 2020-12-17 | 2021-03-09 | 中国农业银行股份有限公司 | 消息队列中数据处理的方法、装置、设备及存储介质 |
CN113055483A (zh) * | 2021-03-19 | 2021-06-29 | 中国工商银行股份有限公司 | 消息中间件数据处理方法、装置及系统 |
CN113254209B (zh) * | 2021-05-28 | 2023-08-29 | 北京奇艺世纪科技有限公司 | 一种容量管理方法、装置、电子设备及可读存储介质 |
CN114490091B (zh) * | 2022-04-06 | 2022-07-08 | 江苏金恒信息科技股份有限公司 | 工业数据采集管理系统中监控规则引擎性能的方法及装置 |
CN114978889B (zh) * | 2022-05-13 | 2024-04-16 | 厦门兆翔智能科技有限公司 | 一种机场企业服务总线系统 |
CN115964254B (zh) * | 2023-03-16 | 2023-06-27 | 麒麟软件有限公司 | 一种动态调整监控数据处理速度的方法、系统及介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9614794B2 (en) * | 2013-07-11 | 2017-04-04 | Apollo Education Group, Inc. | Message consumer orchestration framework |
WO2017032422A1 (en) * | 2015-08-27 | 2017-03-02 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and system for scaling of big data analytics |
CN106330750A (zh) * | 2016-08-17 | 2017-01-11 | 成都聚美优品科技有限公司 | 一种可控式大并发分布式消息队列推送方法 |
CN106598760B (zh) * | 2016-12-19 | 2020-07-10 | 北京奇虎科技有限公司 | 消息队列的消费方法及装置 |
CN107197015B (zh) * | 2017-05-23 | 2020-09-08 | 阿里巴巴集团控股有限公司 | 一种基于消息队列系统的消息处理方法和装置 |
-
2018
- 2018-09-29 CN CN201811146691.0A patent/CN110971430B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110971430A (zh) | 2020-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110971430B (zh) | 自动化扩容缩容的控制方法、装置、存储介质及处理器 | |
US11073891B2 (en) | Distributed power budgeting | |
EP3129880B1 (en) | Method and device for augmenting and releasing capacity of computing resources in real-time stream computing system | |
CN107770088B (zh) | 一种流量控制方法及装置 | |
US20160378570A1 (en) | Techniques for Offloading Computational Tasks between Nodes | |
US20080109814A1 (en) | Apparatus and method for balancing load in multi-core processor system | |
CN110618869B (zh) | 一种资源管理方法、装置及设备 | |
CN107818012B (zh) | 一种数据处理方法、装置及电子设备 | |
CN108243032B (zh) | 一种服务等级信息的获取方法、装置及设备 | |
CN111104227B (zh) | 一种K8s平台的资源控制方法、装置及相关组件 | |
CN111866045B (zh) | 信息处理方法及其装置、计算机系统及计算机可读介质 | |
CN109857516B (zh) | 基于容器的集群迁移方法及装置 | |
CN110716813A (zh) | 数据流处理方法、装置、可读存储介质及处理器 | |
WO2021174382A1 (zh) | 一种消息拉取方法、装置以及计算机存储介质 | |
CN108806679B (zh) | 语音唤醒方法及装置 | |
CN113992525A (zh) | 一种应用的容器数量调节方法及装置 | |
CN114189482A (zh) | 一种集群资源的控制方法、装置和系统 | |
CN110096339B (zh) | 一种基于系统负载实现的扩缩容配置推荐系统及方法 | |
CN114827049A (zh) | 一种基于kafka的堆积数据消费方法、终端设备及存储介质 | |
CN113590285A (zh) | 一种用于线程池参数动态设置的方法、系统及设备 | |
CN112596898A (zh) | 一种任务执行器调度的方法及装置 | |
CN111338803A (zh) | 一种线程处理方法和装置 | |
CN112039713B (zh) | 一种满足用户需求的用于云计算的数据传输方法及系统 | |
CN115934304A (zh) | 一种数据处理方法、装置、计算机设备及可读存储介质 | |
CN111090502B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |