CN109995839B - 一种负载均衡方法、***及负载均衡器 - Google Patents
一种负载均衡方法、***及负载均衡器 Download PDFInfo
- Publication number
- CN109995839B CN109995839B CN201810000886.8A CN201810000886A CN109995839B CN 109995839 B CN109995839 B CN 109995839B CN 201810000886 A CN201810000886 A CN 201810000886A CN 109995839 B CN109995839 B CN 109995839B
- Authority
- CN
- China
- Prior art keywords
- server
- servers
- load
- initial
- response 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
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
- 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
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明提供一种负载均衡方法、***及负载均衡器,其中,所述负载均衡方法包括:向初始服务器发送新进连接请求消息,接收上报服务器发送的响应消息,根据响应消息,确定由目标服务器处理新进连接对应的消息;其中,新进连接请求消息用于初始服务器发起多个服务器之间的交互过程,以由上报服务器获取多个服务器的负荷信息,并从多个服务器中选取负荷最小的服务器作为目标服务器,响应消息中包括目标服务器的标识信息。本发明的方案,能够根据实际每个服务器的实时压力情况及时调整新进连接的承担者,在消息队列这类容易导致集群内不同服务器之间负荷差异大的情况下,可以使不同服务器之间的负荷更加均衡。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种载均衡方法、***及负载均衡器。
背景技术
在当前云计算、大数据技术盛行的背景下,分布式***架构是IT***普遍采用的技术架构,而消息队列(Message Queue)是分布式***架构的解耦***中不同功能部件的关键技术。通过消息队列,可以将***中产生数据的功能模块(生产者应用)与使用数据的功能模块(消费者应用)进行解耦,从而很大程度上提高***的灵活性、可扩展性。
在***处理规模较小、可靠性要求不高的情况下,消息队列使用单台服务器(主机)即可满足***的基本需求。单台服务器可以承担几千条每秒的消息传送速率。但是在***规模很大、可靠性要求高的情况下,单台服务器的部署方式将难以满足要求,消息队列本身也必须分布式部署。
消息队列部署在分布式的多个服务器上,必然带来多个服务器之间的负载均衡问题,在现有技术中,一般采取如下解决方案:
负载均衡器(硬件或软件)负责统一消息队列主机集群的对外接口,以公共的IP地址和端口号统一为“消费者应用”和“生产者应用”提供连接服务,且负载均衡器面向多台消息队列主机(即服务器),采用预定的或者动态的策略进行负荷分担。其中,负载均衡器在采用预定的或者动态的策略进行负荷分担时,该策略均由负载均衡器实施,后台集群服务器均直接连接负载均衡器,接受新进连接或者实时调整服务器权重。
但是,现有技术中的由负载均衡器根据预定的或者动态的策略进行负荷分担的方案常具有如下问题:
消息队列软件由不同的队列组成,每个队列中积累的消息数量由消费者应用的处理情况决定,而不同的队列分布在不同的服务器上,容易导致不同服务器上的队列中的消息数量形成较大差异,从而对服务器形成不同的压力,在生产者应用高频次的发送消息的情况下,各服务器难以及时的将动态权重通知负载均衡器进行动态调整,从而导致集群内不同服务器之间压力不均。即现有的消息队列的负载均衡方法难以保证各个服务器均衡负荷。
发明内容
本发明实施例提供一种负载均衡方法、***及负载均衡器,以解决现有的消息队列的负载均衡方法难以保证各个服务器均衡负荷的问题。
为了解决上述问题,第一方面,本发明实施例提供了一种负载均衡方法,应用于负载均衡器,包括:
向初始服务器发送新进连接请求消息;
接收上报服务器发送的响应消息;
根据所述响应消息,确定由目标服务器处理新进连接对应的消息;
其中,所述新进连接请求消息用于所述初始服务器发起多个服务器之间的交互过程,以由所述上报服务器获取所述多个服务器的负荷信息,并从所述多个服务器中选取负荷最小的服务器作为所述目标服务器,所述响应消息中包括所述目标服务器的标识信息。
优选的,所述向初始服务器发送新进连接请求消息之前,所述方法还包括按照下述方式中的一种确定所述初始服务器:
通过轮询所述多个服务器,确定所述初始服务器;
将上一次接收新进连接请求消息的服务器确定为所述初始服务器;
根据预设均衡策略,确定所述初始服务器。
第二方面,本发明实施例还提供了一种负载均衡方法,应用于负载均衡***,其中,所述负载均衡***包括负载均衡器和多个服务器,所述多个服务器包括初始服务器和上报服务器,所述方法包括:
所述负载均衡器向所述初始服务器发送新进连接请求消息;
所述初始服务器根据所述新进连接请求消息,发起所述多个服务器之间的交互过程;
所述上报服务器根据所述多个服务器之间的交互过程,获取所述多个服务器的负荷信息,并从所述多个服务器中选取负荷最小的服务器作为目标服务器;
所述上报服务器向所述负载均衡器发送响应消息,其中,所述响应消息中包括所述目标服务器的标识信息;
所述负载均衡器根据所述响应消息,确定由所述目标服务器处理新进连接对应的消息。
优选的,所述多个服务器之间的交互过程为链状交互过程,所述初始服务器为所述多个服务器的链状结构中的第一个服务器,所述上报服务器为所述多个服务器的链状结构中的最后一个服务器;所述上报服务器根据所述多个服务器之间的交互过程,获取所述多个服务器的负荷信息,包括:
所述上报服务器通过负荷信息在所述多个服务器的链状结构中的依次叠加上报过程,获取所述多个服务器的负荷信息。
优选的,所述方法还包括:
对于所述多个服务器中的故障服务器,在负荷信息依次叠加上报过程中,所述故障服务器的上一个服务器通过跳过所述故障服务器,将待上报的负荷信息上报给所述故障服务器的下一个服务器。
优选的,所述方法还包括:
对于所述多个服务器的新增服务器,所述上报服务器获取所述新增服务器的负荷信息。
优选的,所述上报服务器向所述负载均衡器发送响应消息,包括:
所述上报服务器向其在所述多个服务器的链状结构中的上一个服务器发送所述响应消息,以通过所述响应消息在所述多个服务器的链状结构中的依次返回过程,由所述初始服务器向所述负载均衡器发送所述响应消息。
优选的,所述多个服务器之间的交互过程为星型交互过程,所述初始服务器和所述上报服务器是同一个服务器;所述上报服务器根据所述多个服务器之间的交互过程,获取所述多个服务器的负荷信息,包括:
所述上报服务器通过与所述多个服务器中除所述上报服务器外的其他服务器的交互过程,获取所述其他服务器的负荷信息。
第三方面,本发明实施例还提供了一种负载均衡器,包括处理器、接收器和发送器;
其中,所述发送器用于:向初始服务器发送新进连接请求消息;
所述接收器用于:接收上报服务器发送的响应消息;
所述处理器用于:根据所述响应消息,确定由目标服务器处理新进连接对应的消息。
所述新进连接请求消息用于所述初始服务器发起多个服务器之间的交互过程,以由所述上报服务器获取所述多个服务器的负荷信息,并从所述多个服务器中选取负荷最小的服务器作为所述目标服务器,所述响应消息中包括所述目标服务器的标识信息。
优选的,所述处理器还用于按照下述方式中的一种确定所述初始服务器:
通过轮询所述多个服务器,确定所述初始服务器;
将上一次接收新进连接请求消息的服务器确定为所述初始服务器;
根据预设均衡策略,确定所述初始服务器。
第四方面,本发明实施例还提供了一种负载均衡***,包括负载均衡器和多个服务器,所述多个服务器包括初始服务器和上报服务器;
其中,所述负载均衡器用于:向所述初始服务器发送新进连接请求消息;
所述初始服务器用于:根据所述新进连接请求消息,发起所述多个服务器之间的交互过程;
所述上报服务器用于:根据所述多个服务器之间的交互过程,获取所述多个服务器的负荷信息,并从所述多个服务器中选取负荷最小的服务器作为目标服务器,向所述负载均衡器发送响应消息,所述响应消息中包括所述目标服务器的标识信息;
所述负载均衡器还用于:根据所述响应消息,确定由所述目标服务器处理新进连接对应的消息。
优选的,所述多个服务器之间的交互过程为链状交互过程,所述初始服务器为所述多个服务器的链状结构中的第一个服务器,所述上报服务器为所述多个服务器的链状结构中的最后一个服务器;所述上报服务器还用于:
通过负荷信息在所述多个服务器的链状结构中的依次叠加上报过程,获取所述多个服务器的负荷信息。
优选的,对于所述多个服务器中的故障服务器,在负荷信息依次叠加上报过程中,所述故障服务器的上一个服务器通过跳过所述故障服务器,将待上报的负荷信息上报给所述故障服务器的下一个服务器。
优选的,对于所述多个服务器的新增服务器,所述上报服务器还用于:获取所述新增服务器的负荷信息。
优选的,所述上报服务器还用于:
向其在所述多个服务器的链状结构中的上一个服务器发送所述响应消息,以通过所述响应消息在所述多个服务器的链状结构中的依次返回过程,由所述初始服务器向所述负载均衡器发送所述响应消息。
优选的,所述多个服务器之间的交互过程为星型交互过程,所述初始服务器和所述上报服务器是同一个服务器;所述上报服务器还用于:
通过与所述多个服务器中除所述上报服务器外的其他服务器的交互过程,获取所述其他服务器的负荷信息。
第五方面,本发明实施例还提供了一种终端,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其中,所述计算机程序被所述处理器执行时实现上述负载均衡方法的步骤。
第六方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,其中,所述计算机程序被所述处理器执行时实现上述负载均衡方法的步骤。
本发明实施例的负载均衡方法,通过利用多个服务器之间的交互过程来由服务器选取负荷最小的服务器作为目标服务器,能够使得消息队列集群内的服务器参与到负载均衡的决策过程中,从而根据实际每个服务器的实时压力情况及时调整新进连接的承担者,在消息队列这类容易导致集群内不同服务器之间负荷差异大的情况下,可以使不同服务器之间的负荷更加均衡。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例的负载均衡***的结构示意图;
图2为本发明实施例的链状结构的示意图;
图3为本发明一实施例的负载均衡方法的流程图;
图4为本发明具体实例的负载均衡过程的流程图;
图5为本发明另一实施例的负载均衡方法的流程图;
图6为本发明实施例的负载均衡的结构示意图之一;
图7为本发明实施例的负载均衡的结构示意图之二。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参加图1所示,本发明实施例提供了一种负载均衡***,包括负载均衡器11和多个服务器12。
其中,负载均衡器11可采用硬件形式或者采用软件形式。负载均衡器11负责服务器集群的对外接口,可以公共的IP地址和端口号统一为消费者应用01和生产者应用02提供连接服务。负载均衡器11分别与多个服务器12连接,以对新进连接对应的消息进行分发。
多个服务器12中至少包括初始服务器和上报服务器。可选的,多个服务器12之间具有互联接口,用于交互自身的负荷信息。服务器中可包括交换机、消息队列等。
具体的,负载均衡器11用于在接收到消费者应用01或生产者应用02发送的新进连接请求消息后,向初始服务器12发送新进连接请求消息;初始服务器12用于根据新进连接请求消息,发起多个服务器12之间的交互过程;上报服务器12用于根据多个服务器12之间的交互过程,获取多个服务器12的负荷信息,并从多个服务器12中选取负荷最小的服务器作为目标服务器12,向负载均衡器11发送响应消息,响应消息中包括目标服务器12的标识信息;负载均衡器11还用于根据响应消息,确定由目标服务器12处理新进连接对应的消息,以及分发新进连接对应的消息至目标服务器12。此响应消息还可发送至目标服务器,使得目标服务器获知自己将承担新进连接的后续处理工作。
本发明实施例的负载均衡***,通过利用多个服务器之间的交互过程来由服务器选取负荷最小的服务器作为目标服务器,能够使得消息队列集群内的服务器参与到负载均衡的决策过程中,从而根据实际每个服务器的实时压力情况及时调整新进连接的承担者,在消息队列这类容易导致集群内不同服务器之间负荷差异大的情况下,可以使不同服务器之间的负荷更加均衡。
本发明实施例中,负载均衡器11在向初始服务器12发送新进连接请求消息之前,可首先确定初始服务器。而确定初始服务器的方式可为:通过轮询多个服务器,确定初始服务器;或者,将上一次接收新进连接请求消息的服务器确定为初始服务器;或者,根据预设均衡策略,确定初始服务器;等等。
本发明具体实施例中,多个服务器之间可采用链状结构,对应的,多个服务器之间的交互过程为链状交互过程,初始服务器为多个服务器的链状结构中的第一个服务器,上报服务器为多个服务器的链状结构中的最后一个服务器。此情况下,上报服务器可用于:通过负荷信息在多个服务器的链状结构中的依次叠加上报过程,获取多个服务器的负荷信息。
以N个服务器为例,该N个服务器的链状结构可如图2所示。其中,服务器1为初始服务器,服务器N为上报服务器,负荷信息的依次叠加上报过程为:服务器1获取自身的负荷信息1,并将负荷信息1发送到下一新增节点即服务器2;服务器2获取自身的负荷信息2,并将负荷信息1和负荷信息2发送到下一新增节点即服务器3;以此类推,直至服务器N,服务器N获取自身的负荷信息N以及前N-1个服务器的负荷信息,并从N个服务器中选取负荷最小的服务器作为目标服务器。
需说明的是,根据消息队列集群内服务器数量的多少,一个链状结构中的多个服务器可以是集群内的所有服务器或者部分服务器。当集群内服务器的数量较少时,可通过配置设定让集群内的所有服务器组成链状结构并参与交互过程,以选出负荷最小的服务器。当集群内服务器的数量较多时,可首先对服务器进行进一步划分分区,然后通过配置设定让同一分区内的服务器组成链状结构并参与交互过程,不同分区间的服务器组成不同的链状结构,或者可配置设定一个链状结构中服务器的最大数量,每次随机选择服务器组成链状结构并参与交互过程,以选取当前链中负荷最小的服务器。至于选择服务器的方法可利用随机、哈希、轮询、人工配置等方式进行选择。
进一步的,由于集群内的服务器互相了解各自状态,比如某服务器在链状结构中的上一个服务器是哪个服务器、某服务器在链状结构中的下一个服务器是哪个服务器、某服务器是否发生故障等,因此对于多个服务器中的故障服务器,在负荷信息依次叠加上报过程中,该故障服务器的上一个服务器可通过跳过故障服务器,将待上报的负荷信息上报给故障服务器的下一个服务器,以保证负荷信息的顺利上报,保证上报服务器获取到正常服务器的负荷信息。
而对于多个服务器的新增服务器,可通过将新增服务器加入到多个服务器的链状结构中,由上报服务器获取新增服务器的负荷信息。
此外,上报服务器在发送响应消息到负载均衡器时,可直接向负载均衡器发送响应消息,也可向其在多个服务器的链状结构中的上一个服务器发送响应消息,以通过响应消息在多个服务器的链状结构中的依次返回过程,由初始服务器向负载均衡器发送响应消息。
本发明具体实施例中,多个服务器之间可采用星型结构,对应的,多个服务器之间的交互过程为星型交互过程,初始服务器和上报服务器是同一个服务器。此情况下,上报服务器可用于:通过与多个服务器中除上报服务器外的其他服务器的交互过程,获取其他服务器的负荷信息。
参见图3所示,本发明实施例还提供了一种负载均衡方法,应用于上述的负载均衡***,该负载均衡***包括负载均衡器和多个服务器,该多个服务器包括初始服务器和上报服务器,该方法包括如下步骤:
步骤301:负载均衡器向初始服务器发送新进连接请求消息。
步骤302:初始服务器根据新进连接请求消息,发起多个服务器之间的交互过程。
步骤303:上报服务器根据多个服务器之间的交互过程,获取多个服务器的负荷信息,并从多个服务器中选取负荷最小的服务器作为目标服务器。
步骤304:上报服务器向负载均衡器发送响应消息。
其中,响应消息中包括目标服务器的标识信息。
步骤305:负载均衡器根据响应消息,确定由目标服务器处理新进连接对应的消息。
本发明实施例的负载均衡方法,通过利用多个服务器之间的交互过程来由服务器选取负荷最小的服务器作为目标服务器,能够使得消息队列集群内的服务器参与到负载均衡的决策过程中,从而根据实际每个服务器的实时压力情况及时调整新进连接的承担者,在消息队列这类容易导致集群内不同服务器之间负荷差异大的情况下,可以使不同服务器之间的负荷更加均衡。
本发明实施例中,可选的,所述多个服务器之间的交互过程为链状交互过程,所述初始服务器为所述多个服务器的链状结构中的第一个服务器,所述上报服务器为所述多个服务器的链状结构中的最后一个服务器;步骤303包括:
上报服务器通过负荷信息在所述多个服务器的链状结构中的依次叠加上报过程,获取所述多个服务器的负荷信息。
可选的,所述方法还包括:
对于所述多个服务器中的故障服务器,在负荷信息依次叠加上报过程中,所述故障服务器的上一个服务器通过跳过所述故障服务器,将待上报的负荷信息上报给所述故障服务器的下一个服务器。
可选的,所述方法还包括:
对于所述多个服务器的新增服务器,所述上报服务器获取所述新增服务器的负荷信息。
可选的,步骤304包括:
上报服务器向其在所述多个服务器的链状结构中的上一个服务器发送所述响应消息,以通过所述响应消息在所述多个服务器的链状结构中的依次返回过程,由所述初始服务器向所述负载均衡器发送所述响应消息。
可选的,所述多个服务器之间的交互过程为星型交互过程,所述初始服务器和所述上报服务器是同一个服务器;步骤303包括:
上报服务器通过与所述多个服务器中除所述上报服务器外的其他服务器的交互过程,获取所述其他服务器的负荷信息。
下面,结合图4对本发明具体实例的负载均衡过程进行说明。
本发明具体实例中,负载均衡***包括负载均衡器和三个服务器,该三个服务器分别为服务器1、服务器2和服务器3,且该三个服务器组成链状结构,其中服务器1为初始服务器,服务器3为上报服务。参见图4所示,该负载均衡过程包括如下步骤:
步骤401:负载均衡器接收外部的生产者应用或消费者应用发送的新进连接请求消息;
步骤402:负载均衡器根据预定的负载均衡策略,确定将新进连接请求消息分发到服务器1;
步骤403:负载均衡器向服务器1发送新进连接请求消息;
步骤404:服务器1在接收到新进连接请求消息后,新建链状节点即服务器2,并获取自身的负荷信息1;
步骤405:服务器1向服务器2发送新进连接请求消息,此请求消息中携带有负荷信息1;
步骤406:服务器2在接收到新进连接请求消息后,新建链状节点即服务器3,并获取自身的负荷信息2;
步骤407:服务器2向服务器3发送新进连接请求消息,此请求消息中携带有负荷信息1和负荷信息2;
步骤408:服务器3根据集群拓扑信息以及相应链状结构,确定自身为相应链状结构中的最后一个服务器,并获取自身的负荷信息3,从该三个服务器中选取负荷最小的服务器作为目标服务器,比如服务器2;
步骤409:服务器3向负载均衡器发送响应消息,此响应消息中携带有服务器2的标识信息;
其中,发送响应消息的方式有两种:一种为,服务器3直接向负载均衡器发送响应消息;另一种为,服务器3向服务器2发送响应消息,服务器2向服务器1发送响应消息,服务器1向负载均衡器发送响应消息。
应说明的是,在向负载均衡器发送响应消息时,服务器3还可向服务器2发送响应消息,以使服务器2获知自己将承担新进连接的后续处理工作。
步骤410:负载均衡器与服务器2建立连接,后续新进连接的消息由服务器2负责处理。
参见图5所示,本发明实施例还提供了一种负载均衡方法,应用于负载均衡器,包括如下步骤:
步骤501:向初始服务器发送新进连接请求消息。
步骤502:接收上报服务器发送的响应消息。
步骤503:根据响应消息,确定由目标服务器处理新进连接对应的消息。
其中,所述新进连接请求消息用于所述初始服务器发起多个服务器之间的交互过程,以由所述上报服务器获取所述多个服务器的负荷信息,并从所述多个服务器中选取负荷最小的服务器作为所述目标服务器,所述响应消息中包括所述目标服务器的标识信息。
本发明实施例的负载均衡方法,通过利用多个服务器之间的交互过程来由服务器选取负荷最小的服务器作为目标服务器,能够使得消息队列集群内的服务器参与到负载均衡的决策过程中,从而根据实际每个服务器的实时压力情况及时调整新进连接的承担者,在消息队列这类容易导致集群内不同服务器之间负荷差异大的情况下,可以使不同服务器之间的负荷更加均衡。
可选的,步骤501之前,所述方法还包括按照下述方式中的一种确定所述初始服务器:
通过轮询所述多个服务器,确定所述初始服务器;
将上一次接收新进连接请求消息的服务器确定为所述初始服务器;
根据预设均衡策略,确定所述初始服务器。
参见图6所示,本发明实施例还提供了一种负载均衡器,包括处理器61、发送器62和接收器63。
其中,所述发送器62用于:向初始服务器发送新进连接请求消息;
所述接收器62用于:接收上报服务器发送的响应消息;
所述处理器61用于:根据所述响应消息,确定由目标服务器处理新进连接对应的消息。
所述新进连接请求消息用于所述初始服务器发起多个服务器之间的交互过程,以由所述上报服务器获取所述多个服务器的负荷信息,并从所述多个服务器中选取负荷最小的服务器作为所述目标服务器,所述响应消息中包括所述目标服务器的标识信息。
可选的,所述处理器61还用于:
通过轮询所述多个服务器,确定所述初始服务器;或者
将上一次接收新进连接请求消息的服务器确定为所述初始服务器;或者
根据预设均衡策略,确定所述初始服务器。
在图6中,总线架构(用总线60来代表),总线60可以包括任意数量的互联的总线和桥,总线60将包括由处理器61代表的一个或多个处理器和存储器64代表的存储器的各种电路连接在一起。发送器62和接收器63可以是一个收发接口,发送器62和接收器63可通过总线60与处理器61和存储器64连接。
处理器61负责管理总线60和通常的处理,而存储器64可以被用于存储处理器61在执行操作时所使用的数据。
此外,本发明实施例还提供了一种负载均衡器,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时可实现上述应用于负载均衡器的负载均衡方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
具体的,参见图7所示,本发明实施例还提供了一种负载均衡器,所述负载均衡器包括总线71、收发机72、天线73、总线接口74、处理器75和存储器76。
在本发明实施例中,所述负载均衡器还包括:存储在存储器76上并可在处理器75上运行的计算机程序,具体的,所述计算机程序被处理器75执行时可实现如下步骤:
控制收发机72向初始服务器发送新进连接请求消息;
控制收发机72接收上报服务器发送的响应消息;
根据所述响应消息,确定由目标服务器处理新进连接对应的消息;
其中,所述新进连接请求消息用于所述初始服务器发起多个服务器之间的交互过程,以由所述上报服务器获取所述多个服务器的负荷信息,并从所述多个服务器中选取负荷最小的服务器作为所述目标服务器,所述响应消息中包括所述目标服务器的标识信息。
在图7中,总线架构(用总线71来代表),总线71可以包括任意数量的互联的总线和桥,总线71将包括由处理器75代表的一个或多个处理器和存储器76代表的存储器的各种电路链接在一起。总线71还可以将诸如***设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口74在总线71和收发机72之间提供接口。收发机72可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器75处理的数据通过天线73在无线介质上进行传输,进一步,天线73还接收数据并将数据传送给处理器75。
处理器75负责管理总线71和通常的处理,还可以提供各种功能,包括定时,***接口,电压调节、电源管理以及其他控制功能。而存储器76可以被用于存储处理器75在执行操作时所使用的数据。
可选的,处理器75可以是CPU、ASIC、FPGA或CPLD。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述应用于负载均衡器的负载均衡方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体,可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (12)
1.一种负载均衡方法,应用于负载均衡器,其特征在于,包括:
向初始服务器发送新进连接请求消息;
接收上报服务器发送的响应消息;
根据所述响应消息,确定由目标服务器处理新进连接对应的消息;
其中,所述新进连接请求消息用于所述初始服务器发起多个服务器之间的交互过程,以由所述上报服务器获取所述多个服务器的负荷信息,并从所述多个服务器中选取负荷最小的服务器作为所述目标服务器,所述响应消息中包括所述目标服务器的标识信息。
2.根据权利要求1所述的方法,其特征在于,所述向初始服务器发送新进连接请求消息之前,所述方法还包括按照下述方式中的一种确定所述初始服务器:
通过轮询所述多个服务器,确定所述初始服务器;
将上一次接收新进连接请求消息的服务器确定为所述初始服务器;
根据预设均衡策略,确定所述初始服务器。
3.一种负载均衡器,其特征在于,包括处理器、接收器和发送器;
其中,所述发送器用于:向初始服务器发送新进连接请求消息;
所述接收器用于:接收上报服务器发送的响应消息;
所述处理器用于:根据所述响应消息,确定由目标服务器处理新进连接对应的消息;
所述新进连接请求消息用于所述初始服务器发起多个服务器之间的交互过程,以由所述上报服务器获取所述多个服务器的负荷信息,并从所述多个服务器中选取负荷最小的服务器作为所述目标服务器,所述响应消息中包括所述目标服务器的标识信息。
4.根据权利要求3所述的负载均衡器,其特征在于,所述处理器还用于按照下述方式中的一种确定所述初始服务器:
通过轮询所述多个服务器,确定所述初始服务器;
将上一次接收新进连接请求消息的服务器确定为所述初始服务器;
根据预设均衡策略,确定所述初始服务器。
5.一种负载均衡***,其特征在于,包括负载均衡器和多个服务器,所述多个服务器包括初始服务器和上报服务器;
其中,所述负载均衡器用于:向所述初始服务器发送新进连接请求消息;
所述初始服务器用于:根据所述新进连接请求消息,发起所述多个服务器之间的交互过程;
所述上报服务器用于:根据所述多个服务器之间的交互过程,获取所述多个服务器的负荷信息,并从所述多个服务器中选取负荷最小的服务器作为目标服务器,向所述负载均衡器发送响应消息,所述响应消息中包括所述目标服务器的标识信息;
所述负载均衡器还用于:根据所述响应消息,确定由所述目标服务器处理新进连接对应的消息。
6.根据权利要求5所述的负载均衡***,其特征在于,所述多个服务器之间的交互过程为链状交互过程,所述初始服务器为所述多个服务器的链状结构中的第一个服务器,所述上报服务器为所述多个服务器的链状结构中的最后一个服务器;所述上报服务器还用于:
通过负荷信息在所述多个服务器的链状结构中的依次叠加上报过程,获取所述多个服务器的负荷信息。
7.根据权利要求6所述的负载均衡***,其特征在于,对于所述多个服务器中的故障服务器,在负荷信息依次叠加上报过程中,所述故障服务器的上一个服务器通过跳过所述故障服务器,将待上报的负荷信息上报给所述故障服务器的下一个服务器。
8.根据权利要求6所述的负载均衡***,其特征在于,对于所述多个服务器的新增服务器,所述上报服务器还用于:获取所述新增服务器的负荷信息。
9.根据权利要求6所述的负载均衡***,其特征在于,所述上报服务器还用于:
向其在所述多个服务器的链状结构中的上一个服务器发送所述响应消息,以通过所述响应消息在所述多个服务器的链状结构中的依次返回过程,由所述初始服务器向所述负载均衡器发送所述响应消息。
10.根据权利要求5所述的负载均衡***,其特征在于,所述多个服务器之间的交互过程为星型交互过程,所述初始服务器和所述上报服务器是同一个服务器;所述上报服务器还用于:
通过与所述多个服务器中除所述上报服务器外的其他服务器的交互过程,获取所述其他服务器的负荷信息。
11.一种负载均衡器,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述计算机程序被所述处理器执行时实现如权利要求1或2所述的负载均衡方法的步骤。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1或2所述的负载均衡方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810000886.8A CN109995839B (zh) | 2018-01-02 | 2018-01-02 | 一种负载均衡方法、***及负载均衡器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810000886.8A CN109995839B (zh) | 2018-01-02 | 2018-01-02 | 一种负载均衡方法、***及负载均衡器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109995839A CN109995839A (zh) | 2019-07-09 |
CN109995839B true CN109995839B (zh) | 2021-11-19 |
Family
ID=67128262
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810000886.8A Active CN109995839B (zh) | 2018-01-02 | 2018-01-02 | 一种负载均衡方法、***及负载均衡器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109995839B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110290222A (zh) * | 2019-07-16 | 2019-09-27 | 北京奇艺世纪科技有限公司 | 一种请求消息处理方法及装置 |
CN112953984B (zh) * | 2019-12-10 | 2023-07-28 | 贵州白山云科技股份有限公司 | 数据处理方法、装置、介质及*** |
CN112486692A (zh) * | 2020-12-18 | 2021-03-12 | 深圳市潮流网络技术有限公司 | 服务器负载均衡方法和装置、负载信息处理方法和装置 |
CN112671928B (zh) * | 2020-12-31 | 2023-02-07 | 北京天融信网络安全技术有限公司 | 设备集中管理架构、负载均衡方法、电子设备及存储介质 |
CN113609071A (zh) * | 2021-07-28 | 2021-11-05 | 北京金山云网络技术有限公司 | 一种用于消息队列的自动扩容方法及装置 |
CN116567654A (zh) * | 2022-01-26 | 2023-08-08 | 上海华为技术有限公司 | 一种通信方法及装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102281190A (zh) * | 2011-07-01 | 2011-12-14 | 杭州斯凯网络科技有限公司 | 负载均衡装置组网方法以及服务器、客户端接入方法 |
CN103731880A (zh) * | 2012-10-16 | 2014-04-16 | 中国科学院沈阳自动化研究所 | 一种适用于wia-pa网络的负载均衡方法 |
CN105208133A (zh) * | 2015-10-20 | 2015-12-30 | 上海斐讯数据通信技术有限公司 | 一种服务器、负载均衡器以及服务器负载均衡方法和*** |
CN105471985A (zh) * | 2015-11-23 | 2016-04-06 | 北京农业信息技术研究中心 | 负载均衡方法及云平台计算方法、云平台 |
CN105516360A (zh) * | 2016-01-19 | 2016-04-20 | 苏州帕科泰克物联技术有限公司 | 一种计算机的负载均衡方法及装置 |
CN107071074A (zh) * | 2017-06-30 | 2017-08-18 | 郑州云海信息技术有限公司 | 一种负载均衡方法及web服务器集群*** |
CN107359961A (zh) * | 2016-05-10 | 2017-11-17 | Ls 产电株式会社 | 从装置控制方法 |
-
2018
- 2018-01-02 CN CN201810000886.8A patent/CN109995839B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102281190A (zh) * | 2011-07-01 | 2011-12-14 | 杭州斯凯网络科技有限公司 | 负载均衡装置组网方法以及服务器、客户端接入方法 |
CN103731880A (zh) * | 2012-10-16 | 2014-04-16 | 中国科学院沈阳自动化研究所 | 一种适用于wia-pa网络的负载均衡方法 |
CN105208133A (zh) * | 2015-10-20 | 2015-12-30 | 上海斐讯数据通信技术有限公司 | 一种服务器、负载均衡器以及服务器负载均衡方法和*** |
CN105471985A (zh) * | 2015-11-23 | 2016-04-06 | 北京农业信息技术研究中心 | 负载均衡方法及云平台计算方法、云平台 |
CN105516360A (zh) * | 2016-01-19 | 2016-04-20 | 苏州帕科泰克物联技术有限公司 | 一种计算机的负载均衡方法及装置 |
CN107359961A (zh) * | 2016-05-10 | 2017-11-17 | Ls 产电株式会社 | 从装置控制方法 |
CN107071074A (zh) * | 2017-06-30 | 2017-08-18 | 郑州云海信息技术有限公司 | 一种负载均衡方法及web服务器集群*** |
Also Published As
Publication number | Publication date |
---|---|
CN109995839A (zh) | 2019-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109995839B (zh) | 一种负载均衡方法、***及负载均衡器 | |
CN110740162B (zh) | 通信链路建立方法、装置、电子设备及介质 | |
US10764939B2 (en) | Network function processing method and related device | |
CN106657180B (zh) | 用于云服务的信息传输方法、装置、终端设备及*** | |
CN110445697B (zh) | 视频大数据云平台设备接入服务方法 | |
JP2019525604A (ja) | ネットワーク機能nf管理方法及びnf管理装置 | |
CN103248504A (zh) | 一种集群节点匹配方法、集群通信模块、设备及*** | |
CN102882704A (zh) | 一种issu的软重启升级过程中的链路保护方法和设备 | |
CN110391880A (zh) | 基于终端-服务器架构的访问请求处理方法和设备 | |
CN113746928A (zh) | 跨云服务调用方法、装置和*** | |
CN110958132A (zh) | 监控网卡设备的方法、基板管理控制器及网卡设备 | |
CN110138753B (zh) | 分布式消息服务***、方法、设备及计算机可读存储介质 | |
EP4030776A1 (en) | Method and apparatus for triggering vomci function from olt to send omci messages | |
CN113179295B (zh) | 报文处理方法及装置 | |
CN106790354B (zh) | 一种防数据拥堵的通信方法及其装置 | |
CN106790610B (zh) | 一种云***消息分发方法,装置和*** | |
CN116915827A (zh) | 物联网边缘网关的数据传输方法、装置、电子设备及介质 | |
CN109347743B (zh) | 一种专线通信方法、计算机可读存储介质和终端设备 | |
CN107770847A (zh) | 网络接入方法、接入设备和终端设备 | |
CN109479214A (zh) | 一种负载均衡的方法及相关装置 | |
CN107682271B (zh) | 一种路由线路的生成方法及装置 | |
CN115952003A (zh) | 一种集群服务器负载均衡的方法、装置、设备及存储介质 | |
CN107566475B (zh) | 一种会话故障转移方法及装置 | |
CN113992685B (zh) | 一种服务控制器确定方法、***及装置 | |
CN111817955B (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 |