CN114598705B - 消息负载均衡方法、装置、设备和介质 - Google Patents
消息负载均衡方法、装置、设备和介质 Download PDFInfo
- Publication number
- CN114598705B CN114598705B CN202210217413.XA CN202210217413A CN114598705B CN 114598705 B CN114598705 B CN 114598705B CN 202210217413 A CN202210217413 A CN 202210217413A CN 114598705 B CN114598705 B CN 114598705B
- Authority
- CN
- China
- Prior art keywords
- service
- load
- migrated
- full
- message
- 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
- 238000000034 method Methods 0.000 title claims abstract description 60
- 238000005192 partition Methods 0.000 claims abstract description 211
- 238000013508 migration Methods 0.000 claims description 61
- 230000005012 migration Effects 0.000 claims description 42
- 238000012545 processing Methods 0.000 claims description 26
- 238000001514 detection method Methods 0.000 claims description 16
- 230000000694 effects Effects 0.000 claims description 16
- 239000000523 sample Substances 0.000 claims description 15
- 230000004913 activation Effects 0.000 claims description 5
- 230000006854 communication Effects 0.000 abstract description 13
- 238000004891 communication Methods 0.000 abstract description 12
- 238000005516 engineering process Methods 0.000 abstract description 4
- 230000005540 biological transmission Effects 0.000 description 12
- 230000008569 process Effects 0.000 description 9
- 238000004590 computer program Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 238000009499 grossing Methods 0.000 description 5
- 230000010355 oscillation Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000011282 treatment Methods 0.000 description 3
- 239000002699 waste material Substances 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 238000005303 weighing Methods 0.000 description 1
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
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
-
- 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
-
- 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
- H04L67/1029—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer
-
- 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
- H04L67/1034—Reaction to server failures by a load balancer
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开提供了一种消息负载均衡方法、装置、设备和介质,涉及通信技术领域,尤其涉及分布式领域。具体实现方案为:获取消息服务集群中不同消息服务的全服负载指标;根据全服负载指标,确定待迁出消息服务和可迁入消息服务;确定待迁出消息服务中的待迁出负载分区和待迁出负载分区的分区负载指标;根据分区负载指标,从可迁入消息服务中选取待迁入消息服务;将待迁出负载分区迁移至待迁入消息服务。根据本公开的技术,在实现负载分布均衡的同时,减少了消息的耗时长尾。
Description
技术领域
本公开涉及通信技术领域,尤其涉及分布式领域,尤其涉及一种消息负载均衡方法、装置、设备和介质。
背景技术
负载均衡(Load Balance),是指将负载(如工作任务、访问请求等)进行平衡、分摊到多个计算节点上进行执行。有助于保障分布式系统高性能、高可用和扩展性等。
发明内容
本公开提供了一种消息负载均衡方法、装置、设备和介质。
根据本公开的一方面,提供了一种消息负载均衡方法,包括:
获取消息服务集群中不同消息服务的全服负载指标;
根据全服负载指标,确定待迁出消息服务和可迁入消息服务;
确定待迁出消息服务中的待迁出负载分区和待迁出负载分区的分区负载指标;
根据分区负载指标,从可迁入消息服务中选取待迁入消息服务;
将待迁出负载分区迁移至待迁入消息服务。
根据本公开的另一方面,还提供了一种电子设备,包括:
至少一个处理器;以及
与至少一个处理器通信连接的存储器;其中,
存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行本公开实施例提供的任意一种消息负载均衡方法。
根据本公开的另一方面,还提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,计算机指令用于使计算机执行本公开实施例提供的任意一种消息负载均衡方法。
根据本公开的技术,在实现负载分布均衡的同时,减少了消息的耗时长尾。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1A是本公开实施例提供的一种消息传输系统的结构图;
图1B是本公开实施例提供的一种消息负载均衡方法的流程图;
图1C是本公开实施例提供的一种负载分区迁移过程示意图;
图2是本公开实施例提供的另一种消息负载均衡方法的流程图;
图3是本公开实施例提供的另一种消息负载均衡方法的流程图;
图4是本公开实施例提供的另一种消息负载均衡方法的流程图;
图5是本公开实施例提供的一种消息负载均衡装置的结构图;
图6是用来实现本公开实施例的消息负载均衡方法的电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
本公开实施例提供的各消息负载均衡方法和消息负载均衡装置,可适用于在分布式消息传输系统中进行消息负载均衡调度的情况。本公开实施例所提供的各消息负载均衡方法,可以由消息负载均衡装置执行,该装置可以采用软件和/或硬件实现,并具体配置于电子设备中。该电子设备可以是在消息传输系统中具备负载调度能力的调度管理设备。
为了便于理解,本公开首先对消息传输系统进行详细说明。
参见图1A所示的消息传输系统,包括消息生产者10、消息代理者20、消息消费者30、调度管理设备40、元信息集群50和消息存储设备60。
其中,消息生产者10,用于生产消息(如发布请求或订阅请求等),并将所生产消息发送至消息代理者20;消息代理者20作为消息服务集群,其中包括至少一个消息服务,用于作为实际接收消息的实体,并通过各消息服务对所接收消息进行语义转化,并将语义转化结果发送至消息存储设备60中进行存储;消息消费者30,用于从消息代理者20的各消息服务中读取消息并进行消费;调度管理设备40,用于负责消息服务集群中消息负载的均衡分配;元信息集群50,用于在调度管理设备40进行负责均衡分配后,记录分配情况,如消息服务集群中的消息服务列表、所接收消息的按照分区粒度划分后得到的负载分区列表、和消息服务列表中各消息服务与负载分区列表中不同负载分区之间的映射关系等。
本公开中的消息(Message)作为信息传递的载体,可以按照分区(Partition)粒度进行有序划分,便于后续对消息进行分区处理。该消息可以包括至少一个类别消息。为了适配固定类别消息传输的应用场景,本公开所涉及消息可以是按照一定主题(Topic)分类后的消息,此时,一个主题可以包括至少一个分区,也即前述负载分区。
需要说明的是,元信息集群50和消息存储设备60可以集成设置于同一设备或独立存在,或者嵌入在消息生产者10、消息代理者20、消息消费者30或调度管理设备40中,本公开对此不作任何限定。
以下将以调度管理设备40为执行主体,对消息负载均衡方法进行详细说明。
参见图1B所示的一种消息负载均衡方法,包括:
S101、获取消息服务集群中不同消息服务的全服负载指标。
其中,全服负载指标可以理解为将消息服务作为一个整体所采集的负载指标结果,也即从消息服务全局维度表征消息服务集群中消息负载的分布情况,可以包括CPU(Central Processing Unit,中央处理器)、内存(Memory)、网络带宽(Bandwidth)、磁盘输入输出(Disk Input Output)、TPS(Transactions Per Second,每秒消息数量)和RT(Response Time,响应时间)等中的至少一种。
示例性的,可以实时或定时向消息服务集群中的各消息服务发送负载采集请求,并接收各消息服务响应于负载采集请求反馈的全局负载指标。
S102、根据全服负载指标,确定待迁出消息服务和可迁入消息服务。
由于全服负载指标能够从消息服务全局维度,反映消息服务集群中消息负载的分布情况。因此,可以根据全服负载指标的数值大小,从消息服务集群中筛选负载较高的消息服务作为待迁出消息服务,以及筛选负载较低的消息服务作为可迁入消息服务。
在一个可选实施例中,可以预先设定全服负载指标的高负载阈值和低负载阈值,其中高负载阈值大于低负载阈值;将全服负载指标高于高负载阈值的消息服务作为待迁出消息服务,以及将全服负载指标地域低负载阈值的消息服务作为可迁入消息服务。其中,高负载阈值和低负载阈值可以由技术人员根据需要或经验值进行设定或调整,本公开对此不作任何限定。
S103、确定待迁出消息服务中的待迁出负载分区和待迁出负载分区的分区负载指标。
由于待迁出消息服务中负载数量较多,因此,可以将待迁出消息服务中的部分负载分区(也即待迁出负载分区)迁出,从而减少待迁出消息服务的载荷情况。为了便于其他消息服务有准备的接收该部分负载分区,可以采用分区负载指标作为负载分区的负载衡量因子。也即,分区负载指标可以从负载分区这一局部维度,表征负载在消息服务集群中的分布情况。
示例性的,可以选取待迁出消息服务中的至少一个负载分区作为待迁出负载分区。需要说明的是,本公开对待迁出负载分区的选取方式和选取数量不作任何限定。
可选的,可以采用随机选取或按优先级选取的方式,从待迁出消息服务中选取至少一个负载分区作为待迁出负载分区。其中,优先级可以由技术人员根据需要或经验值进行设定或调整。例如,可以按照负载分区的分区负载指标大小的排序情况,确定优先级。如分区负载指标越大,优先级越高。
其中,负载分区的分区负载指标可以是负载分区在当前时刻的分区负载指标的具体数值。然而,以当前时刻的分区负载指标进行负载分区衡量,会出现调度滞后情况,不利于消息传输系统的消息处理即时性。因此,负载分区的分区负载指标还可以是负载分区在未来时刻的分区负责指标的具体数值。其中,分区负载指标可以包括内存、网络带宽、TPS和RT等中的至少一种。
示例性的,可以根据待迁出负载分区的历史分区负载指标,确定预设未来时间段内不同时间点的预估分区负载指标;根据各预估分区负载指标,确定分区负载指标。
可以理解的是,基于历史分区负载指标进行分区负载指标预测的方式,进行分区负载指标确定,避免了以当前时刻的分区负载指标数据指导后续的负载分区迁移,出现负载调度滞后的情况,有助于提高消息传输系统的消息处理即时性。同时,通过预设未来时间段内不同时间点的预估分区负载指标,综合进行分区负载指标的确定,有助于提高所确定分区负载指标的代表性,为待迁出负载分区的确定提供了有利支撑。
可选的,可以将不同时间点的预估分区负载指标的统计值,作为分区负载指标。其中,统计值可以是均值、最值和中指等中的至少一种。
其中,某一时间点的预估分区负载指标,可以根据该时间点所关联的历史周期时段内的历史分区负载指标的均值确定。其中,历史周期时段的具体大小可以由技术人员根据需要或经验值进行设定或调整,本公开对此不作任何限定。其中,某一时间点t所关联的历史周期时段可以包括[t-(i+1)×T,t-i×T)。其中,i=1,2,…,n。其中,n为循环周期数,可以由技术人员根据需要或经验值进行设定或调整。
示例性的,可以从各预估分区负载指标中选取较大(例如最大)的预估分区负载指标,作为分区负载指标,从而保证后续基于分区负载指标所确定的待迁出负载分区迁入其他消息服务时,能够留有一定负载余量,避免接收到该待迁出负载分区的消息服务,由于该待迁出负载分区的迁入,短时间内确定为新的待迁出负载分区的情况发生,有助于提高消息传输系统的稳定性,减少了迁移行为带来的集群负载震荡。
S104、根据分区负载指标,从可迁入消息服务中选取待迁入消息服务。
在一个可选实施例中,可以从各可迁入消息服务中,选取能够容纳该分区负载指标的可迁入消息服务作为待迁入消息服务。
为了提高待迁入消息服务的确定效率,在另一可选实施例中,还可以将各可迁入消息服务按照全服负载指标的大小进行排序,将较小(例如最小)的可迁入消息服务,作为待迁入消息服务。
S105、将待迁出负载分区迁移至待迁入消息服务。
将待迁出服务分区从待迁出消息服务中,迁移至待迁入消息服务。为了便于查证,还可以在迁移之后,变更元信息集群中存储的负载分区与消息服务之间的映射关系。
参见图1C所示的负载分区迁移过程示意图,其中,消息服务集群中包括消息服务A、消息服务B和消息服务C。其中,消息服务A中包括8个负载分区(负载分区a-负载分区h);消息服务B中包括1个负载分区;消息服务C中包括2个负载分区。最终确定将消息服务A中的负载分区a和负载分区b作为待迁出负载分区,迁移至消息服务C中;将消息服务A中的负载分区c和负载分区d作为待迁出负载分区,迁移至消息服务B中。
本公开实施例通过引入消息服务维度的全服负载指标进行待迁出消息服务的确定,相较于按照负载分区维度的分区负载指标的方式,无需进行大量负载分区的分区负载指标的确定和数据处理,减少了数据运算量,提高了确定效率。通过引入负载分区维度的分区负载指标辅助进行负载均衡调度,由于分区负载指标的粒度更细,相较于仅根据全局负载指标进行负载均衡的粗粒度调度方案,能够在保证负载分布均衡的同时,减少负载分区的消息处理耗时拖尾。
在上述各技术方案的基础上,本公开还提供了一个可选实施例。在该可选实施例中,对待迁入消息服务的选取机制进行了优化改进。
参见图2所示的一种消息负载均衡方法,包括:
S201、获取消息服务集群中不同消息服务的全服负载指标。
S202、根据全服负载指标,确定待迁出消息服务和可迁入消息服务。
S203、确定待迁出消息服务中的待迁出负载分区和待迁出负载分区的分区负载指标。
S204、根据分区负载指标和可迁入消息服务的全服负载指标的和值,确定可迁入消息服务的迁入后全服负载指标。
消息服务的迁入后全服负载指标,可以理解为向消息服务中迁入新的分区负载之后,该消息服务的全服负载指标。
针对每一可迁入消息服务,确定该可迁入消息服务的全服负载指标与前述分区负载指标的和值,作为可迁入消息服务的迁入后全服负载指标。
S205、根据迁入后全服负载指标,从各可迁入消息服务中选取待迁入消息服务。
在一个可选实施例中,可以根据各可迁入消息服务的迁入后全服负载指标的大小,从各可迁入消息服务中选取待迁入消息服务。
可选的,可以将小于预设的全服负载指标阈值的迁入后全服负载指标对应可迁入消息服务,作为待迁入消息服务。其中,预设的全服负载指标阈值可以由技术人员根据需要或经验值确定,或根据消息服务的自身性能确定,本公开对此不作任何限定。
可以理解的是,通过引入预设的全服负载指标阈值作为评判可迁入消息服务是否作为待迁入消息服务的依据,能够避免出现可迁入消息服务作为待迁入消息服务后迁入待迁入负载分区,短期内该待迁入消息服务被确定为新的待迁出消息服务的情况,有效避免了消息服务集群出现负载震荡情况的发生,有助于提高消息服务集群的稳定性。
或者可选的,可以从各迁入后全服负载指标中,选取较小(例如最小)的迁入后全服负载指标对应可迁入消息服务,作为待迁入消息服务。这样做的好处在于,每次确定的待迁入消息服务为当前情况下的较优(选取最小情况为最优)选择,有效避免了消息服务集群出现负载震荡情况的发生,有助于提高消息服务集群的稳定性。
S206、将待迁出负载分区迁移至待迁入消息服务。
本公开实施例通过将待迁入消息服务的选取操作,细化为根据分区负载指标和可迁入消息服务的全服负载指标的和值,进行各可迁入消息服务的迁入后全服负载指标的确定,模拟将待迁入负载分区迁移至可迁入消息服务的情况,从而根据迁入后全服负载指标进行待迁入消息服务的选取,能够有效避免待迁入分区负载不合理迁入,导致可迁入消息服务负载骤增而出现的消息负载集群负载震荡情况的发生,有助于提高消息服务集群的稳定性。
在上述各技术方案的基础上,本公开还提供了一个可选实施例,在该可选实施例中,对待迁出消息服务和可迁入消息服务的确定情况,进行了优化改进。
进一步的,参见图3所示的一种消息负载均衡方法,包括:
S301、获取消息服务集群中不同消息服务的全服负载指标。
S302、根据全服负载指标和预设的全服负载指标阈值,确定相应消息服务的全服负载使用率。
其中,预设的全服负载在会标阈值可以由技术人员根据需要或经验值确定,或根据消息服务的自身性能确定,本公开对此不作任何限定。需要说明的是,若全服负载指标包括至少两种类型,不通类型的全服负载指标对应的预设的全服负载指标阈值可以相同或不同,本公开对此不作任何限定。
示例性的,针对任一消息服务,可以根据该消息服务的全服负载指标与预设的全服负载指标阈值的比值,确定该消息服务的全服负载使用率。
举例说明,若全服负载指标包括CPU、内存、输入网络带宽、输出网络带宽、TPS和RT等不同类型的负载指标;相应的,全服负载使用率包括CPU使用率、内存使用率、输入网络带宽使用率、输出网络带宽使用率、TPS使用率和RT使用率等。各全服负载使用率可以采用以下公式加以确定:
cpu_usage=broker_cpu/cpu_quota;
memory_usage=broker_memory/memory_quota;
bandwidth_in_usage=broker_bandwidth_in/bandwidth_in_quota;
bandwidth_out_usage=broker_bandwidth_out/bandwidth_out_quota;
tps_usage=broker_tps/tps_quota;
RT_usage=broker_RT/RT_quota;
其中,broker_cpu为全服负载指标中CPU对应数值、broker_memory为全服负载指标中内存对应数值、broker_bandwidth_in为全服负载指标中输入网络带宽对应数值、broker_bandwidth_out为全服负载指标中输出网络带宽对应数值、broker_tps为全服负载指标中TPS对应数值、broker_RT为全服负载指标中RT对应数值;cpu_usage为CPU使用率、memory_usage为内存使用率、bandwidth_in_usage为输入网络带宽使用率、bandwidth_out_usage为输出网络带宽使用率、tps_usage为TPS使用率、RT_usage为RT使用率。相应的,cpu_quota为CPU对应预设的全服负载指标阈值,memory_quota为内存对应预设的全服负载指标阈值,bandwidth_in_quota为输入网络带宽对应预设的全服负载指标阈值,bandwidth_out_quota为输出网络带宽对应预设的全服负载指标阈值,tps_quota为TPS对应预设的全服负载指标阈值,RT_quota为RT对应预设的全服负载指标阈值。
需要说明的是,上述仅以全服负载指标包括CPU、内存、输入网络带宽、输出网络带宽、TPS和RT为例,对不同全服负载指标对应全服负载使用率的确定过程进行说明,不应理解为对全服负载指标以及相应全服负载使用率的限定。
在一个可选实施例中,在根据全服负载指标和预设的全服负载指标阈值,确定相应消息服务的全服负载使用率之前,还可以对全服负载指标进行平滑处理,以更新全服负载指标,从而减小瞬时全服负载指标的采集带来的误差。
需要说明的是,可以采用现有技术的至少一种平滑处理方式,对全服负载指标进行平滑处理,本公开对具体采用的平滑处理方式不作任何限定。
示例性的,可以采用以下公式对全服负载指标进行平滑处理:
broker_indexused=λ*broker_indexcurrent+(1-λ)*broker_indexprevious;
其中,broker_index表示index类型的全服负载指标;broker_indexused表示本次平滑后的index类型的全服负载指标;broker_indexcurrent表示瞬时采集的index类型的全服负载指标;broker_indexprevious表示前次平滑后的index类型的全服负载指标;λ为平滑指数,可以由技术人员根据需要或经验值进行设定或调整。其中,0≤λ≤1。
其中,broker_cpu对应CPU类型的全服负载指标,也即全服负载指标中CPU对应数值;broker_memory对应内存类型的全服负载指标,也即全服负载指标中内存对应数值;broker_bandwidth_in对应输入网络带宽类型的全服负载指标,也即全服负载指标中输入网络带宽对应数值;broker_bandwidth_out对应输出网络带宽类型的全服负载指标,也即全服负载指标中输出网络带宽对应数值;broker_tps对应TPS类型的全服负载指标,也即全服负载指标中TPS对应数值;broker_RT对应RT类型的全服负载指标,也即全服负载指标中RT对应数值。
需要说明的是,不同类型的全服负载指标对应平滑指数可以相同或不同,本公开对此不作任何限定。
S303、根据各消息服务的全服负载使用率,从各消息服务中选取待迁出消息服务和可迁入消息服务。
在一个可选实施例中,可以将全服负载使用率大于高负载使用率阈值的消息服务作为待迁出消息服务,以及将全服负载使用率小于低负载使用率阈值的消息服务作为可迁入消息服务。
其中,高负载使用率阈值和低负载使用率阈值可以由技术人员根据需要或经验值进行确定或调整,不同类型全服负载指标对应全服负载使用率的高负载使用率阈值可以相同或不同,不同类型全服负载指标对应全服负载使用率的低负载使用率阈值可以相同或不同,本公开对此不作任何限定,仅需保证相同全服负载指标对应的高负载使用率阈值大于低负载使用率阈值即可。
在另一可选实施例中,若全服负载指标包括至少两种类型,还可以根据消息服务的不同类型的全服负载使用率,确定相应消息服务的全服综合负载指标;根据各消息服务的全服综合负载指标,从各消息服务中选取待迁出消息服务和可迁入消息服务。
可以理解的是,通过引入不同类型的全服负载使用率进行消息服务的全服综合负载指标的确定,并将全服综合负载指标作为待迁出消息服务和可迁入消息服务的选取依据,提高了选取消息服务的参照因素的多样性和全面性,有助于提高待迁出消息服务和可迁入消息服务的确定结果的准确度。
示例性的,可以针对任一消息服务,确定该消息服务的不同类型的全服负载使用率的统计值,并将该统计值作为该消息服务的全服综合负载指标。其中,统计值可以是均值、中值、或最值等。
为了使得后续进行负载分区迁移过程中留有余量,避免负载分区迁移带来负载震荡的情况发生,通常将消息服务的不同类型的全服负载使用率中的最大值作为该消息服务的全服综合负载指标。
延续前例,全服综合负载指标可以采用以下公式确定:
broker_workload=Max(cpu_usage,memory_usage,
bandwidth_in_usage,bandwidth_out_usage,tps_usage,RT_usage);
其中,broker_workload为全服综合负载指标;Max()为最大值函数。
在一个可选实施例中,可以根据各消息服务的全服综合负载指标,确定服务间负载偏离程度;根据服务间负载偏离程度,从各消息服务中选取待迁出消息服务和可迁入消息服务。
示例性的,确定各消息服务的全服综合负载指标的均值;将各消息服务的全服综合负载指标与该均值之间的距离,作为服务间负载偏离程度;将服务间负载偏离程度较大的消息服务作为待迁出消息服务,以及将服务间负载偏离程度较小的消息服务作为可迁入消息服务。
在另一可选实施例中,可以将全服综合负载指标大于高负载全服综合阈值的消息服务作为待迁出消息服务,以及,将全服综合负载指标小于低负载全服综合阈值的消息服务作为可迁入消息服务。其中,高负载全服综合阈值和低负载全服综合阈值可以由技术人员根据需要或经验值进行设定或调整,或通过大量试验确定,本公开不作任何限定,仅需保证高负载全服综合阈值不小于低负载全服综合阈值即可。
S304、确定待迁出消息服务中的待迁出负载分区和待迁出负载分区的分区负载指标。
示例性的,可以从待迁出消息服务中选取至少一个负载分区作为待迁出负载分区,并确定各待迁出负载分区的分区负载指标。其中,可以采用随机选取或按照优先级选取的方式,进行的待迁出负载分区的确定。
为了保证迁出待迁出负载分区后,能够显著降低待迁出消息服务的载荷,还可以按照一定的数值量化标准,进行待迁出负载分区的确定。
可选的,针对待迁出消息服务中的任一类型的全服负载指标,可以将该类型的全服负载使用率的均值,作为指标基准数据;根据指标基准数据、待迁出消息服务的全服负载使用率和待迁出消息服务在不同类型下的全服负载指标,确定待迁出消息服务在不同类型下的全服负载指标迁移量;根据各全服负载指标迁移量,从待迁出消息服务的负载分区中,选取待迁出负载分区。
继续延续前例,可以采用以下公式,确定不同类型下的指标基准数据:
其中,cluster_avg_index表示“index”类型的全服负载指标对应的指标基准数据;N为消息服务集群中消息服务的数量;index_usagei对应第i个消息服务中“index”类型的全服负载指标对应的全服负载使用率。其中,“index”类型可以包括cpu类型、内存类型、输入网络带宽类型、输出网络带宽类型、tps类型和RT类型;相应的,指标基准数据包括cpu类型对应的cluster_avg_cpu、内存类型对应的cluster_avg_memory、输入网络带宽类型对应的cluster_avg_bandwidth_in、输出网络带宽类型对应的cluster_avg_bandwidth_out、TPS类型对应的cluster_avg_tps、以及RT类型对应的cluster_avg_RT。
示例性的,根据该类型全服负载指标对应全服负载使用率和指标基准数据的差值与相应类型的全服负载使用率的比值,确定待迁出比例;根据待迁出比例与该类型的全服负载指标的乘积,确定该类型下全服负载指标迁移量。
继续延续前例,可以采用以下公式,确定不同类型下全服负载指标迁移量:
Exp_migrate_cpu=(cpu_usage-cluster_avg_cpu)/cpu_usage*broker_cpu;
Exp_migrate_memory=(memory_usage-cluster_avg_memory)/memory_usage*broker_memory;
Exp_migrate_bandwidth_in=(bandwidth_in_usage-cluster_avg_bandwidth_in)/bandwidth_in_usage*broker_bandwidth_in;
Exp_migrate_bandwidth_out=(bandwidth_out_usage-cluster_avg_bandwidth_out)/bandwidth_out_usage*broker_bandwidth_out;
Exp_migrate_tps=(tps_usage-cluster_avg_tps/tps_usage*broker_tps;
Exp_migrate_RT=(RT_usage-cluster_avg_RT)/RT_usage*broker_RT;
其中,Exp_migrate_cpu为CPU对应全服负载指标迁移量,Exp_migrate_memory为内存对应全服负载指标迁移量,Exp_migrate_bandwidth_in为输入网络带宽对应全服负载指标迁移量,Exp_migrate_bandwidth_out为输出网络带宽对应全服负载指标迁移量,Exp_migrate_tps为TPS对应全服负载指标迁移量,Exp_migrate_RT为RT对应全服负载指标迁移量。
为了在进行待迁移负载分区确定过程中留有余量,避免所确定的待迁移负载分区从待迁出消息服务中迁出之后,待迁移消息服务在短时间内仍被确定为待迁出消息服务,造成计算资源的浪费,在确定全服负载指标迁移量时,还可以采用全服综合负载指标替代前述全服负载使用率。
示例性的,可以将各消息服务的全服综合负载指标的均值,作为指标基准数据;根据指标基准数据、待迁出消息服务的全服综合负载指标和待迁出消息服务在不同类型下的全服负载指标,确定待迁出消息服务在不同类型下的全服负载指标迁移量;根据各全服负载指标迁移量,从待迁出消息服务的负载分区中,选取待迁出负载分区。
继续延续前例,可以采用以下公式确定指标基准数据:
其中,cluster_avg_workload为指标基准数据;N为消息服务集群中消息服务的数量;broker_workloadi为第i个消息服务的全服综合负载指标。
示例性的,针对待迁出消息服务中的任一类型的全服负载指标,可以根据全服综合负载指标和指标基准数据的差值与全服综合负载指标的比值,确定待迁出比例;根据待迁出比例与该类型的全服负载指标的乘积,确定该类型下全服负载指标迁移量。
继续延续前例,可以采用以下公式,确定不同类型下全服负载指标迁移量:
Exp_migrate_cpu=(broker_workload-cluster_avg_workload)/broker_workload*broker_cpu;
Exp_migrate_memory=(broker_workload-cluster_avg_workload)/broker_workload*broker_memory;
Exp_migrate_bandwidth_in=(broker_workload-cluster_avg_workload)/broker_workload*broker_bandwidth_in;
Exp_migrate_bandwidth_out=(broker_workload-cluster_avg_workload)/broker_workload*broker_bandwidth_out;
Exp_migrate_tps=(broker_workload-cluster_avg_workload)/broker_workload*broker_tps;
Exp_migrate_RT=(broker_workload-cluster_avg_workload)/broker_workload*broker_RT;
其中,Exp_migrate_cpu为CPU对应全服负载指标迁移量,Exp_migrate_memory为内存对应全服负载指标迁移量,Exp_migrate_bandwidth_in为输入网络带宽对应全服负载指标迁移量,Exp_migrate_bandwidth_out为输出网络带宽对应全服负载指标迁移量,Exp_migrate_tps为TPS对应全服负载指标迁移量,Exp_migrate_RT为RT对应全服负载指标迁移量。
S305、根据分区负载指标,从可迁入消息服务中选取待迁入消息服务。
S306、将待迁出负载分区迁移至待迁入消息服务。
本公开实施例将待迁入消息服务和可迁入消息服务的确定操作,细化为根据全服负载指标和预设的全服负载指标阈值,确定相应消息服务的全服负载使用率,并引入该全服负载使用率进行待迁出消息服务和可迁入消息服务的确定,从而能够在消息服务集群中各消息服务规格不同的情况下,能够按照相同的确定标准进行待迁出消息服务和可迁入消息服务的确定,提高了确定过程的通用性和便捷性。
在上述各技术方案的基础上,本公开还提供了一种可选实施例,在该可选实施例中,将待迁出消息服务的确定过程,进行了优化改进。
进一步参见图4所示的一种消息负载均衡方法,包括:
S401、获取消息服务集群中不同消息服务的全服负载指标。
示例性的,调度管理设备可以实时或定时向消息服务集群中的各消息服务发送负载采集请求,并接收各消息服务响应于负载采集请求反馈的全局负载指标。
S402、将无法获取到全服负载指标的消息服务,作为待诊断消息服务。
需要说明的是,由于调度管理设备或消息服务故障,可能存在无法获取到部分消息服务的全服负载指标的情况,此时,可以将无法获取到的全服负载指标的消息服务,作为待诊断消息服务。
S403、对待诊断消息服务进行探活处理,并根据探活处理结果,确定待迁出消息服务。
对待诊断消息服务进行探活处理,并根据探活处理结果,确定待诊断消息服务是否为故障服务,并将故障服务作为待迁出消息服务。
示例性的,可以向待诊断消息服务发送探活请求,若连续探测失败的次数大于预设次数阈值,或者探测失败的持续时间大于预设时长阈值,则确定该待诊断服务确定为故障服务,也即确定本次探活处理结果为失败。其中,预设次数阈值和预设时长阈值可以由技术人员根据需要或经验值进行确定或调整,本公开对此不作任何限定。
具体的,可以向待诊断消息服务发送心跳包,若预设时间段内并未接收到待诊断消息服务反馈的心跳包,则确定本次探测失败。
前述直接将将探活失败的待诊断消息服务作为待迁出消息服务,操作过程方便快捷,确定周期短,有助于提高消息负载均衡效率。
可选的,还可以统计探活失败的待诊断消息服务占比,并将统计结果小于预设阈值时探活失败的待诊断消息服务作为待迁出消息服务。
可以理解的是,当探活失败的待诊断消息服务占比较高时,可以认为调度管理设备与消息服务集群的通信过程出现了问题,此时将待诊断消息服务作为待迁出消息服务,将会造成计算资源的浪费。因此,仅将探活失败的待诊断消息服务占比小于预设阈值时的待诊断消息服务作为待迁出消息服务,也即排除调度管理设备与消息服务集群的通信影响操作无法获取全服负载指标的情况,提高了待迁出消息服务确定结果的准确度,同时避免了无端计算资源的浪费。
S404、根据全服负载指标,确定可迁入消息服务。
S405、确定待迁出消息服务中的待迁出负载分区和待迁出负载分区的分区负载指标。
S406、根据分区负载指标,从可迁入消息服务中选取待迁入消息服务。
S407、将待迁出负载分区迁移至待迁入消息服务。
本公开实施例通过将待迁出消息服务的确定操作,细化为将服务获取到全服负载指标的消息服务,作为待诊断消息服务,并对待诊断消息服务进行探活处理,及时发现故障消息服务,并将故障消息服务作为待迁出消息服务,避免出现对故障消息服务不作处理出现消息处理不及时的情况,有助于提高消息传输系统整体的消息传输效率。
作为上述各消息负载均衡方法的实现,本公开还提供了一种实施上述各消息负载均衡方法的执行装置的可选实施例。进一步参见图5所示的消息负载均衡装置500,包括:全服指标获取模块501、待迁出服务确定模块502、待迁出分区确定模块503、待迁入服务确定模块504和负载分区迁移模块505。其中,
全服指标获取模块501,用于获取消息服务集群中不同消息服务的全服负载指标;
待迁出服务确定模块502,用于根据全服负载指标,确定待迁出消息服务和可迁入消息服务;
待迁出分区确定模块503,用于确定待迁出消息服务中的待迁出负载分区和待迁出负载分区的分区负载指标;
待迁入服务确定模块504,用于根据分区负载指标,从可迁入消息服务中选取待迁入消息服务;
负载分区迁移模块505,用于将待迁出负载分区迁移至待迁入消息服务。
在一个可选实施例中,待迁出分区确定模块503,包括:
预估分区负载指标确定单元,用于根据待迁出负载分区的历史分区负载指标,确定预设未来时段内不同时间点的预估分区负载指标;
分区负载指标确定单元,用于根据各预估分区负载指标,确定分区负载指标。
在一个可选实施例中,分区负载指标确定单元,具体用于:
从各预估分区负载指标中选取较大的预估分区负载指标,作为分区负载指标。
在一个可选实施例中,待迁入服务确定模块504,包括:
迁入后全服负载指标确定单元,用于根据分区负载指标和可迁入消息服务的全服负载指标的和值,确定可迁入消息服务的迁入后全服负载指标;
待迁入服务确定单元,用于根据迁入后全服负载指标,从各可迁入消息服务中选取待迁入消息服务。
在一个可选实施例中,待迁入服务确定单元,具体用于:
将小于预设的全服负载指标阈值的迁入后全服负载指标对应可迁入消息服务,作为待迁入消息服务。
在一个可选实施例中,待迁出服务确定模块502,包括:
全服负载使用率确定单元,用于根据全服负载指标和预设的全服负载指标阈值,确定相应消息服务的全服负载使用率;
全服负载使用率使用单元,用于根据各消息服务的全服负载使用率,从各消息服务中选取待迁出消息服务和可迁入消息服务。
在一个可选实施例中,全服负载指标包括至少两种类型;
全服负载使用率使用单元,包括:
全服综合负载指标确定子单元,用于根据消息服务的不同类型的全服负载使用率,确定相应消息服务的全服综合负载指标;
全服综合负载指标使用子单元,用于根据各消息服务的全服综合负载指标,从各消息服务中选取待迁出消息服务和可迁入消息服务。
在一个可选实施例中,待迁出分区确定模块503,包括:
指标基准数据确定单元,用于将各消息服务的全服综合负载指标的均值,作为指标基准数据;
迁移量确定单元,用于根据指标基准数据、待迁出消息服务的全服综合负载指标和待迁出消息服务在不同类型下的全服负载指标,确定待迁出消息服务在不同类型下的全服负载指标迁移量;
待迁出负载分区选取单元,用于根据各全服负载指标迁移量,从待迁出消息服务的负载分区中,选取待迁出负载分区。
在一个可选实施例中,待迁出服务确定模块502,包括:
待诊断消息服务确定单元,用于将无法获取到全服负载指标的消息服务,作为待诊断消息服务;
待迁出消息服务确定单元,用于对待诊断消息服务进行探活处理,并根据探活处理结果,确定待迁出消息服务。
在一个可选实施例中,待迁出消息服务确定单元,具体用于:
将探活失败的待诊断消息服务作为待迁出消息服务;或者,
统计探活失败的待诊断消息服务占比,并将统计结果小于预设阈值时探活失败的待诊断消息服务作为待迁出消息服务。
上述消息负载均衡装置可执行本公开任意实施例所提供的消息负载均衡方法,具备执行各消息负载均衡方法相应的功能模块和有益效果。
本公开的技术方案中,所涉及的全服负载指标、分区负载指标的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图6示出了可以用来实施本公开的实施例的示例电子设备600的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图6所示,设备600包括计算单元601,其可以根据存储在只读存储器(ROM)602中的计算机程序或者从存储单元608加载到随机访问存储器(RAM)603中的计算机程序,来执行各种适当的动作和处理。在RAM 603中,还可存储设备600操作所需的各种程序和数据。计算单元601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
设备600中的多个部件连接至I/O接口605,包括:输入单元606,例如键盘、鼠标等;输出单元607,例如各种类型的显示器、扬声器等;存储单元608,例如磁盘、光盘等;以及通信单元609,例如网卡、调制解调器、无线通信收发机等。通信单元609允许设备600通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元601可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元601的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元601执行上文所描述的各个方法和处理,例如消息负载均衡方法。例如,在一些实施例中,消息负载均衡方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元608。在一些实施例中,计算机程序的部分或者全部可以经由ROM 602和/或通信单元609而被载入和/或安装到设备600上。当计算机程序加载到RAM 603并由计算单元601执行时,可以执行上文描述的消息负载均衡方法的一个或多个步骤。备选地,在其他实施例中,计算单元601可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行消息负载均衡方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、复杂可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。
云计算(cloud computing),指的是通过网络接入弹性可扩展的共享物理或虚拟资源池,资源可以包括服务器、操作系统、网络、软件、应用和存储设备等,并可以按需、自服务的方式对资源进行部署和管理的技术体系。通过云计算技术,可以为人工智能、区块链等技术应用、模型训练提供高效强大的数据处理能力。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开提供的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (20)
1.一种消息负载均衡方法,包括:
获取消息服务集群中不同消息服务的全服负载指标;
根据所述全服负载指标,确定待迁出消息服务和可迁入消息服务;
确定所述待迁出消息服务中的待迁出负载分区和所述待迁出负载分区的分区负载指标;
根据所述分区负载指标,从所述可迁入消息服务中选取待迁入消息服务;
将所述待迁出负载分区迁移至所述待迁入消息服务;
其中,所述确定所述待迁出消息服务中的待迁出负载分区,包括:
将各所述消息服务的全服综合负载指标的均值,作为指标基准数据;
针对所述待迁出消息服务中任一类型的全服负载指标,根据所述待迁出消息服务的全服综合负载指标和指标基准数据的差值,与所述全服综合负载指标的比值,确定待迁出比例;根据所述待迁出比例与该类型的全服负载指标的乘积,确定该类型下的全服负载指标迁移量;
根据各所述全服负载指标迁移量,从所述待迁出消息服务的负载分区中,选取待迁出负载分区。
2.根据权利要求1所述的方法,其中,确定所述待迁出消息服务中所述待迁出负载分区的分区负载指标,包括:
根据所述待迁出负载分区的历史分区负载指标,确定预设未来时段内不同时间点的预估分区负载指标;
根据各所述预估分区负载指标,确定所述分区负载指标。
3.根据权利要求2所述的方法,其中,所述根据各所述预估分区负载指标,确定所述分区负载指标,包括:
从各所述预估分区负载指标中选取较大的预估分区负载指标,作为所述分区负载指标。
4.根据权利要求1-3任一项所述的方法,其中,所述根据所述分区负载指标,从所述可迁入消息服务中选取待迁入消息服务,包括:
根据所述分区负载指标和所述可迁入消息服务的全服负载指标的和值,确定所述可迁入消息服务的迁入后全服负载指标;
根据所述迁入后全服负载指标,从各所述可迁入消息服务中选取所述待迁入消息服务。
5.根据权利要求4所述的方法,其中,所述根据所述迁入后全服负载指标,从各所述可迁入消息服务中选取所述待迁入消息服务,包括:
将小于预设的全服负载指标阈值的所述迁入后全服负载指标对应可迁入消息服务,作为所述待迁入消息服务。
6.根据权利要求1-3任一项所述的方法,其中,所述根据所述全服负载指标,确定待迁出消息服务和可迁入消息服务,包括:
根据所述全服负载指标和预设的全服负载指标阈值,确定相应消息服务的全服负载使用率;
根据各所述消息服务的全服负载使用率,从各所述消息服务中选取所述待迁出消息服务和所述可迁入消息服务。
7.根据权利要求6所述的方法,其中,所述全服负载指标包括至少两种类型;
所述根据各所述消息服务的全服负载使用率,从各所述消息服务中选取所述待迁出消息服务和所述可迁入消息服务,包括:
根据所述消息服务的不同类型的全服负载使用率,确定相应消息服务的全服综合负载指标;
根据各所述消息服务的全服综合负载指标,从各所述消息服务中选取所述待迁出消息服务和所述可迁入消息服务。
8.根据权利要求1-3任一项所述的方法,其中,所述根据所述全服负载指标,确定待迁出消息服务,包括:
将无法获取到全服负载指标的消息服务,作为待诊断消息服务;
对所述待诊断消息服务进行探活处理,并根据探活处理结果,确定所述待迁出消息服务。
9.根据权利要求8所述的方法,其中,所述根据探活处理结果,确定所述待迁出消息服务,包括:
将探活失败的待诊断消息服务作为所述待迁出消息服务;或者,
统计探活失败的待诊断消息服务占比,并将统计结果小于预设阈值时探活失败的待诊断消息服务作为所述待迁出消息服务。
10.一种消息负载均衡装置,包括:
全服指标获取模块,用于获取消息服务集群中不同消息服务的全服负载指标;
待迁出服务确定模块,用于根据所述全服负载指标,确定待迁出消息服务和可迁入消息服务;
待迁出分区确定模块,用于确定所述待迁出消息服务中的待迁出负载分区和所述待迁出负载分区的分区负载指标;
待迁入服务确定模块,用于根据所述分区负载指标,从所述可迁入消息服务中选取待迁入消息服务;
负载分区迁移模块,用于将所述待迁出负载分区迁移至所述待迁入消息服务;
其中,所述待迁出分区确定模块,包括:
指标基准数据确定单元,用于将各所述消息服务的全服综合负载指标的均值,作为指标基准数据;
迁移量确定单元,用于针对所述待迁出消息服务中任一类型的全服负载指标,根据所述待迁出消息服务的全服综合负载指标和指标基准数据的差值,与所述全服综合负载指标的比值,确定待迁出比例;根据所述待迁出比例与该类型的全服负载指标的乘积,确定该类型下的全服负载指标迁移量;
待迁出负载分区选取单元,用于根据各所述全服负载指标迁移量,从所述待迁出消息服务的负载分区中,选取待迁出负载分区。
11.根据权利要求10所述的装置,其中,所述待迁出分区确定模块,包括:
预估分区负载指标确定单元,用于根据所述待迁出负载分区的历史分区负载指标,确定预设未来时段内不同时间点的预估分区负载指标;
分区负载指标确定单元,用于根据各所述预估分区负载指标,确定所述分区负载指标。
12.根据权利要求11所述的装置,其中,所述分区负载指标确定单元,具体用于:
从各所述预估分区负载指标中选取较大的预估分区负载指标,作为所述分区负载指标。
13.根据权利要求10-12任一项所述的装置,其中,所述待迁入服务确定模块,包括:
迁入后全服负载指标确定单元,用于根据所述分区负载指标和所述可迁入消息服务的全服负载指标的和值,确定所述可迁入消息服务的迁入后全服负载指标;
待迁入服务确定单元,用于根据所述迁入后全服负载指标,从各所述可迁入消息服务中选取所述待迁入消息服务。
14.根据权利要求13所述的装置,其中,所述待迁入服务确定单元,具体用于:
将小于预设的全服负载指标阈值的所述迁入后全服负载指标对应可迁入消息服务,作为所述待迁入消息服务。
15.根据权利要求10-12任一项所述的装置,其中,所述待迁出服务确定模块,包括:
全服负载使用率确定单元,用于根据所述全服负载指标和预设的全服负载指标阈值,确定相应消息服务的全服负载使用率;
全服负载使用率使用单元,用于根据各所述消息服务的全服负载使用率,从各所述消息服务中选取所述待迁出消息服务和所述可迁入消息服务。
16.根据权利要求15所述的装置,其中,所述全服负载指标包括至少两种类型;
所述全服负载使用率使用单元,包括:
全服综合负载指标确定子单元,用于根据所述消息服务的不同类型的全服负载使用率,确定相应消息服务的全服综合负载指标;
全服综合负载指标使用子单元,用于根据各所述消息服务的全服综合负载指标,从各所述消息服务中选取所述待迁出消息服务和所述可迁入消息服务。
17.根据权利要求10-12任一项所述的装置,其中,所述待迁出服务确定模块,包括:
待诊断消息服务确定单元,用于将无法获取到全服负载指标的消息服务,作为待诊断消息服务;
待迁出消息服务确定单元,用于对所述待诊断消息服务进行探活处理,并根据探活处理结果,确定所述待迁出消息服务。
18.根据权利要求17所述的装置,其中,所述待迁出消息服务确定单元,具体用于:
将探活失败的待诊断消息服务作为所述待迁出消息服务;或者,
统计探活失败的待诊断消息服务占比,并将统计结果小于预设阈值时探活失败的待诊断消息服务作为所述待迁出消息服务。
19. 一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-9任一项所述的消息负载均衡方法。
20.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使计算机执行根据权利要求1-9任一项所述的消息负载均衡方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210217413.XA CN114598705B (zh) | 2022-03-07 | 2022-03-07 | 消息负载均衡方法、装置、设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210217413.XA CN114598705B (zh) | 2022-03-07 | 2022-03-07 | 消息负载均衡方法、装置、设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114598705A CN114598705A (zh) | 2022-06-07 |
CN114598705B true CN114598705B (zh) | 2023-08-15 |
Family
ID=81815683
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210217413.XA Active CN114598705B (zh) | 2022-03-07 | 2022-03-07 | 消息负载均衡方法、装置、设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114598705B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105607947A (zh) * | 2015-12-11 | 2016-05-25 | 西北工业大学 | 一种新的云环境虚拟机调度方法 |
CN107872402A (zh) * | 2017-11-15 | 2018-04-03 | 北京奇艺世纪科技有限公司 | 全局流量调度的方法、装置及电子设备 |
CN110633151A (zh) * | 2019-09-20 | 2019-12-31 | 北京小米移动软件有限公司 | 分布式发布消息集群分区平衡的方法、装置及存储介质 |
CN111913670A (zh) * | 2020-08-07 | 2020-11-10 | 北京百度网讯科技有限公司 | 负载均衡的处理方法、装置、电子设备及存储介质 |
CN111966289A (zh) * | 2020-08-13 | 2020-11-20 | 上海哔哩哔哩科技有限公司 | 基于Kafka集群的分区优化方法和系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9477743B2 (en) * | 2014-07-02 | 2016-10-25 | Oracle International Corporation | System and method for load balancing in a distributed system by dynamic migration |
-
2022
- 2022-03-07 CN CN202210217413.XA patent/CN114598705B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105607947A (zh) * | 2015-12-11 | 2016-05-25 | 西北工业大学 | 一种新的云环境虚拟机调度方法 |
CN107872402A (zh) * | 2017-11-15 | 2018-04-03 | 北京奇艺世纪科技有限公司 | 全局流量调度的方法、装置及电子设备 |
CN110633151A (zh) * | 2019-09-20 | 2019-12-31 | 北京小米移动软件有限公司 | 分布式发布消息集群分区平衡的方法、装置及存储介质 |
CN111913670A (zh) * | 2020-08-07 | 2020-11-10 | 北京百度网讯科技有限公司 | 负载均衡的处理方法、装置、电子设备及存储介质 |
CN111966289A (zh) * | 2020-08-13 | 2020-11-20 | 上海哔哩哔哩科技有限公司 | 基于Kafka集群的分区优化方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN114598705A (zh) | 2022-06-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108776934B (zh) | 分布式数据计算方法、装置、计算机设备及可读存储介质 | |
CN104102543B (zh) | 一种云计算环境中负载调整的方法和装置 | |
CN111694646B (zh) | 资源调度方法、装置、电子设备及计算机可读存储介质 | |
CN111738446B (zh) | 深度学习推理引擎的调度方法、装置、设备和介质 | |
CN114090223A (zh) | 访存请求调度方法、装置、设备以及存储介质 | |
CN104331331A (zh) | 任务数目和性能感知的可重构多核处理器的资源分配方法 | |
CN112685298A (zh) | 应用程序的代码覆盖测试方法、装置以及电子设备 | |
CN116680060B (zh) | 面向异构计算系统的任务分配方法、装置、设备和介质 | |
US9547576B2 (en) | Multi-core processor system and control method | |
CN114780244A (zh) | 容器云资源弹性分配方法、装置、计算机设备及介质 | |
CN112506619A (zh) | 作业处理方法、装置、电子设备、存储介质和程序产品 | |
CN109840141A (zh) | 基于云监控的线程控制方法、装置、电子设备及存储介质 | |
CN110096339B (zh) | 一种基于系统负载实现的扩缩容配置推荐系统及方法 | |
CN113986497B (zh) | 基于多租户技术的队列调度方法、装置及系统 | |
CN111158904A (zh) | 一种任务调度方法、装置、服务器及介质 | |
CN110912949A (zh) | 位点提交方法和装置 | |
CN112615795A (zh) | 流量控制方法、装置、电子设备、存储介质及产品 | |
CN110825212B (zh) | 节能调度方法及装置、计算机可存储介质 | |
CN115952054A (zh) | 一种仿真任务资源管理方法、装置、设备及介质 | |
CN114598705B (zh) | 消息负载均衡方法、装置、设备和介质 | |
CN115373860B (zh) | Gpu任务的调度方法、装置、设备和存储介质 | |
CN115658311A (zh) | 一种资源的调度方法、装置、设备和介质 | |
CN114090247A (zh) | 用于处理数据的方法、装置、设备以及存储介质 | |
CN113971083A (zh) | 任务调度方法、装置、设备、介质及产品 | |
CN113971082A (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 |