CN111767147A - 云计算中一种针对分布式消息***的负载均衡方法 - Google Patents
云计算中一种针对分布式消息***的负载均衡方法 Download PDFInfo
- Publication number
- CN111767147A CN111767147A CN202010593867.8A CN202010593867A CN111767147A CN 111767147 A CN111767147 A CN 111767147A CN 202010593867 A CN202010593867 A CN 202010593867A CN 111767147 A CN111767147 A CN 111767147A
- Authority
- CN
- China
- Prior art keywords
- copy
- node
- target
- migration
- selecting
- 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.)
- Withdrawn
Links
- 238000000034 method Methods 0.000 title claims abstract description 44
- 230000005012 migration Effects 0.000 claims abstract description 90
- 238000013508 migration Methods 0.000 claims abstract description 90
- 238000005192 partition Methods 0.000 claims abstract description 24
- 230000008569 process Effects 0.000 claims description 17
- 230000001360 synchronised effect Effects 0.000 claims description 17
- 230000000593 degrading effect Effects 0.000 claims description 2
- 230000004907 flux Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
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
- H04L67/1004—Server selection for load balancing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
- G06F9/5088—Techniques for rebalancing the load in a distributed system involving task migration
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/29—Flow control; Congestion control using a combination of thresholds
-
- 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/104—Peer-to-peer [P2P] networks
- H04L67/1044—Group management mechanisms
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种针对分布式消息***的负载均衡方法。针对分布式消息***下不同副本的功能角色,提出了首领角色迁移和副本迁移两种负载迁移策略。针对两种负载迁移策略,详细设计了目标副本和目的节点选择策略依据的方法。实现在负载迁移的同时,保证分布式环境下的副本一致性、分区可用性、数据可靠性以及共享集群下各个用户之间对资源利用的互不影响。
Description
技术领域
本发明属于大数据技术领域,具体涉及云计算中一种分布式消息***的负载均衡方法。
背景技术
分布式消息***的负载均衡使得负载可以均衡地分布在消息***的各个节点中,可以提高消息***的吞吐量和整体性能。在分布式消息***中,一个消息队列会存在多个分区来提高并发度,分区是生产和消费消息的基本逻辑单元。依据分区各副本的角色不同,对不同资源的影响也是不尽相同的。首领副本需要负责客户端(生产者和消费者)的读写服务,而追随者副本只负责和首领副本同步消息,不对外提供服务,因此首领占据更高的CPU及网络出站流量。相同分区下不同角色副本的数据内容是相同的,无论是首领副本还是追随者副本都占有相同的磁盘空间。
基于上述分析,不同角色副本的资源使用情况总结如表1所示。
表1不同角色副本对不同资源的影响
发明内容
针对集群出现的负载倾斜问题,本发明基于分布式消息***中,不同副本角色对资源的不同使用程度,提出了一种分布式消息***的负载均衡方法。当节点出现负载过高的场景时,本发明可基于副本角色的不同,执行对应的策略,从而使集群达到负载均衡的状态。
具体技术方案如下:
当源节点出现CPU或网络出站流量过高时,首先采取首领角色迁移策略,若首领角色迁移策略实施完成后,源节点的CPU使用率或网络出站流量情况仍然过高,则采取副本迁移策略;
当源节点出现磁盘或网络入站流量过高的场景时,直接实施副本迁移策略。
首领角色迁移策略指将源节点上某分区目标副本的首领角色转移至目标节点上该分区的追随者副本。首领角色迁移策略需满足的必要条件为源副本是首领角色并且目标节点上必须具有与源副本相同分区的追随者副本。执行迁移策略后,目标节点资源使用可估计为原资源使用加上目标副本的部分CPU使用和全部网络出站流量。
副本迁移策略指将源节点上目标副本物理转移到目标节点上。该策略需满足的必要条件为在转移之前,目标节点不具有与该副本相同分区的其它副本。满足该条件的目的是在执行副本迁移策略后,该分区仍然能够满足集群内的多副本机制,以保证分布式下该分区的可用性。
当源节点出现CPU或网络出站流量过高时,应首先采取首领角色迁移策略。将源节点上目标副本的首领角色转移至目标节点相同分区的追随者副本上,并将源节点上目标副本的首领降级为追随者级别。若首领角色迁移策略实施完成后,源节点的CPU使用率或网络出站流量情况仍然过高,则应再采取副本迁移策略,将源节点上目标副本物理转移到目标节点上。之所以先执行首领角色迁移策略再执行副本迁移策略,是因为前者比后者的代价小得多。对副本角色的切换本质上是一种逻辑转移,仅需对元数据执行修改,不涉及数据自身的转移或改变;而副本迁移过程是对数据自身进行的物理位置上的转移,持续时间较长且相对较难被中断,中断后的状态也无法较为精准地确定。因此针对CPU和网络读流量的负载倾斜问题,应首先采取首领角色迁移策略,若不能满足目标,再执行副本迁移策略。
进一步的,源节点上目标副本的确定方法为:选择所有追随者副本都已经完全同步的首领角色副本,并且对资源占用大的副本作为目标副本。
进一步的,所述目标节点的确定方法为:首先,选择具有与目标副本相同分区的追随者副本的节点作为候选节点,并且候选节点的追随者副本与目标副本处于完全同步的状态;然后,从候选节点中选择在首领角色迁移策略执行后,负载对资源的使用情况不超过阈值的节点;经前两个步骤之后,从剩下的候选节点中选择经过本次迁移操作不破坏本次流程中已经执行完成的其它迁移策略的节点;最后,选择在执行本次迁移操作***负载状态更加均衡的节点作为目标节点,即执行迁移策略后,目标节点与源节点的资源利用情况的差值小于执行迁移策略前,目标节点与源节点的资源利用情况的差值。
当源节点出现磁盘或网络入站流量过高的场景时,无论首领副本还是追随者副本对磁盘利用率和网络写流量的影响是相同的,因此没有必要采取首领角色迁移策略,直接实施副本迁移策略即可。
进一步的,所述源节点上目标副本的确定方法为:选择所有追随者副本都已经完全同步的首领角色副本,并且对资源占用小的副本作为目标副本。
进一步的,所述目标节点的确定方法为:首先,选择不具有与目标副本相同分区的节点作为候选节点;然后,从候选节点中选择在副本迁移策略执行后,负载对资源的使用情况不超过阈值的节点;经前两个步骤之后,从剩下的候选节点中选择经过本次迁移操作不破坏本次流程中已经执行完成的其它迁移策略的节点;最后,选择在执行本次迁移操作***负载状态更加均衡的节点作为目标节点,即执行迁移策略后,目标节点与源节点的资源利用情况的差值小于执行迁移策略前,目标节点与源节点的资源利用情况的差值。
有益效果
本发明基于副本角色的不同执行对应的策略,从而使集群达到负载均衡,有效的解决了消息负载不均衡的问题。
附图说明
图1、本发明方法流程图。
具体实施方式
当源节点出现CPU或网络出站流量过高时,首先采取首领角色迁移策略,若首领角色迁移策略实施完成后,源节点的CPU使用率或网络出站流量情况仍然过高,则采取副本迁移策略;
当源节点出现磁盘或网络入站流量过高的场景时,直接实施副本迁移策略。
在执行迁移策略过程中,需要确定迁移目标副本和迁移目标节点。目标副本和目标节点的选择需要依据一定分布式理论,实现在执行迁移策略的同时保证分布式环境下的数据可靠性、副本一致性、分区可用性以及避免共享集群下用户间对资源利用的互相干扰。下面对此详细说明。
当执行首领角色迁移策略时,选择迁移的目标副本应该同时依据以下两个原则,并且在满足原则(1)的前提下满足原则(2):(1)完全同步副本优先原则。这一原则指优先选择所有追随者副本都已经完全同步的首领角色副本作为迁移目标。提出完全同步副本优先原则的理由是源于在分布式架构中,数据的各个副本之间需要满足一致性原则。若目标首领副本中存在着未能够及时同步到追随者副本的消息,那么当首领角色迁移后,为了保证分布式下各个副本的数据保持一致性,原首领角色上未被完全同步的消息就会被永久置为失效的状态。这会导致消费者将无法消费到这些失效状态的消息,而消息的不丢失应是消息***最基本的保障。因此,为了保证分布式环境下的数据可靠性,在选择首领角色迁移的目标副本时,应该首先满足完全同步副本优先原则;(2)大副本优先策略。大副本优先指优先选择对资源占用更大的副本作为目标。提出这一原则的理由是通过优先迁移对资源占用较大的负载,移动尽量较少的步骤,使***达到负载均衡的状态。
当执行副本迁移策略时,选择迁移的目标副本应同时依据以下两个原则,并且在满足原则(1)的前提下满足原则(2):(1)完全同步副本优先原则。虽然这一原则与上文中首领角色迁移策略的目标首领选择策略基于的原则(1)是相同的,但二者依据的理由是不完全一致的。本质上,副本迁移过程是追随者副本同步过程。在目的节点新建一个不具有数据的空副本。这一新副本以追随者的角色同步迁移目标副本中的消息。当完成完全同步后,将目标节点中的目标副本删除并更新元数据。若目标副本所在分区原本就存在未能和首领副本同步的追随者副本,则意味着这一分区的具有较大的消息负载,追随者原本就来不及追赶首领。那么在副本迁移的同时,很可能会出现一直无法迁移结束的现象,降低了消息服务的性能。因此,副本迁移过程应首先依据策略完全同步副本优先策略;(2)小副本优先策略。小副本优先原则指优先选择节点上对资源占用更小的副本作为迁移目标。这一原则与首领角色迁移策略的选择目标首领选择依据的原则正相反。副本迁移过程的目标选择策略中应优先选择资源利用率较小的副本。因为副本迁移过程是物理上的数据真实迁移,迁移过程中会占用额外的网络带宽资源。集群能够应用的网络带宽资源是有限的。若优先迁移资源利用较大的副本,将会占用大量网络带宽资源,导致其它线上副本的网络出入站速率骤降,引发正常生产消费的数据产生严重的延迟问题,影响到不相干业务的用户。因此,为了保证共享集群下用户间对资源使用的不干扰,在进行目标副本迁移的过程中优先选择较小的副本。
在目的节点选择方面,两策略具有较强的相似性,唯一差异性在于首领角色迁移的目的节点具有与目标分区相同的追随者副本,并且追随者副本和副本完全同步。提出这一原则的理由是因为本质上,首领角色迁移过程就是分布式环境下的主从节点切换过程。候选节点应与原主节点的数据差异尽可能地小,这样才能够将数据丢失的风险最小化。对于副本迁移,目的节点中原本不具有与目标副本相同分区的其它副本。提出这一原则的理由是分布式架构下需要通过数据复制来提高可用性的原则。同一分区的数据应该存在多个副本分别分布于多个节点之中。当部分节点出现故障时,***仍然可以继续工作,避免存在于故障节点的数据出现不可用的情况。但如若目的节点中原本就具有与目标副本相同分区的其它副本,在执行此次副本迁移策略后,目标副本的可靠性就会被降低。
二者其余目的节点选择策略一致,分别为(1)优先选择集群中负载较小的节点作为目的节点。(2)在执行迁移策略后,目的节点上的负载对资源的使用情况仍不超过阈值;(3)此次迁移操作不会破坏本次流程中已经执行完成的其它迁移策略。这一原则的提出是为了避免在负载均衡状态调整的流程中,同一负载在节点间反复迁移而始终无法使***达到稳定状态。(4)在执行策略后实现***的负载状态更加均衡。设执行迁移策略前,目标节点和目的节点的资源利用情况分别表示为Br(source),Br(destination),迁移副本的资源利用情况为Rr(i),则执行迁移策略前,两节点的资源利用情况差值Δprev可表示为公式(1)。
Δprev=Br(source)-Br(destination) (1)
执行迁移策略后,两节点的资源利用情况差值Δnext可表示为公式(2)。
Δnext=Br(source)-Br(destination)-2×Rr(f) (2)
二者关系在执行负载迁移前后应满足公式(3)。
|Δnext|<|Δprev| (3)
Claims (7)
1.一种分布式消息***的负载均衡方法,其特征在于包括以下内容:
当源节点出现CPU或网络出站流量过高时,首先采取首领角色迁移策略,若首领角色迁移策略实施完成后,源节点的CPU使用率或网络出站流量情况仍然过高,则采取副本迁移策略;
当源节点出现磁盘或网络入站流量过高的场景时,直接实施副本迁移策略。
2.根据权利要求1所述的一种分布式消息***的负载均衡方法,其特征在于:其中,所述的首领角色迁移策略指将源节点上的目标副本的首领角色转移至目标节点相同分区的追随者副本上,并将源节点上目标副本的首领角色降级为追随者角色。
3.根据权利要求2所述的一种分布式消息***的负载均衡方法,其特征在于:所述源节点上目标副本的确定方法为:选择所有追随者副本都已经完全同步的首领角色副本,并且对资源占用大的副本作为目标副本。
4.根据权利要求2所述的一种分布式消息***的负载均衡方法,其特征在于:所述目标节点的确定方法为:首先,选择具有与目标副本相同分区的追随者副本的节点作为候选节点,并且候选节点的追随者副本与目标副本处于完全同步的状态;然后,从候选节点中选择在首领角色迁移策略执行后,负载对资源的使用情况不超过阈值的节点;经前两个步骤之后,从剩下的候选节点中选择经过本次迁移操作不破坏本次流程中已经执行完成的其它迁移策略的节点;最后,选择在执行本次迁移操作***负载状态更加均衡的节点作为目标节点,即执行迁移策略后,目标节点与源节点的资源利用情况的差值小于执行迁移策略前,目标节点与源节点的资源利用情况的差值。
5.根据权利要求1所述的一种分布式消息***的负载均衡方法,其特征在于:所述的副本迁移策略具体为:将源节点上目标副本物理转移到目标节点上,所述目标节点不具有与目标副本相同分区的其它副本。
6.根据权利要求5所述的一种分布式消息***的负载均衡方法,其特征在于:所述源节点上目标副本的确定方法为:选择所有追随者副本都已经完全同步的首领角色副本,并且对资源占用小的副本作为目标副本。
7.根据权利要求5所述的一种分布式消息***的负载均衡方法,其特征在于:所述目标节点的确定方法为:首先,选择不具有与目标副本相同分区的节点作为候选节点;然后,从候选节点中选择在副本迁移策略执行后,负载对资源的使用情况不超过阈值的节点;经前两个步骤之后,从剩下的候选节点中选择经过本次迁移操作不破坏本次流程中已经执行完成的其它迁移策略的节点;最后,选择在执行本次迁移操作***负载状态更加均衡的节点作为目标节点,即执行迁移策略后,目标节点与源节点的资源利用情况的差值小于执行迁移策略前,目标节点与源节点的资源利用情况的差值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010593867.8A CN111767147A (zh) | 2020-06-24 | 2020-06-24 | 云计算中一种针对分布式消息***的负载均衡方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010593867.8A CN111767147A (zh) | 2020-06-24 | 2020-06-24 | 云计算中一种针对分布式消息***的负载均衡方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111767147A true CN111767147A (zh) | 2020-10-13 |
Family
ID=72722087
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010593867.8A Withdrawn CN111767147A (zh) | 2020-06-24 | 2020-06-24 | 云计算中一种针对分布式消息***的负载均衡方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111767147A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113568746A (zh) * | 2021-07-27 | 2021-10-29 | 北京达佳互联信息技术有限公司 | 负载均衡方法、装置、电子设备及存储介质 |
CN113609071A (zh) * | 2021-07-28 | 2021-11-05 | 北京金山云网络技术有限公司 | 一种用于消息队列的自动扩容方法及装置 |
CN115495250A (zh) * | 2022-11-17 | 2022-12-20 | 北京集度科技有限公司 | 一种流量均衡方法、电子设备及计算机程序产品 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103139302A (zh) * | 2013-02-07 | 2013-06-05 | 浙江大学 | 考虑负载均衡的实时副本调度方法 |
-
2020
- 2020-06-24 CN CN202010593867.8A patent/CN111767147A/zh not_active Withdrawn
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103139302A (zh) * | 2013-02-07 | 2013-06-05 | 浙江大学 | 考虑负载均衡的实时副本调度方法 |
Non-Patent Citations (1)
Title |
---|
高子妍 等: "面向云服务的分布式消息***负载均衡策略", 《计算机科学》, pages 318 - 323 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113568746A (zh) * | 2021-07-27 | 2021-10-29 | 北京达佳互联信息技术有限公司 | 负载均衡方法、装置、电子设备及存储介质 |
CN113568746B (zh) * | 2021-07-27 | 2024-01-02 | 北京达佳互联信息技术有限公司 | 负载均衡方法、装置、电子设备及存储介质 |
CN113609071A (zh) * | 2021-07-28 | 2021-11-05 | 北京金山云网络技术有限公司 | 一种用于消息队列的自动扩容方法及装置 |
CN115495250A (zh) * | 2022-11-17 | 2022-12-20 | 北京集度科技有限公司 | 一种流量均衡方法、电子设备及计算机程序产品 |
CN115495250B (zh) * | 2022-11-17 | 2023-03-10 | 北京集度科技有限公司 | 一种流量均衡方法、电子设备及计算机程序产品 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111767147A (zh) | 云计算中一种针对分布式消息***的负载均衡方法 | |
CA3000161C (en) | Distributed stream-based database triggers | |
US10164894B2 (en) | Buffered subscriber tables for maintaining a consistent network state | |
CN113641511B (zh) | 一种消息通信方法和装置 | |
EP2954424B1 (en) | Method, device, and system for peer-to-peer data replication and method, device, and system for master node switching | |
US20230087447A1 (en) | Data migration method and device | |
CN103763155A (zh) | 分布式云存储***多服务心跳监测方法 | |
US10826812B2 (en) | Multiple quorum witness | |
WO2021129477A1 (zh) | 一种数据同步的方法及相关设备 | |
CN111339192A (zh) | 一种分布式边缘计算数据存储*** | |
WO2016065776A1 (zh) | 一种紧耦合可扩展的大数据交互方法 | |
CN103885811B (zh) | 虚拟机***全***在线迁移的方法、***与装置 | |
CN112148430A (zh) | 一种虚拟网络功能的虚拟机在线安全迁移的方法 | |
WO2014177085A1 (zh) | 分布式多副本数据存储方法及装置 | |
CN110807039A (zh) | 一种云计算环境下数据一致性维护***及方法 | |
US20190179807A1 (en) | Table and index communications channels | |
CN112487093A (zh) | 一种分布式数据库的去中心化副本控制方法 | |
CN108846064B (zh) | 基于ceph的动态链式存储集群实现方法 | |
CN110569307A (zh) | 一种基于ProxySQL和MGR的MySQL读写分离方法 | |
US11314559B2 (en) | Method for balanced scale out of resources in distributed and collaborative container platform environment | |
CN111400065B (zh) | 一种分离全局zookeeper的pulsar消息异地多活方法及*** | |
CN111459416B (zh) | 一种基于分布式存储的热迁移***及其迁移方法 | |
WO2023179786A1 (zh) | 网络地址转换网关的扩容方法、设备及存储介质 | |
US10102228B1 (en) | Table and index communications channels | |
CN111400098B (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 | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20201013 |