CN105915650B - 负载均衡方法和装置 - Google Patents

负载均衡方法和装置 Download PDF

Info

Publication number
CN105915650B
CN105915650B CN201610452488.0A CN201610452488A CN105915650B CN 105915650 B CN105915650 B CN 105915650B CN 201610452488 A CN201610452488 A CN 201610452488A CN 105915650 B CN105915650 B CN 105915650B
Authority
CN
China
Prior art keywords
node
processing node
processing
state
instruction information
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
Application number
CN201610452488.0A
Other languages
English (en)
Other versions
CN105915650A (zh
Inventor
费翔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201610452488.0A priority Critical patent/CN105915650B/zh
Publication of CN105915650A publication Critical patent/CN105915650A/zh
Application granted granted Critical
Publication of CN105915650B publication Critical patent/CN105915650B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers

Abstract

本发明公开了一种负载均衡方法和装置。其中,该方法包括:根据访问请求,获取指示信息和指示信息所指示的第一处理节点,其中,第一处理节点为多个集群节点中的一个;若第一处理节点处于不可用状态,则在节点文件中指示信息所指向的区域内,依序查找多个集群节点中处于可用状态的第二处理节点,其中,节点文件包含多个用于记录多个集群节点的区域,不同区域按照不同的顺序记录多个集群节点;将访问请求发送至第二处理节点。本发明解决了在集群中的服务器出现故障时,集群服务器负载不均的技术问题。

Description

负载均衡方法和装置
技术领域
本发明涉及互联网领域,具体而言,涉及一种负载均衡方法和装置。
背景技术
网络游戏或者其它应用的后台系统在面对海量请求的时候都会遇到单机服务能力不足的情况,此时就需要通过负载均衡服务把请求按照一定的策略分散发送给多台服务器,这种策略就是负载均衡。现有的负载均衡方式有:随机,轮寻,哈希以及一致性哈希等策略,这些策略在遇到服务器扩容或者故障的情况时都存在一些不足。
具体地,若采用哈希策略,每台机器负责的数据段大小不相同,当一个服务器宕机时,需要由剩余的机器提供所有的数据服务,重新确定服务器与负责的数据段之间的对应关系,这样需要在不同的服务器之间大量迁移数据;若采用一致性哈希策略,所有的数据映射成一组大于服务器数量的虚拟节点,虚拟节点再映射到真实的服务器,当服务器宕机时,需将宕机节点的数据迁移至剩余的机器中的一台机器上,也就是说,某一台机器宕机,则剩余的机器中有一台机器将承受一倍的压力,造成负载的严重不均衡。
针对上述在集群中的服务器出现故障时,集群服务器负载不均的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种负载均衡方法和装置,以至少解决在集群中的服务器出现故障时,集群服务器负载不均的技术问题。
根据本发明实施例的一个方面,提供了一种负载均衡方法,该方法包括:根据访问请求,获取指示信息和指示信息所指示的第一处理节点,其中,第一处理节点为多个集群节点中的一个;若第一处理节点处于不可用状态,则在节点文件中指示信息所指向的区域内,依序查找多个集群节点中处于可用状态的第二处理节点,其中,节点文件包含多个用于记录多个集群节点的区域,不同区域按照不同的顺序记录多个集群节点;将访问请求发送至第二处理节点。
根据本发明实施例的另一方面,还提供了一种获取单元,用于根据访问请求,获取指示信息和指示信息所指示的第一处理节点,其中,第一处理节点为多个集群节点中的一个;查找单元,用于若第一处理节点处于不可用状态,则在节点文件中指示信息所指向的区域内,依序查找多个集群节点中处于可用状态的第二处理节点,其中,节点文件包含多个用于记录多个集群节点的区域,不同区域按照不同的顺序记录多个集群节点;发送单元,用于将访问请求发送至第二处理节点。
在本发明实施例中,在根据访问请求确定的第一处理节点不可用时,可以从确定该第一处理节点的指示信息指向的区域内,依序查找到一个处于可用状态的第二处理节点,通过该第二处理节点处理该访问请求。由于节点文件中包含的不同区域按照不同的顺序记录多个集群节点,若用于指示第一处理节点的指示信息指向了不同的区域,则可以获取到不同的第二处理节点,也即若第一处理节点故障,可以将原本由第一处理节点的不同访问请求分配至不同的第二服务器,从而解决了在集群中的服务器出现故障时,集群服务器负载不均的问题,以在第一处理节点处于不可用状态时,平衡多个集群节点中各个处理节点的负载。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种应用环境示意图;
图2是根据本发明实施例的一种可选的负载均衡方法的流程图;
图3是根据本发明实施例的另一种可选的负载均衡方法的流程图;
图4是根据本发明实施例的第一种可选的节点文件包含的矩阵的示意图;
图5是根据图4所示实施例的第一种可选的负载分配情况的示意图;
图6是根据本发明实施例的第二种可选的节点文件包含的矩阵的示意图;
图7是根据图6所示实施例的第二种可选的负载分配情况的示意图;
图8是根据本发明实施例的第三种可选的节点文件包含的矩阵的示意图;
图9是根据图8所示实施例的第三种可选的负载分配情况的示意图;
图10是根据本发明实施例的负载均衡装置的示意图;以及
图11是根据本发明实施例的终端或服务器的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先对本申请涉及的术语解释如下:
负载均衡:英文名称为Load Balance,其意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。
扩容:在本申请实施例中,扩容指服务器处理能力的扩大。
哈希(Hash):哈希算法也叫散列算法,一般来说满足这样的关系:f(data)=key,输入任意长度的data数据,经过哈希算法处理后输出一个定长的数据key。同时这个过程是不可逆的,无法由key逆推出data。
实施例1
根据本发明实施例,提供了一种负载均衡方法,,该方法可以用于如图1所示的环境中,该环境可以包括硬件环境和网络环境。
在本实施例中,该方法可以应用于如图1所示的多个集群节点和终端构成的硬件环境中。如图1所示,该多个集群节点101中可以包括多个处理节点,该多个集群节点对外作为一个整体,用于处理从终端103发送过来的访问请求。具体地,多个集群节点101通过网络与终端103通过集群服务器105(或者称之为负载均衡服务器)进行连接,上述网络包括但不限于:广域网、城域网或局域网。
需要说明的是,上述的多个集群节点可以为服务器侧的集群,也可以是客户端侧的集群,本申请对此不做限定。
下面结合图2对本申请的负载均衡方法进行详细描述,如图2所示,该方案可以通过如下方案实现:
步骤S202:根据访问请求,获取指示信息和指示信息所指示的第一处理节点,其中,第一处理节点为多个集群节点中的一个。
步骤S204:若第一处理节点处于不可用状态,则在节点文件中指示信息所指向的区域内,依序查找多个集群节点中处于可用状态的第二处理节点,其中,节点文件包含多个用于记录多个集群节点的区域,不同区域按照不同的顺序记录多个集群节点;
步骤S206:将访问请求发送至第二服务器。
通过上述实施例,在根据访问请求确定的第一处理节点不可用时,可以从确定该第一处理节点的指示信息指向的区域内,依序查找到一个处于可用状态的第二处理节点,通过该第二处理节点处理该访问请求。由于节点文件中包含的不同区域按照不同的顺序记录多个集群节点,若用于指示第一处理节点的指示信息指向了不同的区域,则可以获取到不同的第二处理节点,也即若第一处理节点故障,可以将原本由第一处理节点的不同访问请求分配至不同的第二服务器,从而解决了在集群中的服务器出现故障时,集群服务器负载不均的问题,以在第一处理节点处于不可用状态时,平衡多个集群节点中各个处理节点的负载。
上述实施例中的多个集群节点可以为位于服务器侧的集群,也可以为位于客户端侧的集群,本申请对此不做限定。例如,该多个集群节点位于服务器侧时多个集群节点构成一个组,一个终端与多个集群节点相互作用时,多个集群节点对于终端来讲是一个独立的服务器,在接收到终端的流量(包含多个访问请求)时,多个集群节点包含的多个处理节点,每个处理节点都可以承担一部分的处理负载(即上述的访问请求),并且可以实现处理负载在节点之间的动态分配。
在本申请实施例中,以多个集群节点在服务器侧为例详述本发明实施例。可以预先设置节点文件,该节点文件包含多个用于记录多个集群节点的区域,不同区域按照不同的顺序记录多个集群节点。可选地,每个区域中记录有多个集群节点中所有处理节点的信息,且每个区域中记录处理节点的顺序各不相同。
根据上述实施例,在接收到终端流量之后,对终端流量中的每个访问请求均可以执行上述操作,具体地,可以根据访问请求获取指示信息,该指示信息用于指示处理该访问请求的多个集群节点中的处理节点,确定该指示信息所指示的多个集群节点中的第一处理节点(如集群中的第一服务器),需要说明的是,一个指示信息指向唯一的一个处理节点,这里的唯一指的是记录在一个区域中的一个处理节点。
在获取用于处理访问请求的第一处理节点之后,可以获取第一处理节点的状态,若第一处理节点处于可用状态,则直接将访问请求转发至第一服务器;若第一处理节点处于不可用状态,则在节点文件中指示信息所指向的区域内,依序查找多个集群节点中处于可用状态的第二处理节点,将访问请求发送至该查找到的第二处理节点。
其中,可用状态是指第一处理节点可以正常处理访问请求的状态,如该第一处理节点的处理访问请求的服务开启、且该第一处理节点可以正常收发信息的状态,正常收发信息是指收发信息不超时的情况。
其中的不可用状态是指第一处理节点无法处理访问请求的状态,如,该第一处理节点的处理访问请求的服务关闭、或者该第一处理节点失去心跳的状态,失去心跳指的是超时未响应,也即,第一处理节点超过预定时间未对心跳信号进行响应。
可选地,心跳信号可以是接收访问请求的负载均衡服务器发送第一处理节点的。
下面以处理节点为服务器为例,详述上述实施例:
负载均衡服务器接收客户端发送的访问请求,根据访问请求确定指示信息,并获取指示信息所指示的第一服务器,获取第一服务器的状态,若第一服务器处于可用状态,则将访问请求发送给第一服务器;若第一服务器处于不可用状态,则基于指示信息确定第二服务器,将访问请求发送给处于可用状态的第二服务器。
根据本发明上述实施例,在节点文件中指示信息所指向的区域内,依序查找多个集群节点中处于可用状态的第二处理节点可以包括:以第一处理节点为基准,依序查找指示信息所指向的区域中处于可用状态的第二处理节点。
在上述实施例中,节点文件中记录有多个集群节点中各个处理节点的标识信息,如处理节点的ID、或者处理节点的编号等,本申请对各个处理节点的标识信息的表现形式不做具体限定。在查找第二处理节点的过程中,查找到的也是第二处理节点的标识信息,由于该标识信息与处理节点具有一一对应的关系,因此,查找到标识信息,也即查找到处理节点。
在本申请中并未对处理节点和处理节点的标识信息作明确区分,在上述实施例中限定的在节点文件中查找第二处理节点,实际上查找到的是标识信息,然后将访问请求发送至标识信息所对应的第二处理节点。
可选地,可以在节点文件中指示信息所对应的区域内,以记录第一处理节点的标识信息的位置为基准,依序查找第一个处于可用状态的标识信息,则确定查找到第二处理节点(与该查找到的第一个处于可用状态的标识信息对应的处理节点)。
通过上述实施例,由于以第一处理节点为基准,可以减少在指示信息所指向的区域内不必要的查找工作,例如,以第一处理节点为基准,依序查找,则不必对该区域内的所有处理节点进行状态判定,减少了查找的工作量。
具体地,以第一处理节点为基准,依序查找指示信息所指向的区域中处于可用状态的第二处理节点可以包括:从第一处理节点开始,在指示信息所指向的区域内按照预定顺序,查找第一个处于可用状态的第二处理节点,其中,在查找的过程中,若第一处理节点至最后一个处理节点均处于不可用状态,则从指示信息所指向的区域中的第一个处理节点开始,按照预定顺序重新查找第二处理节点。
根据本发明的上述实施例,在每个区域中按照一定的顺序记录多个集群节点,也即,在不同区域中第一处理节点的标识信息所在的位置不同,在第一处理节点处于不可用状态时,可以从该第一处理节点的标识信息所在的位置开始,按照预定顺序向前或者向后查找处于可用状态的处理节点。
进一步地,若在以该第一处理节点为开始的预定顺序上的所有处理节点均处于不可用状态,则从该区域中的第一个处理节点开始重新查找。
例如,节点文件包含的区域可以按照序列的方式存储多个集群节点,如表1所示,该表可以存储在文件节点中。
表1
区域 序列
1 1 2 3 4
2 1 3 2 4
3 1 4 2 3
如表1所示的示例中,多个集群节点包含四个处理节点,假设该四个处理节点的ID分别为:1、2、3和4。在该示例中,利用处理节点的ID记录处理节点,也即在表1中序列中的阿拉伯数字为处理节点的ID,该阿拉伯数字用于表示对应的处理节点。该实例中的节点文件中包含3个区域,每个区域按照一种顺序记录多个集群节点。
采用上述实施例中的负载均衡方法,在接收到访问请求之后,确定出的指示信息可以为位置信息,位置信息对应节点文件中的一个区域中的处理节点,与该位置信息对应的处理节点即为指示信息所指示的第一处理节点,指示信息可以唯一确定一个处理节点。如,指示信息为第一个区域中的第三个处理节点,则得到的第一处理节点的ID为3,若该第一处理节点处于不可用状态,则从“3”开始,按照预定顺序查找第一个处于可用状态的处理节点,若预定顺序为“从左到右”,则查找顺序为3→4,若“4”表示的处理节点处于不可用状态,则在从“3”开始的预定顺序上的所有处理节点(处理节点3和4)均处于不可用状态,则可以从该序列的第一个处理节点开始重新查找,也即,从“1”开始重新查找,直至查找到处于可用状态的处理节点,假设该四个处理节点中的处理节点1和2处于可用状态,则查找路径为:3→4→1。
又如,指示信息指向了第二个区域的第二位置,则确定出的第一处理节点为处理节点“3”,在这个方案中,虽然指示信息指向的仍然是处理节点“3”,但是此“3”非彼“3”,虽然标识信息“3”指向同一个处理节点,但是这两个标识信息处于不同的区域。假设该四个处理节点中的处理节点1和处理节点2处于可用状态,处理节点3和处理节点4处于不可用状态,若预定顺序还是从左到右,则在该示例中,查找路径为:3→2,查找出的第二处理节点为“2”表示的处理节点。
由上述示例可以看出,若指示信息指向了节点文件中的不同区域,即便是指示信息指向的是同一处理节点,若该“同一处理节点”处于不可用状态,则查找到的用于替代第一处理节点处理访问请求的第二处理节点也不同,从而可以在第一处理节点处于不可用状态时,将本应第一处理节点处理的请求分配至几个,而不是将其全部集中分配至一个可用的处理节点上,可以平衡负载。
在一个可选的实施例中,节点文件以矩阵的形式记录多个集群节点,矩阵的一行作为一个区域,每个区域中记录有多个集群节点中所有处理节点的信息,矩阵中的一个元素表示一个处理节点。
该矩阵的列数可以为多个集群节点的总数量,矩阵的行数可以小于列数,每行中记录有多个集群节点中的所有处理节点的节点信息,各行的列间距各不相同,列间距表示任意相邻两列之间表示的处理节点之间的间隔不同。
若节点信息为处理节点的标识信息(如ID),这里的间隔为相邻列之间的ID差值;若节点信息为文字描述信息,则获取预先定义的各个处理节点之间的差值,间隔为相邻列的处理节点之间的差值;若节点信息为处理节点的编号(如按照自增1的顺序编号),这里的间隔为相邻列之间的编号差值,每一行的每列间距可以自增1,如第一行的列间距为1,第二行的列间距为2,以此类推。
例如,处理节点为M个,则可以建立一个N*M的矩阵(M为质数,N<M,N为自然数),将所有的节点ID分成N行区域,每一行的每列间距自增1。每一列上的数字代表处理节点的ID,如表2所示,M=7,N=6,一行表示一个区域,每行中每列的数字表示对应的处理节点,其中,数字1表示ID为1的处理节点1,数字2表示ID为2的处理节点2,以此类推,数字7表示ID为7的处理节点7,这里例子中的处理节点的ID是按照自增1的方式生成的,每行的列间距可以不同,如第一行的列间距为1,第二行的列间距为2,以此类推。通过上述的设置规则可以保证每个处理节点在每行有且仅出现1次。
表2
列1 列2 列3 列4 列5 列6 列7
行1 1 2 3 4 5 6 7
行2 1 3 5 7 2 4 6
行3 1 4 7 3 6 2 5
行4 1 5 2 6 3 7 4
行5 1 6 4 2 7 5 3
行6 1 7 6 5 4 3 2
如表2所示,每行中包括7个处理节点的节点信息,且每个处理节点的信息仅出现一次,任意两行的多个集群节点的排列顺序不同,各行的列间距各不相同。
在一个可选的实现方式中,矩阵中的每个元素对应一个坐标,其中,根据访问请求,获取指示信息和指示信息所指示的第一处理节点可以包括:获取访问请求中访问对象的ID;对访问对象的ID进行哈希处理,得到目标节点坐标,其中,指示信息包括节点坐标;从矩阵中查找节点坐标对应的节点信息,并确定所述节点信息所表示的第一处理节点。
具体地,可以在接收到访问请求之后,对该访问请求中的访问对象的ID进行哈希处理,得到目标节点坐标,从矩阵中查找该节点坐标对应的第一处理节点。
在上述实施例中,若采用矩阵的表示方式,节点坐标包含行坐标和列坐标,可以用矩阵的行参数对访问对象的ID进行哈希得到行坐标,并用矩阵的列参数对访问对象的ID进行哈希得到列坐标,并在矩阵中查找节点坐标确定的节点信息,从而可以确定第一处理节点。
在一个可选的实施例中,可以在节点文件中记录各个处理节点的状态,也可以在其他文件中记录各个处理节点的状态,在确定出第一处理节点之后,可以从节点文件或其他文件中读取第一处理节点的状态,以确定第一处理节点是否处于不可用状态。
可选地,可以通过打标签或者颜色标记各个处理节点的状态,例如,采用打标签的方式标记处理节点的状态,若打上预定标签,则对应的处理节点为不可用状态,若没有打上预定标签,可以确定该处理节点处于可用状态。
又如,通过颜色标记处理节点的状态,绿色表示处理节点处于可用状态,黑色表示该处理节点处于不可用状态,若用颜色标记处理节点的状态,可以直接通过节点文件中记录的节点信息的展示颜色来表现。
进一步地,在从节点文件中读取第一处理节点的状态之前、或之后,方法还可以包括:若检测到第一处理节点的处理服务由开启变为关闭,则将第一处理节点的状态由可用状态变更为不可用状态;若检测到第一处理节点的处理服务由关闭变为开启,则将第一处理节点的状态由不可用状态变更为可用状态;若检测到第一处理节点的心跳超时,则将第一处理节点的状态由可用状态变更为不可用状态。
通过上述实施例,可以及时实现处理节点的状态变更。
下面结合图3至图9详述本发明实施例,在该实施例中节点文件采用矩阵的表现形式,处理节点的状态可以用节点信息所在位置的颜色表示,如图4、图6和图8中有灰度的位置表示该处理节点处于不可用状态。该示例中的处理节点为服务器(如业务服务器),接收访问请求的为负载均衡服务器,该负载均衡服务器上已开通负载均衡服务,该负载均衡服务可以通过下述实施例中的实现方式实现:
步骤S301:获取预先设置的虚拟节点矩阵。
具体地,可以获取集群服务器中服务器节点的数量M,基于该数量M创建一个N*M的虚拟节点矩阵,该矩阵中按照N个区域存储服务器ID(也即一行为一个区域),每一列上的数字代表服务器ID(或者服务器编号),每行中均包含所有的服务器ID,每一行中每列的间距自增1,通过上述的设置规则,可以保证每个服务器节点的ID在每行中只出现一次,且不同行中同一服务器节点ID的下一个服务器节点不同。
可选地,M为质数,N为小于M的自然数。
进一步地,矩阵中还可以记录服务器的工作状态,如可以通过打标签或者颜色来区分不同的工作状态,可选地,若以颜色区分不同的工作状态,可以使用绿色表示一个服务器为有效节点(即该节点处于可用状态,该节点可以处理消息),用黑色表示无效节点,即该节点未开启服务或丢失心跳。
另外矩阵的宽度即M决定了矩阵可以容纳服务器数量的上限,所以在设计之初就预先确定好,以满足矩阵扩容的目的。
步骤S302:接收客户端发送的访问请求。
访问请求可以为访问用户A数据的请求、请求服务器加载资源的请求等,本申请对此不做限定。
步骤S303:获取访问请求中访问对象的ID。
步骤S304:对访问对象的ID进行哈希处理,得到指示信息。
该实施例中的指示信息可以包括行坐标和列坐标,具体地,在通过矩阵确定用于处理该访问请求的服务器时,可以先获取服务器坐标。可选地,可以分别使用矩阵的行参数和列参数对访问对象的ID进行哈希处理,得到行坐标和列坐标,并从矩阵中读取该行坐标和列坐标对应的第一服务器。
步骤S305:判断第一服务器是否处于可用状态。
若该第一服务器处于可用状态,则执行步骤S306:直接将访问请求转发至第一服务器;若第一服务器处于不可用状态,则执行步骤S307。
步骤S307:在查找到第一服务器的行中,按固定方向查找第二服务器。
步骤S308:将访问请求发至第二服务器。
在查找到第一服务器的行(即区域)中,按固定方向(即上述实施例中的预定顺序,如从左到右,或从右到左)查找第一个处于可用状态的第二服务器。
下面结合图4和图5,对上述实施例进行举例说明:
假设访问对象的ID为1207,根据行列哈希hash得出的指示信息为服务器的坐标(2,4),其中,2为行坐标的值,4为列坐标的值。图4所示的矩阵中,4、5、6和7表示的服务器(分别为服务器4、服务器5、服务器6和服务器7)处于不可用状态。从图5所示的矩阵中查找到的第一服务器为s7(表示服务器7),但是该节点处于不可用的状态,则按照固定的方向(如向右)寻找到第一个可用节点s2(表示服务器2)。如果向右一直到最后一个节点依然不可用,则回到该行的第一列继续找,因为每一行都包含了所有服务器,只要有一台还能服务总能找到,图5中的“hash(1207)=[2,4]→s7→s2”表示对访问对象的ID(1207)的处理流程,,[2,4]为哈希得到的节点坐标,最后确定第二处理节点为s2,则将访问请求发送至s2。
又如,若经过行列hash得到的服务器坐标为(1,5),在图4示出的矩阵中该服务器坐标指向s5,按照该实施例中的实现方式查找到的第二服务器为s1。
在上述实施例中,由于每行的间距不同,并且每行都包含所有的服务器,所以通过上述方案,不仅可以保证每次都可以找到节点,而且可以使得处理节点被大致平均地分开,从而实现负载平均分散到各个节点的目的。
本申请还提供了一种可选的实现方案,在多个集群节点中有一个或多个处理节点的状态发生变化,可以变更该节点的状态。
例如,检测到当一个节点丢失时,在每行内都把该节点的状态进行变更(由可用状态变更为不可用状态),若使用颜色标注节点的状态,则可以将节点的显示颜色从绿色变为黑色,这样所有在其后的黑色节点都会自然往前找到下一个绿色节点作为新的处理节点。
又如,变更状态时,可以变更该处理节点的节点信息所在位置的展示颜色,如图6中示出的节点3的工作状态从可用变成不可用,则可以将其节点信息“3”所在位置的颜色由没有灰度变成有灰度的。如图7所示,在接收到访问请求之后,访问对象的ID为1206,对其进行哈希处理,得到的指示信息(如服务器坐标)为(1,3),该服务器坐标指向s3,由于服务器s3是不可用的,则依序从第一行中查找下一个处于可用状态的第二服务器,查找到的第二服务器为s1,图7中的“hash(1206)=[1,3]→s3→s1”表示对访问对象的ID(1206)的处理流程,[1,3]为哈希得到的节点坐标,最后确定第二处理节点为s1,则将访问请求发送至s1。
在另一个可选的实施例中,当检测到新增一个节点时,也可以将每行中该节点的状态进行变更,即,将不可用状态变更为可用状态,例如,可以在每行都把该节点从黑变绿点亮。由于每行间距不同,节点也大致分开,从而实现平滑扩容。
如图8所示,假设新增服务器4(该服务器的状态已经变更为可用状态),服务器3依然是不可用状态,则在接收到访问请求之后,访问对象的ID为1206,对其进行哈希处理,得到的如图9所示的指示信息(如服务器坐标)为(1,3),该服务器坐标指向s3,由于s3是不可用的,则依序从第一行中查找下一个处于可用状态的第二服务器,查找到的第二服务器为s4,图9中的“hash(1206)=[1,3]→s3→s4”表示对访问对象的ID(1206)的处理流程,[1,3]为哈希得到的节点坐标,最后确定第二处理节点为s4,则将访问请求发送至s4。
采用虚拟节点矩阵负载均衡方法,可以实现当某个节点不可用时,该节点的负载分散到其他所有服务器上,真正实现负载均衡。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例2
根据本发明实施例,还提供了一种用于实现负载均衡方法的负载均衡装置的实施例,如图10所示,该实施例中的负载均衡装置可以设置在上述的负载均衡服务器上。
具体地,该装置可以包括:获取单元1001,用于根据访问请求,获取指示信息和指示信息所指示的第一处理节点,其中,第一处理节点为多个集群节点中的一个;查找单元1003,用于若第一处理节点处于不可用状态,则在节点文件中指示信息所指向的区域内,依序查找多个集群节点中处于可用状态的第二处理节点,其中,节点文件包含多个用于记录多个集群节点的区域,不同区域按照不同的顺序记录多个集群节点;发送单元1005,用于将访问请求发送至第二处理节点。
通过上述实施例,在根据访问请求确定的第一处理节点不可用时,可以从确定该第一处理节点的指示信息指向的区域内,依序查找到一个处于可用状态的第二处理节点,通过该第二处理节点处理该访问请求。由于节点文件中包含的不同区域按照不同的顺序记录多个集群节点,若用于指示第一处理节点的指示信息指向了不同的区域,则可以获取到不同的第二处理节点,也即若第一处理节点故障,可以将原本由第一处理节点的不同访问请求分配至不同的第二服务器,从而解决了在集群中的服务器出现故障时,集群服务器负载不均的问题,以在第一处理节点处于不可用状态时,平衡多个集群节点中各个处理节点的负载。
上述实施例中的多个集群节点可以为位于服务器侧的集群,也可以为位于客户端侧的集群,本申请对此不做限定。例如,该多个集群节点位于服务器侧时多个集群节点构成一个组,一个终端与多个集群节点相互作用时,多个集群节点对于终端来讲是一个独立的服务器,在接收到终端的流量(包含多个访问请求)时,多个集群节点包含的多个处理节点,每个处理节点都可以承担一部分的处理负载,并且可以实现处理负载在节点之间的动态分配。
在本申请实施例中,以多个集群节点在服务器侧为例详述本发明实施例。可以预先设置节点文件,该节点文件包含多个用于记录多个集群节点的区域,不同区域按照不同的顺序记录多个集群节点。可选地,每个区域中记录有多个集群节点中所有处理节点的信息,且每个区域中记录处理节点的顺序各不相同。
根据上述实施例,在接收到终端流量之后,对终端流量中的每个访问请求均可以执行上述操作,具体地,可以根据访问请求获取指示信息,该指示信息用于指示处理该访问请求的多个集群节点中的处理节点,确定该指示信息所指示的多个集群节点中的第一处理节点(如集群中的第一服务器),需要说明的是,一个指示信息指向唯一的一个处理节点,这里的唯一指的是记录在一个区域中的一个处理节点。
在获取用于处理访问请求的第一处理节点之后,可以获取第一处理节点的状态,若第一处理节点处于可用状态,则直接将访问请求转发至第一服务器;若第一处理节点处于不可用状态,则在节点文件中指示信息所指向的区域内,依序查找多个集群节点中处于可用状态的第二处理节点,将访问请求发送至该查找到的第二处理节点。
其中,可用状态是指第一处理节点可以正常处理访问请求的状态,如该第一处理节点的处理访问请求的服务开启、且该第一处理节点可以正常收发信息的状态,正常收发信息是指收发信息不超时的情况。
其中的不可用状态是指第一处理节点无法处理访问请求的状态,如,该第一处理节点的处理访问请求的服务关闭、或者该第一处理节点失去心跳的状态,失去心跳指的是超时未响应,也即,第一处理节点超过预定时间未对心跳信号进行响应。
可选地,心跳信号可以是接收访问请求的负载均衡服务器发送第一处理节点的。
进一步地,查找单元可以包括:查找模块,用于以第一处理节点为基准,依序查找指示信息所指向的区域中处于可用状态的第二处理节点。
进一步地,查找模块包括:查找子模块,用于从第一处理节点开始,在指示信息所指向的区域内按照预定顺序,查找第一个处于可用状态的第二处理节点,其中,在查找的过程中,若第一处理节点至最后一个处理节点均处于不可用状态,则从指示信息所指向的区域中的第一个处理节点开始,按照预定顺序重新查找第二处理节点。
进一步地,节点文件以矩阵的形式记录多个集群节点,矩阵的一行作为一个区域,每个区域中记录有多个集群节点中多个处理节点的信息,矩阵中的一个元素表示一个处理节点。
进一步地,矩阵中的每个元素对应一个坐标,其中,获取单元包括:
获取模块,用于获取访问请求中访问对象的ID;哈希处理模块,用于对访问对象的ID进行哈希处理,得到目标节点坐标,其中,指示信息包括节点坐标;节点查找模块,用于从矩阵中,查找节点坐标对应的节点信息,并确定节点信息所表示的第一处理节点。
进一步地,装置还可以包括:读取单元,用于在获取指示信息所指示的第一处理节点之后,从节点文件中读取第一处理节点的状态,以确定第一处理节点是否处于不可用状态。
进一步地,装置还包括:第一检测单元,用于在从节点文件中读取第一处理节点的状态之前、或之后,若检测到第一处理节点的处理服务由开启变为关闭,则将第一处理节点的状态由可用状态变更为不可用状态;第二检测单元,用于在从节点文件中读取第一处理节点的状态之前、或之后,若检测到第一处理节点的处理服务由关闭变为开启,则将第一处理节点的状态由不可用状态变更为可用状态;第三检测单元,用于在从节点文件中读取第一处理节点的状态之前、或之后,若检测到第一处理节点的心跳超时,则将第一处理节点的状态由可用状态变更为不可用状态。
本实施例中所提供的各个模块与方法实施例对应步骤所提供的使用方法相同、应用场景也可以相同。当然,需要注意的是,上述模块涉及的方案可以不限于上述实施例中的内容和场景,且上述模块可以运行在计算机终端或移动终端,可以通过软件或硬件实现。
实施例3
本发明的实施例还提供了一种终端或服务器。可选地,在本实施例中,上述终端或服务器可以执行负载均衡方法,上述实施例中的负载均衡装置可以设置在该终端或服务器上。
如图11所示,该服务器或终端包括:一个或多个(图中仅示出一个)处理器1101、存储器1103、以及传输装置1105(如上述实施例中的发送装置),如图11所示,该终端还可以包括输入输出设备1107。
其中,存储器1103可用于存储软件程序以及模块,如本发明实施例中的负载均衡方法和装置对应的程序指令/模块,处理器1101通过运行存储在存储器1103内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的负载均衡方法。存储器1103可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器1103可进一步包括相对于处理器1101远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
上述的传输装置1105用于经由一个网络接收或者发送数据,还可以用于处理器与存储器之间的数据传输。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置1105包括一个网络适配器(Network Interface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置1105为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
其中,具体地,存储器1103用于存储应用程序。
处理器1101可以通过传输装置1105调用存储器1103存储的应用程序,以执行下述步骤:
根据访问请求,获取指示信息和指示信息所指示的第一处理节点,其中,第一处理节点为多个集群节点中的一个;若第一处理节点处于不可用状态,则在节点文件中指示信息所指向的区域内,依序查找多个集群节点中处于可用状态的第二处理节点,其中,节点文件包含多个用于记录多个集群节点的区域,不同区域按照不同的顺序记录多个集群节点;将访问请求发送至第二处理节点。
处理器1101还用于执行下述步骤:在节点文件中指示信息所指向的区域内,依序查找多个集群节点中处于可用状态的第二处理节点包括:以第一处理节点为基准,依序查找指示信息所指向的区域中处于可用状态的第二处理节点。
处理器1101还用于执行下述步骤:从第一处理节点开始,在指示信息所指向的区域内按照预定顺序,查找第一个处于可用状态的第二处理节点,其中,在查找的过程中,若第一处理节点至最后一个处理节点均处于不可用状态,则从指示信息所指向的区域中的第一个处理节点开始,按照预定顺序重新查找第二处理节点。
处理器1101还用于执行下述操作:节点文件以矩阵的形式记录多个集群节点,矩阵的一行作为一个区域,每个区域中记录有多个集群节点中多个处理节点的信息,矩阵中的一个元素表示一个处理节点。
处理器1101还用于执行下述步骤:矩阵中的每个元素对应一个坐标,其中,根据访问请求,获取指示信息和指示信息所指示的第一处理节点包括:获取访问请求中访问对象的ID;对访问对象的ID进行哈希处理,得到目标节点坐标,其中,指示信息包括节点坐标;
从矩阵中,查找节点坐标对应的节点信息,并确定节点信息所表示的第一处理节点。
处理器1101还用于执行下述步骤:在获取指示信息所指示的第一处理节点之后,从节点文件中读取第一处理节点的状态,以确定第一处理节点是否处于不可用状态。
处理器1101还用于执行下述步骤:在从节点文件中读取第一处理节点的状态之前、或之后,若检测到第一处理节点的处理服务由开启变为关闭,则将第一处理节点的状态由可用状态变更为不可用状态;若检测到第一处理节点的处理服务由关闭变为开启,则将第一处理节点的状态由不可用状态变更为可用状态;若检测到第一处理节点的心跳超时,则将第一处理节点的状态由可用状态变更为不可用状态。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
需要进一步说明的是,寄存区域为系统的内存和系统处理器中的寄存器。
本领域普通技术人员可以理解,图11所示的结构仅为示意,终端可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile InternetDevices,MID)、PAD等终端设备。图11其并不对上述电子装置的结构造成限定。例如,终端还可包括比图11中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图11所示不同的配置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。
实施例4
本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于执行负载均衡方法的程序代码。
可选地,在本实施例中,上述存储介质可以位于上述实施例所示的网络中的多个网络设备中的至少一个网络设备上。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:
根据访问请求,获取指示信息和指示信息所指示的第一处理节点,其中,第一处理节点为多个集群节点中的一个;若第一处理节点处于不可用状态,则在节点文件中指示信息所指向的区域内,依序查找多个集群节点中处于可用状态的第二处理节点,其中,节点文件包含多个用于记录多个集群节点的区域,不同区域按照不同的顺序记录多个集群节点;将访问请求发送至第二处理节点。
存储介质被设置为存储用于执行以下步骤的程序代码:在节点文件中指示信息所指向的区域内,依序查找多个集群节点中处于可用状态的第二处理节点包括:以第一处理节点为基准,依序查找指示信息所指向的区域中处于可用状态的第二处理节点。
存储介质被设置为存储用于执行以下步骤的程序代码:从第一处理节点开始,在指示信息所指向的区域内按照预定顺序,查找第一个处于可用状态的第二处理节点,其中,在查找的过程中,若第一处理节点至最后一个处理节点均处于不可用状态,则从指示信息所指向的区域中的第一个处理节点开始,按照预定顺序重新查找第二处理节点。
存储介质被设置为存储用于执行以下步骤的程序代码:节点文件以矩阵的形式记录多个集群节点,矩阵的一行作为一个区域,每个区域中记录有多个集群节点中多个处理节点的信息,矩阵中的一个元素表示一个处理节点。
存储介质被设置为存储用于执行以下步骤的程序代码:矩阵中的每个元素对应一个坐标,其中,根据访问请求,获取指示信息和指示信息所指示的第一处理节点包括:获取访问请求中访问对象的ID;对访问对象的ID进行哈希处理,得到目标节点坐标,其中,指示信息包括节点坐标;从矩阵中,查找节点坐标对应的节点信息,并确定节点信息所表示的第一处理节点。
存储介质被设置为存储用于执行以下步骤的程序代码:在获取指示信息所指示的第一处理节点之后,从节点文件中读取第一处理节点的状态,以确定第一处理节点是否处于不可用状态。
存储介质被设置为存储用于执行以下步骤的程序代码:在从节点文件中读取第一处理节点的状态之前、或之后,若检测到第一处理节点的处理服务由开启变为关闭,则将第一处理节点的状态由可用状态变更为不可用状态;若检测到第一处理节点的处理服务由关闭变为开启,则将第一处理节点的状态由不可用状态变更为可用状态;若检测到第一处理节点的心跳超时,则将第一处理节点的状态由可用状态变更为不可用状态。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (10)

1.一种负载均衡方法,其特征在于,包括:
根据访问请求,获取指示信息和所述指示信息所指示的第一处理节点,其中,所述第一处理节点为多个集群节点中的一个;
从节点文件中读取所述第一处理节点的状态,以确定所述第一处理节点是否处于不可用状态,其中,所述节点文件以矩阵的形式记录所述多个集群节点,矩阵的一行作为一个用于记录所述多个集群节点的区域,不同区域按照不同的顺序记录有所述多个集群节点中的多个处理节点的信息,所述矩阵中的一个元素表示一个处理节点;
若所述第一处理节点处于所述不可用状态,则在所述节点文件中所述指示信息所指向的区域内,依序查找所述多个集群节点中处于可用状态的第二处理节点;
将所述访问请求发送至所述第二处理节点。
2.根据权利要求1所述的方法,其特征在于,在节点文件中所述指示信息所指向的区域内,依序查找所述多个集群节点中处于可用状态的第二处理节点包括:
以所述第一处理节点为基准,依序查找所述指示信息所指向的区域中处于所述可用状态的第二处理节点。
3.根据权利要求2所述的方法,其特征在于,以所述第一处理节点为基准,依序查找所述指示信息所指向的区域中处于所述可用状态的第二处理节点包括:
从所述第一处理节点开始,在所述指示信息所指向的区域内按照预定顺序,查找第一个处于所述可用状态的第二处理节点,
其中,在查找的过程中,若所述第一处理节点至最后一个处理节点均处于所述不可用状态,则从所述指示信息所指向的区域中的第一个处理节点开始,按照所述预定顺序重新查找所述第二处理节点。
4.根据权利要求1所述的方法,其特征在于,所述矩阵中的每个元素对应一个坐标,其中,根据访问请求,获取指示信息和所述指示信息所指示的第一处理节点包括:
获取所述访问请求中访问对象的ID;
对所述访问对象的ID进行哈希处理,得到目标节点坐标,其中,所述指示信息包括所述节点坐标;
从所述矩阵中,查找所述节点坐标对应的节点信息,并确定所述节点信息所表示的第一处理节点。
5.根据权利要求1所述的方法,其特征在于,在从所述节点文件中读取所述第一处理节点的状态之前、或之后,所述方法还包括:
若检测到所述第一处理节点的处理服务由开启变为关闭,则将所述第一处理节点的状态由所述可用状态变更为所述不可用状态;
若检测到所述第一处理节点的处理服务由关闭变为开启,则将所述第一处理节点的状态由所述不可用状态变更为所述可用状态;
若检测到所述第一处理节点的心跳超时,则将所述第一处理节点的状态由所述可用状态变更为所述不可用状态。
6.一种负载均衡装置,其特征在于,包括:
获取单元,用于根据访问请求,获取指示信息和所述指示信息所指示的第一处理节点,其中,所述第一处理节点为多个集群节点中的一个;
读取单元,用于在获取所述指示信息所指示的第一处理节点之后,从节点文件中读取所述第一处理节点的状态,以确定所述第一处理节点是否处于不可用状态,其中,所述节点文件以矩阵的形式记录所述多个集群节点,矩阵的一行作为一个用于记录所述多个集群节点的区域,不同区域按照不同的顺序记录有所述多个集群节点中的多个处理节点的信息,所述矩阵中的一个元素表示一个处理节点;
查找单元,用于若所述第一处理节点处于所述不可用状态,则在所述节点文件中所述指示信息所指向的区域内,依序查找所述多个集群节点中处于可用状态的第二处理节点;
发送单元,用于将所述访问请求发送至所述第二处理节点。
7.根据权利要求6所述的装置,其特征在于,所述查找单元包括:
查找模块,用于以所述第一处理节点为基准,依序查找所述指示信息所指向的区域中处于所述可用状态的第二处理节点。
8.根据权利要求7所述的装置,其特征在于,所述查找模块包括:
查找子模块,用于从所述第一处理节点开始,在所述指示信息所指向的区域内按照预定顺序,查找第一个处于所述可用状态的第二处理节点,
其中,在查找的过程中,若所述第一处理节点至最后一个处理节点均处于所述不可用状态,则从所述指示信息所指向的区域中的第一个处理节点开始,按照所述预定顺序重新查找所述第二处理节点。
9.根据权利要求6所述的装置,其特征在于,所述矩阵中的每个元素对应一个节点坐标,其中,所述获取单元包括:
获取模块,用于获取所述访问请求中访问对象的ID;
哈希处理模块,用于对所述访问对象的ID进行哈希处理,得到目标节点坐标,其中,所述指示信息包括所述节点坐标;
节点查找模块,用于从所述矩阵中,查找所述节点坐标对应的节点信息,并确定所述节点信息所表示的第一处理节点。
10.根据权利要求6所述的装置,其特征在于,所述装置还包括:
第一检测单元,用于在从所述节点文件中读取所述第一处理节点的状态之前、或之后,若检测到所述第一处理节点的处理服务由开启变为关闭,则将所述第一处理节点的状态由所述可用状态变更为所述不可用状态;
第二检测单元,用于在从所述节点文件中读取所述第一处理节点的状态之前、或之后,若检测到所述第一处理节点的处理服务由关闭变为开启,则将所述第一处理节点的状态由所述不可用状态变更为所述可用状态;
第三检测单元,用于在从所述节点文件中读取所述第一处理节点的状态之前、或之后,若检测到所述第一处理节点的心跳超时,则将所述第一处理节点的状态由所述可用状态变更为所述不可用状态。
CN201610452488.0A 2016-06-21 2016-06-21 负载均衡方法和装置 Active CN105915650B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610452488.0A CN105915650B (zh) 2016-06-21 2016-06-21 负载均衡方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610452488.0A CN105915650B (zh) 2016-06-21 2016-06-21 负载均衡方法和装置

Publications (2)

Publication Number Publication Date
CN105915650A CN105915650A (zh) 2016-08-31
CN105915650B true CN105915650B (zh) 2019-05-24

Family

ID=56758239

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610452488.0A Active CN105915650B (zh) 2016-06-21 2016-06-21 负载均衡方法和装置

Country Status (1)

Country Link
CN (1) CN105915650B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106790692A (zh) * 2017-02-20 2017-05-31 郑州云海信息技术有限公司 一种多集群的负载均衡方法和装置
CN107018042B (zh) * 2017-04-13 2020-03-20 广东神马搜索科技有限公司 用于在线服务系统的追踪方法及追踪系统
CN109818997A (zh) * 2017-11-21 2019-05-28 中兴通讯股份有限公司 一种负载均衡方法、系统及存储介质
CN108768985A (zh) * 2018-05-17 2018-11-06 成都致云科技有限公司 一种访问节点接入分配方法和装置
CN108933824A (zh) * 2018-06-28 2018-12-04 郑州云海信息技术有限公司 一种保持RabbitMQ服务的方法、系统及相关装置
CN110009759A (zh) * 2019-04-18 2019-07-12 众安信息技术服务有限公司 基于区块链的考勤方法、考勤系统及考勤装置
CN111046246B (zh) * 2019-08-05 2020-11-10 腾讯科技(深圳)有限公司 标签更新方法及装置、分布式存储系统
CN111104266A (zh) * 2019-12-23 2020-05-05 北京大米科技有限公司 访问资源的分配方法、装置、存储介质和电子设备
CN113472823B (zh) * 2020-03-30 2023-06-27 深圳Tcl数字技术有限公司 一种服务器访问方法、装置、智能终端及存储介质
CN111556125B (zh) * 2020-04-24 2022-05-17 北京奇艺世纪科技有限公司 一种访问请求分配方法、负载均衡设备及电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102694863A (zh) * 2012-05-30 2012-09-26 电子科技大学 基于负载调整和系统容错的分布式存储系统的实现方法
CN104461740A (zh) * 2014-12-12 2015-03-25 国家电网公司 一种跨域集群计算资源聚合和分配的方法
CN104852934A (zh) * 2014-02-13 2015-08-19 阿里巴巴集团控股有限公司 基于前端调度实现流量分配的方法、装置和系统
CN105120008A (zh) * 2015-09-14 2015-12-02 南京邮电大学 一种基于分层的分布式云计算中心负载平衡方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030217077A1 (en) * 2002-05-16 2003-11-20 Schwartz Jeffrey D. Methods and apparatus for storing updatable user data using a cluster of application servers

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102694863A (zh) * 2012-05-30 2012-09-26 电子科技大学 基于负载调整和系统容错的分布式存储系统的实现方法
CN104852934A (zh) * 2014-02-13 2015-08-19 阿里巴巴集团控股有限公司 基于前端调度实现流量分配的方法、装置和系统
CN104461740A (zh) * 2014-12-12 2015-03-25 国家电网公司 一种跨域集群计算资源聚合和分配的方法
CN105120008A (zh) * 2015-09-14 2015-12-02 南京邮电大学 一种基于分层的分布式云计算中心负载平衡方法

Also Published As

Publication number Publication date
CN105915650A (zh) 2016-08-31

Similar Documents

Publication Publication Date Title
CN105915650B (zh) 负载均衡方法和装置
WO2022160886A1 (en) Task allocation method, apparatus, storage medium, and electronic device
CN107656988A (zh) 文档编辑方法及系统
CN107995304A (zh) 一种基于cookie的会话保持方法及装置
CN105930191B (zh) 系统服务的重载方法及装置
CN108282527A (zh) 生成服务实例的分布式系统和方法
CN108933829A (zh) 一种负载均衡方法及装置
CN110442610A (zh) 负载均衡的方法、装置、计算设备以及介质
CN108696581A (zh) 分布式信息的缓存方法、装置、计算机设备以及存储介质
CN106681799B (zh) 插入磁盘的方法、装置和系统
CN107147748A (zh) 文件上传方法和装置
CN108769242A (zh) 一种报文调度方法及装置
CN108121716A (zh) 处理问题单的方法和问题单处理系统
CN107241387A (zh) 数据请求的处理方法、装置及系统
CN104426968B (zh) 数据管理方法和装置
CN107430582A (zh) 瘦客户端系统、连接管理装置、虚拟机操作装置、方法和存储介质
CN107105049A (zh) 数据迁移方法和装置
CN102668453B (zh) 资源的容错和可缩放的负载分布
CN107347015A (zh) 一种内容分发网络的识别方法、装置及系统
CN107678906A (zh) 硬盘管理方法和系统
CN106027356A (zh) 一种隧道标识的转换方法及装置
CN109218278A (zh) 安全规则的动态实现
CN106933644A (zh) 数据处理方法和装置
CN106484738A (zh) 一种页面处理方法及装置
CN111353136A (zh) 一种操作请求的处理方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant