CN110445725B - 新加入负载节点分流的方法、存储介质 - Google Patents
新加入负载节点分流的方法、存储介质 Download PDFInfo
- Publication number
- CN110445725B CN110445725B CN201910609417.0A CN201910609417A CN110445725B CN 110445725 B CN110445725 B CN 110445725B CN 201910609417 A CN201910609417 A CN 201910609417A CN 110445725 B CN110445725 B CN 110445725B
- Authority
- CN
- China
- Prior art keywords
- node
- newly added
- utilization rate
- proportion
- disk
- 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
-
- 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
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5022—Workload threshold
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Multi Processors (AREA)
Abstract
本发明提供一种新加入负载节点分流的方法、存储介质,方法包括:各节点在周期性发送给中心节点的心跳包中附上自身服务器的磁盘使用率;以预设速度缓慢写入数据至新加入节点,直至新加入节点对应的磁盘使用率达到第一预设值;所述新加入节点对应的磁盘使用率达到第一预设值后,依据公式1/总比例份数*最大比例计算分配至所述新加入节点的流量。本发明不仅能克服新节点短期负载压力过大而崩溃的问题;而且能在新节点加入后尽快达到***各节点的负载相对均衡,从而显著提高集群的可用性。
Description
技术领域
本发明涉及分布式节点领域,具体涉及新加入负载节点分流的方法、存储介质。
背景技术
在很多项目中,因为数据量大的情况很多,所以现在很多的***或者软件中都有使用分布式部署的方式来进行项目的部署或者***的部署。其中,需要进行分布式部署的软件,最经常使用的就是集群方式进行部署,集群内部实现多个的服务节点,每个服务节点均提供同样的功能,而外部有一个统一的流量入口,通过一定的策略方式来实现流量的分流,比如说某个请求这次到a节点,下次根据一定的规则就到b节点。
在这种情况下,如果是服务节点不够时,就需要新增加服务节点来提供更多的流量吞吐。一般每个集群中都有一个中心节点功能,当一个新的服务节点加入后,都会向这个中心节点进行注册,提供自身的相关信息,当后续的请求来时,中心节点就可以通过路由策略发送请求到这个新节点上了。
此时,旧有方式中一般采用两种策略:(1)轮询,每一个节点轮流发送请求。(2)权重,根据配置文件设置好每一个节点的权重数值,根据权重进行请求的发送。采用轮询方式会导致请求都平均分配到各个节点上,而新加入的节点所承担的流量始终低于旧有的节点,从而导致各个节点请求分配不均衡;而权重方式,虽然可以在短期内使新的节点达到均衡,但是,后续还需要经常修改权重方式,不太智能,同时,如果新加入节点权重设置过大,则可能直接导致新加入的节点在短期之内,会因为短期负载过大而崩溃,导致服务不可用。
因此,有必要提供一种新的分流方式,能够针对新加入节点后的情况,尽量使各个服务节点的负载相对均衡,从而避免短期负载压力过大的问题出现。
发明内容
本发明所要解决的技术问题是:提供一种新加入负载节点分流的方法、存储介质,能够使各个服务节点的负载相对均衡,从而提高集群的可用性。
为了解决上述技术问题,本发明采用的技术方案为:
一种新加入负载节点分流的方法,包括:
各节点在周期性发送给中心节点的心跳包中附上自身服务器的磁盘使用率;
以预设速度缓慢写入数据至新加入节点,直至新加入节点对应的磁盘使用率达到第一预设值;
所述新加入节点对应的磁盘使用率达到第一预设值后,依据公式1/总比例份数*最大比例计算分配至所述新加入节点的流量。
本发明提供的另一个技术方案为:
一种计算机可读存储介质,其上存储有计算机可读程序,所述程序在被处理器执行时,能够实现上述一种新加入负载节点分流的方法所包含的步骤。
本发明的有益效果在于:中心节点能够掌握各个节点的磁盘使用率,在加入新节点时,先以缓慢写入数据方式处理请求,有效防止短期内写入多大数据量而导致负载压力过大崩溃;而在新节点的磁盘使用率达到第一预设值时,依据公式1/总比例份数*最大比例重新计算分配给新节点的流量,即采用最大比例方式进行流量分配,以此缓慢地提高新节点的磁盘使用率,提高***的流量吞吐能力;同时又能使各个节点的负载相对均衡,整体上提高集群的可用性。
附图说明
图1为本发明实施例一种新加入负载节点分流的方法的流程示意图;
图2为本发明实施例一的新加入负载节点分流的方法的流程示意图。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
本发明最关键的构思在于:新节点刚加入时,以缓慢写入数据方式处理请求,防止短期内负载压力过大而崩溃;在新节点的磁盘使用率达到第一预设值时,采用最大比例方式进行流量分配,缓慢地提高新节点的磁盘使用率。
请参照图1,本发明提供一种新加入负载节点分流的方法,包括:
各节点在周期性发送给中心节点的心跳包中附上自身服务器的磁盘使用率;
以预设速度缓慢写入数据至新加入节点,直至新加入节点对应的磁盘使用率达到第一预设值;
所述新加入节点对应的磁盘使用率达到第一预设值后,依据公式1/总比例份数*最大比例计算分配至所述新加入节点的流量。
进一步地,所述以预设速度缓慢写入数据至新加入节点,具体为:
依据所述第一预设值分配相应比例的流量至新加入节点,并以预设速度缓慢写入数据至新加入节点。
由上述描述可知,将第一预设值作为新节点刚加入时的流量分配标准,具备合理性,能够确保所分配的流量适中,不至于过大,支持缓慢写入而不影响请求处理效率。
进一步地,所述依据公式1/总比例份数*最大比例计算分配至所述新加入节点的流量,之后,还包括:
剩余流量采用轮询方式平均分配至其他节点中。
由上述描述可知,***中原有的其他节点,仍然采用现有的流量分配方式,而无需改变,能降低实现难度,提高实施的简便性。
进一步地,当中心节点判定各个节点自身服务器的磁盘使用率之间的差距在第二预设值之内时,执行所述剩余流量采用轮询方式平均分配至其他节点中的步骤。
由上述描述可知,在***内各个节点的磁盘使用率都相当的时候,直接采用现有的流量分配方式进行分配,能实现***内各个节点的负载相对均衡。
进一步地,还包括:
所述新加入节点加入分布式***后,获取自身服务器的资源信息,所述资源信息包括CPU使用率、内存使用率以及磁盘使用率;
新加入节点向中心节点注册时,同时发送所述资源信息。
由上述描述可知,新节点在注册时需要上报自身服务器的资源信息,以便中心节点据此进行更准确的流量分配。
进一步地,所述第一预设值为3-10%。
由上述描述可知,该数字设置合理,具备较高可行性。
本发明提供的另一个技术方案为:
一种计算机可读存储介质,其上存储有计算机可读程序,所述程序在被处理器执行时,能够实现上述各种新加入负载节点分流的方法所包含的步骤。
从上述描述可知,对应本领域普通技术人员可以理解实现上述技术方案中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来实现的,所述的程序可存储于一计算机可读取的存储介质中,该程序在执行时,可包括如上述各方法的流程。同时,上述各个流程在执行后,同样能实现对应的方法所具备的有益效果。
其中,所述的存储介质可以是磁盘、光碟、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
实施例一
请参照图2,本实施例针对分布式***新加入节点的情况,提供一种新加入负载节点的分流方法,实现***内各节点负载相对均衡,提高集群可用性。本实施例适用于mongo或者cassandra或者其他数据库存储这样的软件,其进行集群部署的时候,均会部署多个的分布式节点。
本实施例具体包括以下步骤:
S1:新节点加入集群***后,会向集群的中心节点进行注册,提供自身的相关信息,所述信息包括自身服务器名称、内网IP以及端口等其他配置信息,注册后,新节点将与中心节点建立关联,中心节点便可据此发送请求到这个新节点;
特别的,在本实施例中,所述信息还包括资源信息,所述资源信息包括新节点自身***的CPU使用率、内存使用率以及磁盘使用率。对应的,集群***中的各个节点将具备能够获取自身服务器相关资源信息的能力。
S2:集群***中的各个节点将通过与中心节点关联后建立的通信通道,将定时发送心跳包给中心节点,以确认各个节点是否存活,即是否能够正常提供服务。
特别的,在本实施例中,各个节点将在每一次的心跳包中附上自身服务器的资源信息,可选的,只需附上磁盘使用率。
S3:中心节点将收集各个节点定时发送过来的心跳包,监控各个节点的磁盘使用率;
S4:依据预设的路由策略进行请求的路由分配。
具体而言,当集群***中自由一个节点时,所有请求信息都发送给该节点;
当大于一个节点时,则依据磁盘使用率比例进行分配,下面,将展开进行详细说明:
针对新加入集群***的节点,此时,新节点的磁盘使用率一般为0,低于第一预设值,因此采用缓慢写入数据方式,以预设速度缓慢写入数据至新加入节点;所述第一预设值,可选为3-10%,优选为5%。采用缓慢写入数据的方式,能防止短期内写入过大数据量而导致节点短期负载过大而崩溃,导致服务不可用。
优选地,在新节点的磁盘使用率到达第一预设值之前,依据所述第一预设值来分配相应比例的流量至新加入节点,比如,按照配置好的5%的比例分流请求。比如,当前***中有2个节点:a和b,对应的平均磁盘使用率均为50%;之后又新增加了一个节点c;此时,节点c的使用率为0;则***判定节点c的使用率低于预设的5%,采用缓慢写入数据的方式,一段时间之内发送一些请求给节点c。
而当新节点对应的磁盘使用率达到预设值以后,则依据公式1/总比例份数*最大比例来计算之后要分配至所述新加入节点的流量。即采用最大比例的方式来重新分流。比如,上述的节点a:b:c的磁盘使用率比例为60:50:5,此时,新接待你c的资源占用率已超过5%,则所述比例60:50:5化简为11:10:1,然后以1/22*11这样的流量比例进行新节点c流量的分配,即依据最大比例(11)的数据为流量比例,以使得流量导向节点c,以此慢慢地让节点c的资源提高,和已有节点a和b的资源占用比例慢慢地接近,最后达到一个平衡。
针对剩余的流量,可选地,采用轮询方式平均写入其他节点中。当然,也可以使用其他方式进行分配。
优选地,当中心节点判定各个节点自身服务器的磁盘使用率之间的差距在第二预设值之内时,再采用轮询方式平均分配***所有流量至各个节点。其中,第二预设值优选与第一预设值相同,即5%。
通过上述针对新节点的分流策略与轮询策略的结合,实现了新加入节点的资源占用率与其他节点相当以后,再使用均分方式分配流量,从而保证***内各个节点的负载相对均衡。
本实施例实现了***中各个节点的负载相对均衡,且在新节点加入后,既不会出现短期负载压力多大的问题,也不会破坏***的负载均衡,而是能重新达到负载均衡,以显著提高集群的可用性。
实施例二
本实施例对应实施例一,提供一种计算机可读存储介质,其上存储有计算机可读程序,所述程序在被处理器执行时,能够实现上述实施例一所述的一种新加入负载节点分流的方法所包含的步骤,具体的步骤内容在此不进行复述,详情请参阅实施例一的记载。
综上所述,本发明提供的一种新加入负载节点分流的方法、存储介质,不仅能克服新节点短期负载压力过大而崩溃的问题;而且能在新节点加入后尽快达到***各节点的负载相对均衡,从而显著提高集群的可用性;进一步地,还具备实用性高,实现难度低等优点。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (5)
1.一种新加入负载节点分流的方法,其特征在于,包括:
各节点在周期性发送给中心节点的心跳包中附上自身服务器的磁盘使用率;
中心节点以预设速度缓慢写入数据至新加入节点,直至新加入节点对应的磁盘使用率达到第一预设值;
所述新加入节点对应的磁盘使用率达到第一预设值后,依据各节点磁盘使用率间的比例,通过公式1/总比例份数*最大比例计算分配至所述新加入节点的流量;
其中,所述总比例份数为各节点磁盘使用率间的比例中各节点磁盘使用率对应的数值之和,所述最大比例为各节点磁盘使用率间的比例中各节点磁盘使用率对应的数值的最大值;
当中心节点判定各个节点自身服务器的磁盘使用率之间的差距在第二预设值之内时,将剩余流量采用轮询方式平均分配至其他节点中。
2.如权利要求1所述的一种新加入负载节点分流的方法,其特征在于,所述以预设速度缓慢写入数据至新加入节点,具体为:
依据所述第一预设值分配相应比例的流量至新加入节点,并以预设速度缓慢写入数据至新加入节点。
3.如权利要求1所述的一种新加入负载节点分流的方法,其特征在于,还包括:
所述新加入节点加入分布式***后,获取自身服务器的资源信息,所述资源信息包括CPU使用率、内存使用率以及磁盘使用率;
新加入节点向中心节点注册时,同时发送所述资源信息。
4.如权利要求1所述的一种新加入负载节点分流的方法,其特征在于,所述第一预设值为3-10%。
5.一种计算机可读存储介质,其上存储有计算机可读程序,其特征在于,所述程序在被处理器执行时,能够实现上述权利要求1-4任意一项所述的一种新加入负载节点分流的方法所包含的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910609417.0A CN110445725B (zh) | 2019-07-08 | 2019-07-08 | 新加入负载节点分流的方法、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910609417.0A CN110445725B (zh) | 2019-07-08 | 2019-07-08 | 新加入负载节点分流的方法、存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110445725A CN110445725A (zh) | 2019-11-12 |
CN110445725B true CN110445725B (zh) | 2022-07-26 |
Family
ID=68429588
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910609417.0A Active CN110445725B (zh) | 2019-07-08 | 2019-07-08 | 新加入负载节点分流的方法、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110445725B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016165242A1 (zh) * | 2015-04-14 | 2016-10-20 | 中兴通讯股份有限公司 | ***内节点数的调整方法和装置 |
CN106416173A (zh) * | 2014-05-30 | 2017-02-15 | 华为技术有限公司 | 一种资源分配的方法、装置 |
CN107800744A (zh) * | 2016-09-06 | 2018-03-13 | 北京金山云网络技术有限公司 | 一种服务请求转发方法、装置及*** |
CN109167699A (zh) * | 2018-08-20 | 2019-01-08 | 众安信息技术服务有限公司 | 处理区块链的节点的状态的方法和装置 |
CN109803024A (zh) * | 2019-01-28 | 2019-05-24 | 北京中科晶上科技股份有限公司 | 一种用于集群节点网络的方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7894463B2 (en) * | 2006-11-21 | 2011-02-22 | Oracle America, Inc. | Topological approach for improving network and system utilization in a non-uniform network |
US10693951B2 (en) * | 2017-06-01 | 2020-06-23 | Salesforce.Com, Inc. | Decentralized, resource aware load distribution in a distributed system |
-
2019
- 2019-07-08 CN CN201910609417.0A patent/CN110445725B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106416173A (zh) * | 2014-05-30 | 2017-02-15 | 华为技术有限公司 | 一种资源分配的方法、装置 |
WO2016165242A1 (zh) * | 2015-04-14 | 2016-10-20 | 中兴通讯股份有限公司 | ***内节点数的调整方法和装置 |
CN107800744A (zh) * | 2016-09-06 | 2018-03-13 | 北京金山云网络技术有限公司 | 一种服务请求转发方法、装置及*** |
CN109167699A (zh) * | 2018-08-20 | 2019-01-08 | 众安信息技术服务有限公司 | 处理区块链的节点的状态的方法和装置 |
CN109803024A (zh) * | 2019-01-28 | 2019-05-24 | 北京中科晶上科技股份有限公司 | 一种用于集群节点网络的方法 |
Non-Patent Citations (2)
Title |
---|
一种基于负载均衡的Kubernetes调度改进算法;谭莉,陶宏才;《成都信息工程大学学报》;20190320;第3卷(第34期);第228-231页 * |
一种改进的HDFS副本放置策略;陈伟;《长春师范大学学报》;20180420;第37卷(第04期);第15-20页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110445725A (zh) | 2019-11-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200029110A1 (en) | Bandwidth Control Method and Apparatus, and Device | |
CN102369688B (zh) | 资源动态调整方法和调度设备 | |
CN101447939B (zh) | 一种业务分配方法和负载均衡器 | |
CN110764963B (zh) | 一种服务异常处理方法、装置及设备 | |
CN112671928B (zh) | 设备集中管理架构、负载均衡方法、电子设备及存储介质 | |
CN107026907A (zh) | 一种负载均衡方法、负载均衡器及负载均衡*** | |
CN109933431B (zh) | 一种智能的客户端负载均衡方法及*** | |
CN107105013B (zh) | 文件的处理方法、服务器、终端和*** | |
CN102143046A (zh) | 负载均衡的方法、设备和*** | |
CN103036979A (zh) | 一种服务器负载均衡方法及负载均衡器 | |
CN113810304A (zh) | 一种负载均衡方法、装置、设备和计算机存储介质 | |
EP3745678B1 (en) | Storage system, and method and apparatus for allocating storage resources | |
US8356098B2 (en) | Dynamic management of workloads in clusters | |
CN110244901B (zh) | 任务分配方法及装置、分布式存储*** | |
CN107395458B (zh) | ***监控方法及装置 | |
CN107979539B (zh) | 报文处理方法及装置 | |
WO2020038450A1 (zh) | 带宽调整方法、装置、通信设备及计算机可读存储介质 | |
CN110661708A (zh) | 网络优化方法、***及网络设备 | |
JP2016051446A (ja) | 計算機システム、計算機、負荷分散方法及びそのプログラム | |
CN114364031A (zh) | 服务提供方法、装置及存储介质 | |
CN112416594A (zh) | 一种微服务分配方法、电子设备和计算机存储介质 | |
CN110445725B (zh) | 新加入负载节点分流的方法、存储介质 | |
CN111930710A (zh) | 一种大数据内容分发的方法 | |
CN114827079B (zh) | 网络地址转换网关的扩容方法、设备及存储介质 | |
CN111796935A (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 |