买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】负载均衡方法及装置_北京小米移动软件有限公司_201810041889.6 

申请/专利权人:北京小米移动软件有限公司

申请日:2018-01-16

公开(公告)日:2021-02-09

公开(公告)号:CN107979653B

主分类号:H04L29/08(20060101)

分类号:H04L29/08(20060101)

优先权:

专利状态码:有效-授权

法律状态:2021.02.09#授权;2018.05.25#实质审查的生效;2018.05.01#公开

摘要:本公开是关于负载均衡方法及装置。该方法包括:获取第一节点正在服务的第一服务连接的连接数量,第一服务连接是第一节点和客户端之间建立的连接;根据所述连接数量,获取第一服务连接的目标连接时长,其中,目标连接时长与连接数量呈负相关关系;断开目标服务连接,目标服务连接已连接的时长大于或等于目标连接时长。该技术方案中,节点的连接数量越多,每个服务连接的目标连接时长就越短即节点服务客户端的时间就越短,断开服务连接也就越频繁,反之亦然,这样,原本连接在负载多的节点上的客户端就逐步会分散到负载少的节点伤,从而达到负载均衡,达到了有效率的利用系统资源的目的。

主权项:1.一种负载均衡方法,其特征在于,包括:获取第一节点正在服务的第一服务连接的连接数量,所述第一服务连接是所述第一节点和客户端之间建立的连接;根据所述连接数量,以及所述连接数量与目标连接时长的反比关系,获取所述第一服务连接的目标连接时长,其中,所述连接数量与目标连接时长的反比关系指示所述目标连接时长与所述连接数量呈负相关关系;断开目标服务连接,所述目标服务连接已连接的时长大于或等于所述目标连接时长。

全文数据:负载均衡方法及装置技术领域[0001]本公开涉及通信领域,尤其涉及负载均衡方法及装置。背景技术[0002]目前,分布式协调服务为分布式系统中的多个节点提供一致的状态机视图,从而可以协调分布式系统中多个节点的行为。它在诸如服务发现、分布式锁服务、master选举、配置管理等分布式系统中应用非常广泛。[0003]在实际使用中,由于偶发的网络故障及服务维护重启等,我们发现这种分布式协调服务系统往往存在负载不均衡的现象,经常出现某些服务节点上的连接很多但其它服务节点上的连接很少的情况。发明内容[0004]本公开实施例提供负载均衡方法及装置。所述技术方案如下:[0005]根据本公开实施例的第一方面,提供一种负载均衡方法,包括:[0006]获取第一节点正在服务的第一服务连接的连接数量,所述第一服务连接是所述第一节点和客户端之间建立的连接;[0007]根据所述连接数量,获取所述第一服务连接的目标连接时长,其中,所述目标连接时长与所述连接数量呈负相关关系;[0008]断开目标服务连接,所述目标服务连接已连接的时长大于或等于所述目标连接时长。[0009]本公开的实施例提供的技术方案可以包括以下有益效果:节点的连接数量越多,每个服务连接的目标连接时长就越短(即节点服务客户端的时间就越短),断开服务连接也就越频繁,反之亦然,这样,原本连接在负载多的节点上的客户端就逐步会分散到负载少的节点伤,从而达到负载均衡,达到了有效率的利用系统资源的目的。[0010]在一个实施例中,所述获取第一节点正在服务的第一服务连接的连接数量,包括:[0011]当所述第一节点建立新的第一服务连接,或者所述第一节点断开已连接的第一服务连接时,获取所述连接数量。[0012]在一个实施例中,所述根据所述连接数量,获取所述第一服务连接的目标连接时长,包括:[0013]获取所述第一服务连接的预设连接时长区间;[0014]根据所述连接数量和所述预设连接时长区间,确定目标连接时长。[0015]在一个实施例中,所述根据所述连接数量,获取所述第一服务连接的目标连接时长,包括:[0016]获取所述第一服务连接的预设连接时长区间;[0017]根据所述连接数量和所述预设连接时长区间,确定目标连接时长。[0018]根据本公开实施例的第二方面,提供一种负载均衡装置,包括:[0019]第一获取模块,用于获取第一节点正在服务的第一服务连接的连接数量,所述第一服务连接是所述第一节点和客户端之间建立的连接;[0020]第二获取模块,用于根据所述连接数量,获取所述第一服务连接的目标连接时长,其中,所述目标连接时长与所述连接数量呈负相关关系;[0021]断开模块,用于断开目标服务连接,所述目标服务连接己连接的时长大于或等于所述目标连接时长。[0022]在一个实施例中,所述第一获取模块包括:[0023]第一获取子模块,用于当所述第一节点建立新的第一服务连接,或者所述第一节点断开己连接的第一服务连接时,获取所述连接数量。[0024]在一个实施例中,所述第二获取模块包括:[0025]第二获取子模块,用于获取所述第一服务连接的预设连接时长区间;[0026]确定子模块,用于根据所述连接数量和所述预设连接时长区间,确定目标连接时长。[0027]在一个实施例中,所述装置还包括:[0028]建立模块,用于建立目标客户端与第二节点之间的第二服务连接,所述目标客户端是已断开所述目标服务连接的客户端;所述第二节点是分布式系统中除所述第一节点之外的节点。[0029]根据本公开实施例的第三方面,提供一种负载均衡装置,包括:[0030]处理器;[0031]用于存储处理器可执行指令的存储器;[0032]其中,所述处理器被配置为:[0033]获取第一节点正在服务的第一服务连接的连接数量,所述第一服务连接是所述第一节点和客户端之间建立的连接;[0034]根据所述连接数量,获取所述第一服务连接的目标连接时长,其中,所述目标连接时长与所述连接数量呈负相关关系;[0035]断开目标服务连接,所述目标服务连接己连接的时长大于或等于所述目标连接时长。[0036]应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。附图说明_[0037]此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。[0038]图1是根据一示例性实施例示出的负载均衡方法的流程图。[0039]图2是根据一示例性实施例示出的负载均衡方法的流程图。[0040]图3是根据一示例性实施例示出的负载均衡方法的流程图。[0041]图4是根据一示例性实施例示出的负载均衡方法的流程图。[0042]图5是根据一示例性实施例示出的节点轮询的示意图。[0043]图6是根据一示例性实施例示出的负载均衡装置的框图。[0044]图7是根据一示例性实施例示出的负载均衡装置的框图。[0045]图8是根据一示例性实施例示出的负载均衡装置的框图。[0046]图9是根据一示例性实施例示出的负载均衡装置的框图。[0047]图1〇是根据一示例性实施例示出的负载均衡装置的框图。具体实施方式__[0048]这里将详细地对示例性实施例进行说明,其不例表不在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。[0049]由于分布式协调服务提供的功能对于其它分布式应用非常关键,所以一般使用多个节点提供服务以达到高可用的目的,这些节点之间通过各种一致性协议如Paxos、zab及raft等来保证它们自身之间的同步,这样客户端可以连接到其中任何一个节点来获取服务,当任何一个节点由于网络或者其它故障无法连通时,客户端可以随时切换到其它节点。[0050]图1是根据一示例性实施例示出的一种负载均衡方法的流程图,如图1所示,负载均衡方法用于负载均衡装置中,该装置应用于服务器中,该方法包括以下步骤101-103:[0051]在步骤101中,获取第一节点正在服务的第一服务连接的连接数量。[0052]第一服务连接是第一节点和客户端之间建立的连接。每个节点可以为多个客户端提供服务。[0053]本实施例应用于分布式服务系统,该系统中设置有不止一个节点,每个节点上都服务着多个客户端,客户端和节点之间建立的连接称之为服务连接,本实施例中,与第一节点建立的服务连接叫做第一服务连接,与第二节点建立的服务连接叫做第二服务连接。连接数量是指第一节点正在连接的第一服务连接个数。且每个服务节点都需要确定断开哪些服务连接。[0054]在步骤102中,根据连接数量,获取第一服务连接的目标连接时长。[0055]其中,目标连接时长与连接数量呈负相关关系。连接数量越多,目标连接时长就越短,第一节点服务客户端的时间就越短;反之,连接数量越少,目标连接时长就越长,第一节点服务客户端的时间就越长。[0056]在步骤103中,断开目标服务连接。[0057]目标服务连接已连接的时长大于或等于目标连接时长。[0058]本实施例中,获取每个第一服务连接已连接的时长,判断每个已连接的时长是否大于或等于目标连接时长;如果A服务连接大于或等于目标连接时长,那么,将A服务连接作为目标服务连接。这里,每个第一服务连接的建立时刻不尽相同。[0059]本实施例中,节点的连接数量越多,每个服务连接的目标连接时长就越短(即节点服务客户端的时间就越短),断开服务连接也就越频繁,反之亦然,这样,原本连接在负载多的节点上的客户端就逐步会分散到负载少的节点伤,从而达到负载均衡,达到了有效率的利用系统资源的目的。[0060]本实施例中,该方法既可以是周期性获取连接数量,也可以在特定条件下触发获取连接数量。[0061]在一个实施例中,如图2所示,步骤101,即获取第一节点正在服务的第一服务连接的连接数量,可以包括:[0062]在步骤1011中,当第一节点建立新的第一服务连接,或者第一节点断开已连接的第一服务连接时,获取连接数量。[0063]这里,第一节点建立新的第一服务连接,或者第一节点断开已连接的第一服务连接都是指第一节点上的连接数量发生变化。由于连接数量发生变化,那么,目标连接时长也就会相应的改变。[0064]在一个实施例中,如图3所示,步骤102,即根据连接数量,获取第一服务连接的目标连接时长,可以包括:[0065]在步骤1021中,获取第一服务连接的预设连接时长区间。[0066]这里,预设连接时长区间是上限是预设连接时长下限,下限是预设连接时长上限所组成的时间范围。[0067]在步骤1022中,根据连接数量和预设连接时长区间,确定目标连接时长。[0068]预设连接时长下限和预设连接时长上限的差值除以连接数量就可以得到时间值;将时间值和预设连接时长下限相加,就得到了目标连接时长。[0069]示例的,假设预设连接时长区间是(1,2,单位是小时,连接数量是100,目标连接时长是1+2-1100,即1.01小时。[0070]值得说明的是,本实施例确定目标连接时长的方法不仅限于此一种,还可以通过其他方式确定,例如,按照不同的预设连接数量区间为节点设置不同的连接时长,连接数量在哪个预设连接数量区间,就选择哪个连接时长作为目标连接时长。[0071]在一个实施例中,如图4所示,在步骤103,即断开目标服务连接之后,方法还包括:[0072]在步骤104中,建立目标客户端与第二节点之间的第二服务连接。[0073]这里,目标客户端是已断开目标服务连接的客户端;第二节点是分布式系统中除第一节点之外的节点。[0074]对于一个目标客户端,当断开与第一节点连接的目标服务连接之后,需要与第二节点建立第二服务连接,当第二服务连接已连接的时长大于或等于第二节点的目标连接时长之后,就需要断开与第二节点的第二服务连接,与第三节点建立第三服务连接,直到分布式服务系统停止服务客户端为止。[0075]这样,目标客户端再次选择节点建立新连接时,可以随机选择节点,也可以按照节点的预设顺序轮询,如图5所示,分布式服务系统内设置有5个节点,分别为节点1、节点2、节点3、节点4和节点5。当目标客户端与节点1断开服务连接之后,目标客户端将与节点2建立服务连接;当目标客户端将与节点2断开服务连接之后,目标客户端将与节点3建立服务连接;当目标客户端将与节点3断开服务连接之后,目标客户端将与节点4建立服务连接;当目标客户端将与节点4断开服务连接之后,目标客户端将与节点5建立服务连接;当目标客户端将与节点5断开服务连接之后,目标客户端将与节点1建立服务连接;这样,依次轮询。[0076]下述为本公开装置实施例,可以用于执行本公开方法实施例。[0077]图6是根据一示例性实施例示出的一种负载均衡装置的框图,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。如图6所示,该负载均衡装置包括:[0078]第一获取模块201,用于获取第一节点正在服务的第一服务连接的连接数量,所述第一服务连接是第一节点和客户端之间建立的连接;[0079]第二获取模块202,用于根据所述连接数量,获取所述第一服务连接的目标连接时长,其中,所述目标连接时长与所述连接数量呈负相关关系;[0080]确定模块203,用于断开目标服务连接,所述目标服务连接己连接的时长大于或等于所述目标连接时长。[0081]在一个实施例中,如图7所示,所述第一获取模块201包括:[0082]第一获取子模块2011,用于当所述第一节点建立新的第一服务连接,或者所述第一节点断开已连接的第一服务连接时,获取所述连接数量。[0083]在一个实施例中,如图8所示,所述第二获取模块202包括:[0084]第二获取子模块2021,用于获取所述第一服务连接的预设连接时长区间;[0085]确定子模块2022,用于根据所述连接数量和所述预设连接时长区间,确定目标连接时长。[0086]在一个实施例中,如图9所示,所述装置还包括:[0087]建立模块204,用于建立目标客户端与第二节点之间的第二服务连接,所述目标客户端是已断开所述目标服务连接的客户端;所述第二节点是分布式系统中除所述第一节点之外的节点。[0088]根据本公开实施例的第三方面,提供一种负载均衡装置,包括:[0089]处理器;[0090]用于存储处理器可执行指令的存储器;[0091]其中,处理器被配置为:[0092]获取第一节点正在服务的第一服务连接的连接数量,所述第一服务连接是第一节点和客户端之间建立的连接;[0093]根据所述连接数量,获取所述第一服务连接的目标连接时长,其中,所述目标连接时长与所述连接数量呈负相关关系;[0094]断开目标服务连接,所述目标服务连接已连接的时长大于或等于所述目标连接时长。[0095]上述处理器还可被配置为:[0096]所述获取第一节点正在服务的第一服务连接的连接数量,包括:[0097]当所述第一节点建立新的第一服务连接,或者所述第一节点断开已连接的第一服务连接时,获取所述连接数量。[0098]所述根据所述连接数量,获取所述第一服务连接的目标连接时长,包括:[0099]获取所述第一服务连接的预设连接时长区间;[0100]根据所述连接数量和所述预设连接时长区间,确定目标连接时长。[0101]所述断开目标服务连接之后,所述方法还包括:[0102]建立目标客户端与第二节点之间的第二服务连接,所述目标客户端是已断开所述目标服务连接的客户端;所述第二节点是分布式系统中除所述第一节点之外的节点[0103]关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。[0104]图10是根据一示例性实施例示出的一种用于负载均衡装置的框图。例如,装置1900可以被提供为一服务器。装置1900包括处理组件1022,其进一步包括一个或多个处理器,以及由存储器1932所代表的存储器资源,用于存储可由处理组件1922的执行的指令,例如应用程序。存储器19:32中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1922被配置为执行指令,以执行上述方法。[0105]装置19〇0还可以包括一个电源组件I926被配置为执行装置1900的电源管理,一个有线或无线网络接口1950被配置为将装置1900连接到网络,和一个输入输出(1〇接口1958。装置1900可以操作基于存储在存储器1932的操作系统,例如WindowsServerTM,MacOSXTM,UnixTM,LinuxTM,FreeBSDTM或类似。[0106]一种非临时性计算机可读存储介质,当所述存储介质中的指令由装置1900的处理器执行时,使得装置1900能够执行上述负载均衡方法,所述方法包括:[0107]获取第一节点正在服务的第一服务连接的连接数量,所述第一服务连接是第一节点和客户端之间建立的连接;[0108]根据所述连接数量,获取所述第一服务连接的目标连接时长,其中,所述目标连接时长与所述连接数量呈负相关关系;[0109]断开目标服务连接,所述目标服务连接已连接的时长大于或等于所述目标连接时长。[0110]在一个实施例中,所述获取第一节点正在服务的第一服务连接的连接数量,包括:[0111]当所述第一节点建立新的第一服务连接,或者所述第一节点断开已连接的第一服务连接时,获取所述连接数量。[0112]在一个实施例中,所述根据所述连接数量,获取所述第一服务连接的目标连接时长,包括:[0113]获取所述第一服务连接的预设连接时长区间;[0114]根据所述连接数量和所述预设连接时长区间,确定目标连接时长。[0115]在一个实施例中,所述断开目标服务连接之后,所述方法还包括:[0116]建立目标客户端与第二节点之间的第二服务连接,所述目标客户端是已断开所述目标服务连接的客户端;所述第二节点是分布式系统中除所述第一节点之外的节点。[0117]本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。[0118]应当理解的是,本公开并不局限于上面己经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

权利要求:1.一种负载均衡方法,其特征在于,包括:获取第一节点正在服务的第一服务连接的连接数量,所述第一服务连接是所述第一节点和客户端之间建立的连接;根据所述连接数量,获取所述第一服务连接的目标连接时长,其中,所述目标连接时长与所述连接数量呈负相关关系;断开目标服务连接,所述目标服务连接已连接的时长大于或等于所述目标连接时长。2.根据权利要求1所述的方法,其特征在于,所述获取第一节点正在服务的第一服务连接的连接数量,包括:当所述第一节点建立新的第一服务连接,或者所述第一节点断开已连接的第一服务连接时,获取所述连接数量。3.根据权利要求1所述的方法,其特征在于,所述根据所述连接数量,获取所述第一服务连接的目标连接时长,包括:获取所述第一服务连接的预设连接时长区间;根据所述连接数量和所述预设连接时长区间,确定目标连接时长。4.根据权利要求1所述的方法,其特征在于,所述断开目标服务连接之后,所述方法还包括:建立目标客户端与第二节点之间的第二服务连接,所述目标客户端是己断开所述目标服务连接的客户端;所述第二节点是分布式系统中除所述第一节点之外的节点。5.—种负载均衡装置,其特征在于,包括:第一获取模块,用于获取第一节点正在服务的第一服务连接的连接数量,所述第一服务连接是所述第一节点和客户端之间建立的连接;第二获取模块,用于根据所述连接数量,获取所述第一服务连接的目标连接时长,其中,所述目标连接时长与所述连接数量呈负相关关系;断开模块,用于断开目标服务连接,所述目标服务连接已连接的时长大于或等于所述目标连接时长。6.根据权利要求5所述的装置,其特征在于,所述第一获取模块包括:第一获取子模块,用于当所述第一节点建立新的第一服务连接,或者所述第一节点断开已连接的第一服务连接时,获取所述连接数量。7.根据权利要求5所述的装置,其特征在于,所述第二获取模块包括:第二获取子模块,用于获取所述第一服务连接的预设连接时长区间;确定子模块,用于根据所述连接数量和所述预设连接时长区间,确定目标连接时长。8.根据权利要求5所述的装置,其特征在于,所述装置还包括:建立模块,用于建立目标客户端与第二节点之间的第二服务连接,所述目标客户端是已断开所述目标服务连接的客户端;所述第二节点是分布式系统中除所述第一节点之外的节点。9.一种负载均衡装置,其特征在于,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为:获取第一节点正在服务的第一服务连接的连接数量,所述第一服务连接是所述第—节点和客户端之间建立的连接;_根据所述连接数量,获取所述第一服务连接的目标连接时长,其中,所述目标连接时长与所述连接数量呈负相关关系;断开目标服务连接,所述目标服务连接己连接的时长大于或等于所述目标连接时长。_10•—种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-4任一项所述方法的步骤。

百度查询: 北京小米移动软件有限公司 负载均衡方法及装置

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。