CN111970326A - 集群流量平衡方法、装置、存储介质及终端 - Google Patents
集群流量平衡方法、装置、存储介质及终端 Download PDFInfo
- Publication number
- CN111970326A CN111970326A CN202010710785.7A CN202010710785A CN111970326A CN 111970326 A CN111970326 A CN 111970326A CN 202010710785 A CN202010710785 A CN 202010710785A CN 111970326 A CN111970326 A CN 111970326A
- Authority
- CN
- China
- Prior art keywords
- write
- flow
- cluster
- topic data
- traffic
- 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.)
- Granted
Links
Images
Classifications
-
- 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/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/07—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail characterised by the inclusion of specific contents
- H04L51/18—Commands or executable codes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例公开了一种集群流量平衡方法、装置、存储介质及终端,其中,所述方法包括:采集消息队列中各集群的第一写入流量,获取所述各集群的第一写入流量的标准差;当所述标准差大于流量平衡阈值时,获取所述各集群的第一写入流量中最大第一写入流量和最小第一写入流量;将所述最大第一写入流量对应的第一集群中的第一topic数据迁移至所述最小第一写入流量对应的第二集群中。采用所述集群流量平衡方法可以避免因集群写入流量过大而使后续写入该集群的消息被延迟的问题。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种集群流量平衡方法、装置、存储介质及终端。
背景技术
消息队列(Message Queue,MQ)是一种应用程序对应用程序的通信方法。采用Java语言开发的分布式消息系统RocketMQ具有高性能、高可靠、高实时、分布式的特点,属MQ中的一种。
基于消息队列的通信方法为:消息发布者向消息队列中发布消息,消息队列中的不同topic对所述发布消息进行流转并发送给消费者。消息队列中的不同topic均有各自的写入流量,一个集群内包含多个topic时,该集群的写入流量即为所述多个topic的写入流量之和;部署多套集群的消息队列中,不同集群之间的写入流量不同,当某一集群的写入流量达到负载极限时,后续写入该集群的消息将会被延迟,集群的可用性受到影响。
发明内容
本申请实施例提供了一种集群流量平衡方法、装置、存储介质及终端,所述方法可以解决集群写入流量达到负载极限时,后续写入该集群的消息将会被延迟的问题。所述技术方案如下:
第一方面,本申请实施例提供了一种集群流量平衡方法,所述方法包括:
采集消息队列中各集群的第一写入流量,获取所述各集群的第一写入流量的标准差;
当所述标准差大于流量平衡阈值时,获取所述各集群的第一写入流量中最大第一写入流量和最小第一写入流量;
将所述最大第一写入流量对应的第一集群中的第一topic数据迁移至所述最小第一写入流量对应的第二集群中。
第二方面,本申请实施例提供了一种集群流量平衡装置,所述装置包括:
标准差获取模块,用于采集消息队列中各集群的第一写入流量,获取所述各集群的第一写入流量的标准差;
流量平衡判断模块,用于当所述标准差大于流量平衡阈值时,获取所述各集群的第一写入流量中最大第一写入流量和最小第一写入流量;
流量平衡模块,用于将所述最大第一写入流量对应的第一集群中的第一topic数据迁移至所述最小第一写入流量对应的第二集群中。
第三方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任一项方法的步骤。
第四方面,本申请实施例提供了一种终端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任一项方法的步骤。
本申请一些实施例提供的技术方案带来的有益效果至少包括:
本申请实施例提供的集群流量平衡方法,采集消息队列中各集群的第一写入流量,获取所述各集群的第一写入流量的标准差;当所述标准差大于流量平衡阈值时,获取所述各集群的第一写入流量中最大第一写入流量和最小第一写入流量;将所述最大第一写入流量对应的第一集群中的第一topic数据迁移至所述最小第一写入流量对应的第二集群中。对消息队列中各集群的第一写入流量进行监控,根据采集的各集群的第一写入流量计算标准差,通过标准差衡量消息队列中各集群间是否流量平衡,当所述标准差大于流量平衡阈值时,对集群中的topic数据进行迁移,从而实现对消息队列中集群流量的平衡管控。采用所述集群流量平衡方法可以避免因集群写入流量过大而使后续写入该集群的消息被延迟的问题。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种集群流量平衡方法的流程示意图;
图2是本申请实施例提供的一种集群流量平衡方法的流程示意图;
图3是本申请实施例提供的一种集群流量平衡方法的流程示意图;
图4是本申请实施例提供的一种集群流量平衡方法的架构示意图;
图5是本申请实施例提供的一种集群流量平衡装置的结构示意图;
图6是本申请实施例提供的一种集群流量平衡装置的结构示意图;
图7是本申请实施例提供的一种集群流量平衡装置的结构示意图;
图8是本申请实施例提供的一种终端结构框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施例方式作进一步地详细描述。
下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请中的具体含义。此外,在本申请的描述中,除非另有说明,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
下面将结合附图1-附图4,对本申请实施例提供的集群流量平衡方法进行详细介绍。
请参见图1,为本申请实施例提供的一种集群流量平衡方法的流程示意图。
如图1所示,本申请实施例的所述方法可以包括以下步骤:
S101,采集消息队列中各集群的第一写入流量,获取所述各集群的第一写入流量的标准差。
写入流量也就是发布至消息队列中的消息流量。消息不同,消息队列中各集群的写入流量也会存在差异。将消息队列集群的写入流量称为第一写入流量。
对消息队列中各集群的写入流量进行监控,采集所述各集群的第一写入流量并计算第一写入流量均值,根据所述各集群的第一写入流量以及所述第一写入流量均值计算获取所述第一写入流量的标准差,即:
其中,σ表示消息队列中各集群第一写入流量的标准差,Xi表示各集群的第一写入流量,M为各集群第一写入流量均值,N为消息队列中集群的个数。
标准差可以衡量消息队列中各集群第一写入流量的离散程度,将所述标准差与流量平衡阈值进行比较,根据比较结果可以确定所述消息队列中各集群之间的流量是否处于平衡状态。
所述流量平衡阈值是根据经验或者基于历史数据而获得的标准差临界值。
当所述各集群第一写入流量的标准差σ小于或者等于所述流量平衡阈值时,所述消息队列中各集群之间的流量处于平衡状态,继续监控所述消息队列中各集群的写入流量。
S102,当所述标准差大于流量平衡阈值时,获取所述各集群的第一写入流量中最大第一写入流量和最小第一写入流量。
当所述各集群第一写入流量的标准差σ大于所述流量平衡阈值时,所述消息队列中各集群之间的流量处于失衡状态,也就是存在写入流量过大甚至是逼近负载极限的集群使得消息队列各集群之间的写入流量不均衡。对所述处于失衡状态的消息队列进行集群流量平衡管控,从所述消息队列各集群的第一写入流量中确定出最大第一写入流量以及最小第一写入流量。
集群流量平衡管控是指将所述最大第一写入流量对应的集群中的topic数据迁移至消息队列中的其他集群中,从而实现集群流量平衡。
本实施例是将所述最大第一写入流量对应的集群中的topic数据迁移至所述最小第一写入流量对应的集群中,其他实施例中,还可以根据实际策略将所述最大第一写入流量对应的集群中的topic数据迁移至消息队列中的其他任意一个集群中。
S103,将所述最大第一写入流量对应的第一集群中的第一topic数据迁移至所述最小第一写入流量对应的第二集群中。
将所述最大第一写入流量对应的集群称为第一集群,将所述最小第一写入流量对应的集群称为第二集群。平衡集群流量进行数据迁移时,一次只能迁移一个topic数据,定义被迁移的topic数据为第一topic数据。所述第一topic数据可以是所述第一集群中的任意一个topic数据。
例如,线上部署有3个消息队列集群,分别为集群1、集群2和集群3,监控采集所述3个集群的写入流量分别为90M/s、60M/s和60M/s,计算获得所述3个集群的写入流量标准差为20M/s,假设预置的流量平衡阈值为18M/s,那么根据数值比较结果可以确定所述3个集群的写入流量当前处于不平衡状态,集群1的写入流量继续增加会导致该集群写入延迟增高,对所述3个集群进行流量平衡,在写入流量最大的集群1中任选一个topic数据,并将其迁移至写入流量最小的Cluster-E中。
迁移topic数据降低了集群1的第一写入流量,一方面避免了集群1因第一写入流量过大而导致的服务不可用问题,另一方面增加了集群1之外其余2个集群的第一写入流量,使得集群1与其余2个集群之间的第一写入流量越趋平衡。
此外,若预置的流量平衡阈值为20M/s,那么所述3个集群的写入流量即处于平衡状态,无需进行数据迁移。可选实施例中,还可以在消息队列的写入流量处于平衡状态时继续对各集群的第一写入流量进行监控,在平衡计算结果显示流量失衡时再次进行数据迁移。
本申请实施例提供的集群流量平衡方法,采集消息队列中各集群的第一写入流量,获取所述各集群的第一写入流量的标准差;当所述标准差大于流量平衡阈值时,获取所述各集群的第一写入流量中最大第一写入流量和最小第一写入流量;将所述最大第一写入流量对应的第一集群中的第一topic数据迁移至所述最小第一写入流量对应的第二集群中。对消息队列中各集群的第一写入流量进行监控,根据采集的各集群的第一写入流量计算标准差,通过标准差衡量消息队列中各集群间是否流量平衡,当所述标准差大于流量平衡阈值时,对集群中的topic数据进行迁移,从而实现对消息队列中集群流量的平衡管控。采用所述集群流量平衡方法可以避免因集群写入流量过大而使后续写入该集群的消息被延迟的问题。
请参见图2,为本申请实施例提供的一种集群流量平衡方法的流程示意图。
如图2所示,本申请实施例的所述方法可以包括以下步骤:
S201,采集消息队列中各集群的第一写入流量,获取所述各集群的第一写入流量的标准差。
本步具体骤具体可参见S101,此处不再赘述。
S202,当所述标准差大于流量平衡阈值时,获取所述各集群的第一写入流量中最大第一写入流量和最小第一写入流量。
本步具体骤具体可参见S102,此处不再赘述。
S203,获取所述各集群的第一写入流量的均值,计算所述最大第一写入流量与所述均值的差值。
均值反应的是消息队列中各集群第一写入流量的中间值信息,当消息队列中各集群的第一写入流量失衡时,获取集群中最大第一写入流量与所述均值的差值,所述差值示意所述最大第一写入流量超出所述消息队列中各集群写入流量中间值的部分,为目标迁出写入流量。迁出所述最大第一写入流量与所述均值的差值部分,可以使所述最大第一写入流量对应的第一集群的写入流量接近于所述均值,消息队列中各集群间的第一写入流量将更均衡。
S204,获取所述最大第一写入流量对应的第一集群中第二写入流量小于或者等于所述差值的topic数据集合,获取所述topic数据集合中第二写入流量最大的第一topic数据。
将集群中topic数据的写入流量称为第二写入流量,不同topic数据的写入流量不同,同一集群中可能存在第二写入流量相同的多个topic数据。获取所述第一集群中第二写入流量小于或者等于所述差值的topic数据集合,将所述topic数据集合中最大第二写入流量对应的topic数据作为第一topic数据进行迁移。选择将所述第一集群中最接近、且不大于所述差值的topic数据作为被迁移对象进行迁移,可以最大程度地使集群间的写入流量趋近平衡。
其他实施例中,若所述第一topic数据包括多个,则可将所述第一topic数据中的任意一个topic数据作为被迁移对象进行迁移。
S205,获取所述最大第一写入流量对应的第一集群中第二写入流量最小的topic数据,将所述第一集群中第二写入流量最小的topic数据作为第一topic数据。
可选实施例中,被迁移的topic数据还可以是所述第一集群中第二写入流量最小的topic数据。
选择迁移第二写入流量最小的topic数据可以确保其在迁进目标集群时不会对目标集群后续消息的写入产生较大影响,同时也兼顾了消息队列流量平衡。
S206,将所述第一topic数据迁移至所述最小第一写入流量对应的第二集群中。
本实施例是将所述第一topic数据迁移至所述最小第一写入流量对应的集群中,其他实施例中,还可以根据实际策略将所述第一topic数据迁移至消息队列中的其他任意一个集群中。
S207,重复执行所述采集消息队列中各集群的第一写入流量,获取所述各集群的第一写入流量的标准差的步骤。
所述第一topic数据迁移完毕后,继续对所述消息队列各集群的第一写入流量进行监控,并再次计算标准差,当所述标准差仍大于所述流量平衡阈值时,进行第二次数据迁移:继续获取所述消息队列中最大第一写入流量并确定所述最大第一写入流量对应的第一集群,将所述第一集群中第一个不大于所述差值的topic数据迁移至最小写入流量对应的第二集群中。
也就是说,所述集群流量平衡步骤是不断循环的,在所述消息队列各集群间的第一写入流量始终未达到平衡时,将持续循环监控采集、平衡计算、数据迁移的步骤,直至所述消息队列各集群间的第一写入流量达到平衡。
S208,当所述标准差小于或者等于所述流量平衡阈值时,停止数据迁移。
所述消息队列各集群间的第一写入流量达到平衡后,还可以继续对所述各集群的第一写入流量进行监控,在平衡计算结果显示流量失衡时再次进行数据迁移。
例如,线上部署有5个RocketMQ集群,分别为Cluster-A、Cluster-B、Cluster-C、Cluster-D和Cluster-E,监控采集所述5个集群的第一写入流量分别为100M/s、70M/s、80M/s、60M/s和40M/s,计算获得所述5个集群的第一写入流量的均值为70M/s,标准差为20M/s,若预置的流量平衡阈值为15M/s,那么根据数值比较结果可以确定所述5个集群的写入流量当前处于不平衡状态,Cluster-A的写入流量继续增加会导致该集群写入延迟增高,对所述5个集群进行流量平衡,确定所述消息队列中最大第一写入流量与所述均值的差值为30M/s,在Cluster-A中找到第一个写入流量最接近于30M/s、且不大于30M/s的目标topic数据,将所述目标topic数据迁移至第一写入流量最小的Cluster-E中。
迁移目标topic数据降低了Cluster-A的第一写入流量,一方面避免了Cluster-A因第一写入流量过大而导致的服务不可用问题,另一方面增加了Cluster-A之外其他集群的第一写入流量,使得Cluster-A与其他集群之间的第一写入流量越趋平衡。
本实施例提供的集群流量平衡方法,确定消息队列中各集群的第一写入流量的标准差大于流量平衡阈值时,计算各集群中最大第一写入流量与所述各集群的第一写入流量的均值的差值,在所述最大第一写入流量对应的第一集群中找到最接近且不大于所述差值的topic数据进行迁移。选择将所述第一集群中最接近、且不大于所述差值的topic数据作为被迁移对象进行迁移,可以最大程度地使集群间的写入流量趋近平衡。迁移完成后还要继续对所述各集群的第一写入流量进行监控采集、流量平衡计算,若所述消息队列仍处于流量失衡状态则要继续迁移topic数据,直至达到平衡。所述集群流量平衡方法是一个不断循环的过程。
请参见图3,为本申请实施例提供的一种集群流量平衡方法的流程示意图。
如图3所示,本申请实施例的所述方法可以包括以下步骤:
S301,采集消息队列中各topic数据的第二写入流量。
对消息队列中各topic数据的第二写入流量进行监控,定时采集所述各topic数据的第二写入流量。
S302,基于所述各topic数据的第二写入流量以及集群与topic数据的对应关系,计算所述消息队列中各集群的第一写入流量。
集群的第一写入流量由各个topic数据的第二写入流量构成。
消息队列中每个集群都有各自对应的topic列表,根据列表对应关系获取各集群分别对应的至少一个topic数据,再基于所采集的各topic数据的第二写入流量计算获取消息队列中各集群的第一写入流量。
例如,消息队列中的集群A对应3个topic数据a、b、c,所述3个topic数据的第二写入流量之和即为所述集群A的第一写入流量。
S303,确定存在第二写入流量的增长幅度大于增长幅度阈值的第二topic数据时,获取所述各集群的第一写入流量的标准差。
除过上述实施例中集群的第一写入流量猛增会使消息队列流量失衡、后续消息写入延迟之外,集群中单个topic数据的第二写入流量猛增也会影响该集群中其他topic数据消息的写入。因此,可行方式中还可以对消息队列中topic数据的第二写入流量进行监控。
将同一集群里各topic数据的第二写入流量进行比较,当其中一个topic数据的第二写入流量相比于该集群中其他topic数据的第二写入流量有明显增长趋势时,对消息队列进行流量平衡计算。
其中,有明显增长趋势可以具体限定为:相比于集群中其他topic数据的第二写入流量增长了30%或者50%。
当集群中出现第二写入流量猛增的topic数据时,仍然要对消息队列中的各集群进行流量平衡计算,也就是根据所述各集群的第一写入流量计算第一写入流量标准差、将所述第一写入流量标准差与流量平衡阈值进行比较、基于比较结果确定是否要进行topic数据迁移。
当所述标准差小于或者等于所述流量平衡阈值时,表明所述有明显增长趋势的topic数据并未使消息队列中各集群间的第一写入流量失衡,此时无需进行数据迁移,继续监控所述消息队列中各topic数据的第二写入流量。
S304,当所述标准差大于流量平衡阈值时,获取所述各集群的第一写入流量中最大第一写入流量和最小第一写入流量。
当所述标准差大于所述流量平衡阈值时,表明所述有明显增长趋势的topic数据已使消息队列中各集群间的第一写入流量失衡,对所述消息队列进行流量平衡管控,从所述消息队列各集群的第一写入流量中确定出最大第一写入流量以及最小第一写入流量,并执行下一步骤。
S305,生成调度任务,将所述最大第一写入流量对应的第一集群中的第一topic数据迁移至所述最小第一写入流量对应的第二集群中。
确定消息队列中各集群的第一写入流量失衡时,生成调度任务,将所述最大第一写入流量对应的第一集群中的第一topic数据迁移至所述最小第一写入流量对应的第二集群中。平衡集群流量进行数据迁移时,一次只能迁移一个topic数据。
本实施例是将所述最大第一写入流量对应的集群中的topic数据迁移至所述最小第一写入流量对应的集群中,其他实施例中,还可以根据实际策略将所述最大第一写入流量对应的集群中的topic数据迁移至消息队列中的其他任意一个集群中。
请参见图4,为本申请提供的一种集群流量平衡方法的架构示意图。
图中所示架构图主要分为两部分,一是监控采集,二是流量调度。在第一部分中,监控采集服务要对消息队列中的N个集群的第一写入流量(或者是对各topic数据的第二写入流量)进行监控,定时采集N个集群的第一写入流量(或者是对各topic数据的第二写入流量)并传至数据库中进行存储;在第二部分中,流量调度服务要根据数据库中存储的数据进行流量平衡计算,当计算结果显示消息队列流量失衡时,向调度任务管理发出调度任务请求,生成调度任务,实施topic数据迁移。
集群中单个topic数据的第二写入流量猛增会对消息队列流量的平衡状态产生影响,因此,本实施例提供的集群流量平衡方法,采集消息队列中各topic数据的第二写入流量,基于所述各topic数据的第二写入流量以及集群与topic数据的对应关系,计算所述消息队列中各集群的第一写入流量,确定存在第二写入流量的增长幅度大于增长幅度阈值的第二topic数据时,获取所述各集群的第一写入流量的标准差,当所述标准差大于流量平衡阈值时,获取所述各集群的第一写入流量中最大第一写入流量和最小第一写入流量,生成调度任务,将所述最大第一写入流量对应的第一集群中的第一topic数据迁移至所述最小第一写入流量对应的第二集群中。所述方法在topic数据第二写入流量出现明显增长的情况下便对消息队列流量是否失衡进行判断,能及时发现流量失衡问题并进行流量平衡管控,提高了集群流量平衡效率。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
请参见图5,为本申请一个示例性实施例提供的集群流量平衡装置的结构示意图。该集群流量平衡装置可以通过软件、硬件或者两者的结合实现成为终端的全部或一部分,还可以作为独立的模块集成于服务器上。本申请实施例中的集群流量平衡装置应用于终端,所述该装置1包括标准差获取模块11、流量平衡判断模块12和流量平衡模块13,其中:
标准差获取模块11,用于采集消息队列中各集群的第一写入流量,获取所述各集群的第一写入流量的标准差;
流量平衡判断模块12,用于当所述标准差大于流量平衡阈值时,获取所述各集群的第一写入流量中最大第一写入流量和最小第一写入流量;
流量平衡模块13,用于将所述最大第一写入流量对应的第一集群中的第一topic数据迁移至所述最小第一写入流量对应的第二集群中。
请参见图6,为本申请一个示例性实施例提供的集群流量平衡装置的结构示意图。
可选的,如图6所示,本申请实施例提供的所述集群流量平衡装置1中的流量平衡模块13包括:
差值计算单元131,用于获取所述各集群的第一写入流量的均值,计算所述最大第一写入流量与所述均值的差值;
第一topic数据获取单元132,用于获取所述最大第一写入流量对应的第一集群中第二写入流量小于或者等于所述差值的topic数据集合,获取所述topic数据集合中第二写入流量最大的第一topic数据;
流量平衡单元133,用于将所述第一topic数据迁移至所述最小第一写入流量对应的第二集群中;
其他实施例中,所述流量平衡模块13还具体用于:
获取所述最大第一写入流量对应的第一集群中第二写入流量最小的第一topic数据;
将所述第一topic数据迁移至所述最小第一写入流量对应的第二集群中。
其他实施例中,当所述第一topic数据包括多个时,所述流量平衡单元133具体用于:
将所述第一topic数据中的任一topic数据迁移至所述最小第一写入流量对应的第二集群中。
所述装置1还包括:
流量平衡循环模块14,用于重复执行所述采集消息队列中各集群的第一写入流量,获取所述各集群的第一写入流量的标准差的步骤。
数据迁移停止模块15,用于当所述标准差小于或者等于所述流量平衡阈值时,停止数据迁移。
请参见图7,为本申请一个示例性实施例提供的集群流量平衡装置的结构示意图。
可选的,如图7所示,本申请实施例提供的所述集群流量平衡装置1中的标准差获取模块11包括:
第二写入流量采集单元111,用于采集消息队列中各topic数据的第二写入流量;
第一写入流量计算单元112,用于基于所述各topic数据的第二写入流量以及集群与topic数据的对应关系,计算所述消息队列中各集群的第一写入流量;
标准差获取单元113,用于确定存在第二写入流量的增长幅度大于增长幅度阈值的第二topic数据时,获取所述各集群的第一写入流量的标准差。
所述流量平衡模块13具体用于:
生成调度任务,将所述最大第一写入流量对应的第一集群中的第一topic数据迁移至所述最小第一写入流量对应的第二集群中。
需要说明的是,上述实施例提供的集群流量平衡装置在执行集群流量平衡方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的集群流量平衡装置与集群流量平衡方法实施例属于同一构思,其体现实现过程详见方法实施例,这里不再赘述。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
本申请实施例提供的集群流量平衡装置,采集消息队列中各集群的第一写入流量,获取所述各集群的第一写入流量的标准差;当所述标准差大于流量平衡阈值时,获取所述各集群的第一写入流量中最大第一写入流量和最小第一写入流量;将所述最大第一写入流量对应的第一集群中的第一topic数据迁移至所述最小第一写入流量对应的第二集群中。对消息队列中各集群的第一写入流量进行监控,根据采集的各集群的第一写入流量计算标准差,通过标准差衡量消息队列中各集群间是否流量平衡,当所述标准差大于流量平衡阈值时,对集群中的topic数据进行迁移,从而实现对消息队列中集群流量的平衡管控。采用所述集群流量平衡方法可以避免因集群写入流量过大而使后续写入该集群的消息被延迟的问题。
本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述任一实施例方法的步骤。其中,计算机可读存储介质可以包括但不限于任何类型的盘,包括软盘、光盘、DVD、CD-ROM、微型驱动器以及磁光盘、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、闪速存储器设备、磁卡或光卡、纳米系统(包括分子存储器IC),或适合于存储指令和/或数据的任何类型的媒介或设备。
本申请实施例还提供了一种终端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现上述任一实施例方法的步骤。
请参见图8,为本申请实施例提供的一种终端结构框图。
如图8所示,终端100包括有:处理器801和存储器802。
本申请实施例中,处理器801为计算机系统的控制中心,可以是实体机的处理器,也可以是虚拟机的处理器。处理器801可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器801可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable LogicArray,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器801也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(CentralProcessing Unit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。
在本申请实施例中,所述处理器801用于:
采集消息队列中各集群的第一写入流量,获取所述各集群的第一写入流量的标准差;
当所述标准差大于流量平衡阈值时,获取所述各集群的第一写入流量中最大第一写入流量和最小第一写入流量;
将所述最大第一写入流量对应的第一集群中的第一topic数据迁移至所述最小第一写入流量对应的第二集群中。
进一步的,所述将所述最大第一写入流量对应的第一集群中的第一topic数据迁移至所述最小第一写入流量对应的第二集群中,包括:
获取所述各集群的第一写入流量的均值,计算所述最大第一写入流量与所述均值的差值;
获取所述最大第一写入流量对应的第一集群中第二写入流量小于或者等于所述差值的topic数据集合,获取所述topic数据集合中第二写入流量最大的第一topic数据;
将所述第一topic数据迁移至所述最小第一写入流量对应的第二集群中。
进一步的,所述将所述最大第一写入流量对应的第一集群中的第一topic数据迁移至所述最小第一写入流量对应的第二集群中,包括:
获取所述最大第一写入流量对应的第一集群中第二写入流量最小的第一topic数据;
将所述第一topic数据迁移至所述最小第一写入流量对应的第二集群中。
进一步的,当所述第一topic数据包括多个时,所述将所述第一topic数据迁移至所述最小第一写入流量对应的第二集群中,包括:
将所述第一topic数据中的任一topic数据迁移至所述最小第一写入流量对应的第二集群中。
进一步的,所述采集消息队列中各集群的第一写入流量,包括:
采集消息队列中各topic数据的第二写入流量;
基于所述各topic数据的第二写入流量以及集群与topic数据的对应关系,计算所述消息队列中各集群的第一写入流量。
进一步的,所述获取所述各集群的第一写入流量的标准差,包括:
确定存在第二写入流量的增长幅度大于增长幅度阈值的第二topic数据时,获取所述各集群的第一写入流量的标准差。
进一步的,所述方法还包括:
重复执行所述采集消息队列中各集群的第一写入流量,获取所述各集群的第一写入流量的标准差的步骤。
进一步的,所述方法还包括:
当所述标准差小于或者等于所述流量平衡阈值时,停止数据迁移。
进一步的,所述将所述最大第一写入流量对应的第一集群中的第一topic数据迁移至所述最小第一写入流量对应的第二集群中,包括:
生成调度任务,将所述最大第一写入流量对应的第一集群中的第一topic数据迁移至所述最小第一写入流量对应的第二集群中。
存储器802可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器802还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在本申请的一些实施例中,存储器802中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器801所执行以实现本申请实施例中的方法。
一些实施例中,终端100还包括有:外围设备接口803和至少一个外围设备。处理器801、存储器802和外围设备接口803之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口803相连。具体地,外围设备包括:显示屏804、摄像头805和音频电路806中的至少一种。
外围设备接口803可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器801和存储器802。在本申请的一些实施例中,处理器801、存储器802和外围设备接口803被集成在同一芯片或电路板上;在本申请的一些其他实施例中,处理器801、存储器802和外围设备接口803中的任意一个或两个可以在单独的芯片或电路板上实现。本申请实施例对此不作具体限定。
显示屏804用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏804是触摸显示屏时,显示屏804还具有采集在显示屏804的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器801进行处理。此时,显示屏804还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在本申请的一些实施例中,显示屏804可以为一个,设置终端100的前面板;在本申请的另一些实施例中,显示屏804可以为至少两个,分别设置在终端100的不同表面或呈折叠设计;在本申请的再一些实施例中,显示屏804可以是柔性显示屏,设置在终端100的弯曲表面上或折叠面上。甚至,显示屏804还可以设置成非矩形的不规则图形,也即异形屏。显示屏804可以采用LCD(Liquid Crystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。
摄像头805用于采集图像或视频。可选地,摄像头805包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在本申请的一些实施例中,摄像头805还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路806可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器801进行处理。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端100的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。
电源807用于为终端100中的各个组件进行供电。电源807可以是交流电、直流电、一次性电池或可充电电池。当电源807包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。
本申请实施例中示出的终端结构框图并不构成对终端100的限定,终端100可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
在本申请中,术语“第一”、“第二”等仅用于描述的目的,而不能理解为指示或暗示相对重要性或顺序;术语“多个”则指两个或两个以上,除非另有明确的限定。术语“安装”、“相连”、“连接”、“固定”等术语均应做广义理解,例如,“连接”可以是固定连接,也可以是可拆卸连接,或一体地连接;“相连”可以是直接相连,也可以通过中间媒介间接相连。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本申请中的具体含义。
本申请的描述中,需要理解的是,术语“上”、“下”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或单元必须具有特定的方向、以特定的方位构造和操作,因此,不能理解为对本申请的限制。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (12)
1.一种集群流量平衡方法,其特征在于,所述方法包括:
采集消息队列中各集群的第一写入流量,获取所述各集群的第一写入流量的标准差;
当所述标准差大于流量平衡阈值时,获取所述各集群的第一写入流量中最大第一写入流量和最小第一写入流量;
将所述最大第一写入流量对应的第一集群中的第一topic数据迁移至所述最小第一写入流量对应的第二集群中。
2.根据权利要求1所述的方法,其特征在于,所述将所述最大第一写入流量对应的第一集群中的第一topic数据迁移至所述最小第一写入流量对应的第二集群中,包括:
获取所述各集群的第一写入流量的均值,计算所述最大第一写入流量与所述均值的差值;
获取所述最大第一写入流量对应的第一集群中第二写入流量小于或者等于所述差值的topic数据集合,获取所述topic数据集合中第二写入流量最大的第一topic数据;
将所述第一topic数据迁移至所述最小第一写入流量对应的第二集群中。
3.根据权利要求1所述的方法,其特征在于,所述将所述最大第一写入流量对应的第一集群中的第一topic数据迁移至所述最小第一写入流量对应的第二集群中,包括:
获取所述最大第一写入流量对应的第一集群中第二写入流量最小的topic数据,将所述第一集群中第二写入流量最小的topic数据作为第一topic数据;
将所述第一topic数据迁移至所述最小第一写入流量对应的第二集群中。
4.根据权利要求2或3所述的方法,其特征在于,当所述第一topic数据包括多个时,所述将所述第一topic数据迁移至所述最小第一写入流量对应的第二集群中,包括:
将所述第一topic数据中的任一topic数据迁移至所述最小第一写入流量对应的第二集群中。
5.根据权利要求1所述的方法,其特征在于,所述采集消息队列中各集群的第一写入流量,包括:
采集消息队列中各topic数据的第二写入流量;
基于所述各topic数据的第二写入流量以及集群与topic数据的对应关系,计算所述消息队列中各集群的第一写入流量。
6.根据权利要求5所述的方法,其特征在于,所述获取所述各集群的第一写入流量的标准差,包括:
确定存在第二写入流量的增长幅度大于增长幅度阈值的第二topic数据时,获取所述各集群的第一写入流量的标准差。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
重复执行所述采集消息队列中各集群的第一写入流量,获取所述各集群的第一写入流量的标准差的步骤。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
当所述标准差小于或者等于所述流量平衡阈值时,停止数据迁移。
9.根据权利要求1-8任一项所述的方法,其特征在于,所述将所述最大第一写入流量对应的第一集群中的第一topic数据迁移至所述最小第一写入流量对应的第二集群中,包括:
生成调度任务,将所述最大第一写入流量对应的第一集群中的第一topic数据迁移至所述最小第一写入流量对应的第二集群中。
10.一种集群流量平衡装置,其特征在于,所述装置包括:
标准差获取模块,用于采集消息队列中各集群的第一写入流量,获取所述各集群的第一写入流量的标准差;
流量平衡判断模块,用于当所述标准差大于流量平衡阈值时,获取所述各集群的第一写入流量中最大第一写入流量和最小第一写入流量;
流量平衡模块,用于将所述最大第一写入流量对应的第一集群中的第一topic数据迁移至所述最小第一写入流量对应的第二集群中。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现所述权利要求1-9中任一项所述方法的步骤。
12.一种终端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现所述权利要求1-9中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010710785.7A CN111970326B (zh) | 2020-07-22 | 2020-07-22 | 集群流量平衡方法、装置、存储介质及终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010710785.7A CN111970326B (zh) | 2020-07-22 | 2020-07-22 | 集群流量平衡方法、装置、存储介质及终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111970326A true CN111970326A (zh) | 2020-11-20 |
CN111970326B CN111970326B (zh) | 2023-06-09 |
Family
ID=73362482
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010710785.7A Active CN111970326B (zh) | 2020-07-22 | 2020-07-22 | 集群流量平衡方法、装置、存储介质及终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111970326B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103024034A (zh) * | 2012-12-11 | 2013-04-03 | 华为技术有限公司 | 一种调度方法及装置 |
CN104270416A (zh) * | 2014-09-12 | 2015-01-07 | 杭州华为数字技术有限公司 | 负载均衡控制方法及管理节点 |
CN107547605A (zh) * | 2016-06-29 | 2018-01-05 | 华为技术有限公司 | 一种基于节点队列的消息读写方法及节点设备 |
CN108009016A (zh) * | 2016-10-31 | 2018-05-08 | 华为技术有限公司 | 一种资源负载均衡控制方法及集群调度器 |
CN110213358A (zh) * | 2019-05-23 | 2019-09-06 | 深圳壹账通智能科技有限公司 | 集群资源调度的方法、节点、设备及存储介质 |
CN110633151A (zh) * | 2019-09-20 | 2019-12-31 | 北京小米移动软件有限公司 | 分布式发布消息集群分区平衡的方法、装置及存储介质 |
CN111338791A (zh) * | 2020-02-12 | 2020-06-26 | 平安科技(深圳)有限公司 | 集群队列资源的调度方法、装置、设备及存储介质 |
-
2020
- 2020-07-22 CN CN202010710785.7A patent/CN111970326B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103024034A (zh) * | 2012-12-11 | 2013-04-03 | 华为技术有限公司 | 一种调度方法及装置 |
CN104270416A (zh) * | 2014-09-12 | 2015-01-07 | 杭州华为数字技术有限公司 | 负载均衡控制方法及管理节点 |
CN107547605A (zh) * | 2016-06-29 | 2018-01-05 | 华为技术有限公司 | 一种基于节点队列的消息读写方法及节点设备 |
CN108009016A (zh) * | 2016-10-31 | 2018-05-08 | 华为技术有限公司 | 一种资源负载均衡控制方法及集群调度器 |
CN110213358A (zh) * | 2019-05-23 | 2019-09-06 | 深圳壹账通智能科技有限公司 | 集群资源调度的方法、节点、设备及存储介质 |
CN110633151A (zh) * | 2019-09-20 | 2019-12-31 | 北京小米移动软件有限公司 | 分布式发布消息集群分区平衡的方法、装置及存储介质 |
CN111338791A (zh) * | 2020-02-12 | 2020-06-26 | 平安科技(深圳)有限公司 | 集群队列资源的调度方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111970326B (zh) | 2023-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9405572B2 (en) | Optimized resource allocation and management in a virtualized computing environment | |
EP3069263A1 (en) | Session idle optimization for streaming server | |
CN111090687A (zh) | 数据处理方法及装置、系统、计算机可读存储介质 | |
CN111506434B (zh) | 一种任务处理方法、装置及计算机可读存储介质 | |
CN110062199B (zh) | 负载均衡方法、装置及计算机可读存储介质 | |
US20190196917A1 (en) | Data backup method, storage medium, and terminal | |
US20200404047A1 (en) | Configurable connection reset for customized load balancing | |
CN107835984B (zh) | 热减轻用户体验 | |
CN109117256A (zh) | 一种后台应用程序的管理方法及终端 | |
CN111061550A (zh) | 任务处理方法、装置、设备及存储介质 | |
CN112052096A (zh) | 资源处理方法、装置、服务器及终端 | |
CN111613189A (zh) | 显示屏除湿方法、装置、存储介质及终端 | |
WO2020133408A1 (zh) | 应用程序的优先级调整方法、装置、存储介质及电子设备 | |
WO2024037068A1 (zh) | 任务调度方法、电子设备及计算机可读存储介质 | |
CN111970326B (zh) | 集群流量平衡方法、装置、存储介质及终端 | |
CN116578422A (zh) | 资源分配方法和电子设备 | |
WO2020206690A1 (zh) | 应用清理方法、装置、存储介质及电子设备 | |
CN111459410A (zh) | 内存空间分配方法、装置、电子设备及存储介质 | |
CN114500546A (zh) | 基于负载均衡集群的通信消息发送方法、装置及设备 | |
CN114546910A (zh) | 访问控制方法、装置、存储介质及电子装置 | |
CN110955644A (zh) | 一种存储系统的io控制方法、装置、设备及存储介质 | |
KR20200063673A (ko) | 복수의 태스크들을 스케줄링하는 전자 장치 및 그의 동작 방법 | |
CN114785722B (zh) | 监控数据处理方法、装置及计算机可读存储介质 | |
CN111488123B (zh) | 存储空间管理方法、装置、存储介质及移动终端 | |
CN113721755B (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 |