CN109104377B - 长连接负载均衡方法、设备、系统及计算机可读存储介质 - Google Patents
长连接负载均衡方法、设备、系统及计算机可读存储介质 Download PDFInfo
- Publication number
- CN109104377B CN109104377B CN201811105651.1A CN201811105651A CN109104377B CN 109104377 B CN109104377 B CN 109104377B CN 201811105651 A CN201811105651 A CN 201811105651A CN 109104377 B CN109104377 B CN 109104377B
- Authority
- CN
- China
- Prior art keywords
- routing node
- flow
- traffic
- load balancing
- long connection
- 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
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种长连接负载均衡实现方法,包括:负载均衡服务器获取流量路由节点列表;将获取的流量路由节点列表下发给各主机代理,以供各主机代理基于所述流量路由节点列表选择流量发送路径,并将采集的流量发送至所述流量发送路径对应的流量路由节点,经由流量路由节点下发流量至消息队列。本发明还公开了一种负载均衡服务器、流量路由节点、长连接负载均衡系统及计算机可读存储介质。本发明能够保持长连接流量的持续稳定以及提升长连接负载均衡的处理效果。
Description
技术领域
本发明涉及流量负载均衡技术领域,尤其涉及一种长连接负载均衡方法、负载均衡服务器、流量路由节点、长连接负载均衡系统及计算机可读存储介质。
背景技术
长连接是指在一个连接上可以连续发送多个数据包,而不同的长连接其发送的数据包量是不均衡的,甚至差距甚大,因而存在后端接收数据包的设备负载不均衡的情形,因此,需要对长连接进行负载均衡处理。
现有技术中,通常使用开源的消息队列中间件来解决长连接负载均衡问题,具体实现方式是前端直接与消息队列中间件建立长连接,通过消息队列中间件做负载均衡,然后将流量分发给不同的后端,这种情况是消息队列中间件直接做负载均衡,其扩容需要先断开所有长连接的前端配置再重新建立连接,操作繁琐,负载均衡的效果不佳,不适合长连接前端特别多的场景。
发明内容
本发明的主要目的在于提供一种长连接负载均衡方法、负载均衡服务器、流量路由节点、长连接负载均衡系统及计算机可读存储介质,旨在解决如何提升长连接负载均衡的处理效果的技术问题。
为实现上述目的,本发明提供一种长连接负载均衡实现方法,所述长连接负载均衡实现方法包括:
负载均衡服务器获取流量路由节点列表;
将获取的流量路由节点列表下发给各主机代理,以供各主机代理基于所述流量路由节点列表选择流量发送路径,并将采集的流量发送至所述流量发送路径对应的流量路由节点,经由流量路由节点下发流量至消息队列。
可选地,所述负载均衡服务器获取流量路由节点列表的步骤包括:
负载均衡服务器接收各流量路由节点上传的各流量路由节点当前连接的主机代理连接数和接收到的流量数据量;
基于各流量路由节点当前连接的主机代理连接数和接收到的流量数据量,分别计算各流量路由节点的长连接负载;
根据各流量路由节点的长连接负载,选择流量路由节点以组成流量路由节点列表。
可选地,所述分别计算各流量路由节点的长连接负载的步骤包括:
基于预设的长连接负载计算公式,分别计算各流量路由节点的长连接负载;
其中,所述长连接负载计算公式如下:长连接负载=主机代理连接数*连接数权重+流量数据量*流量权重;
所述根据各流量路由节点的长连接负载,选择流量路由节点以组成流量路由节点列表的步骤包括:
从各流量路由节点中筛选出长连接负载小于预设负载阈值的流量路由节点,以组成流量路由节点列表。
可选地,所述长连接负载均衡实现方法还包括:
负载均衡服务器实时检测各流量路由节点的长连接平均负载是否超过预设负载报警阈值;
若是,则推送流量路由节点扩容提示;
检测是否存在新扩容的流量路由节点;
若存在,则通知主机代理与新扩容的流量路由节点建立连接。
可选地,在所述负载均衡服务器获取流量路由节点列表的步骤之前,所述长连接负载均衡实现方法还包括:
负载均衡服务器配置各主机代理的参数信息并下发给主机代理,以供所述主机代理基于所述参数信息采集主机上的流量,所述参数信息包括:流量采集路径、采集流量的特征码。
进一步地,为实现上述目的,本发明还提供一种长连接负载均衡实现方法,所述长连接负载均衡实现方法包括:
流量路由节点通过所述流量路由节点对应的流量发送路径接收主机代理采集的流量,其中,所述流量路由节点对应的流量发送路径由主机代理基于负载均衡服务器获取并下发至所述主机代理的流量路由节点列表进行选择;
所述流量路由节点下发流量至消息队列。
可选地,所述流量路由节点下发流量至消息队列的方式包括:
流量路由节点根据业务等级,将不同业务等级的流量分别转发到不同的消息队列中,以通过消息队列传输至后端各流式计算集群分别处理各自对应的消息队列中的流量;
或者,所述流量路由节点计算流量的哈希值,将不同哈希值的流量分别转发到不同的消息队列中,以通过消息队列传输至后端各流式计算集群分别处理各自对应的消息队列中的流量。
可选地,所述流式计算集群包括多个一级计算单元和多个二级计算单元,所述后端各流式计算集群分别处理各自对应的消息队列中的流量的方式包括:
所述一级计算单元处理消息队列中的流量,得到中间处理结果;
所述二级计算单元合并相同类型的中间处理结果,得到最终处理结果,并将最终处理结果存储到数据库中以及推送至前端页面展示。
进一步地,为实现上述目的,本发明还提供一种负载均衡服务器,所述负载均衡服务器包括存储器、处理器和存储在所述存储器上并可在所述处理器上运行的负载均衡程序,所述负载均衡程序被所述处理器执行时实现如上任一项所述的长连接负载均衡实现方法的步骤。
进一步地,为实现上述目的,本发明还提供一种流量路由节点,所述流量路由节点包括存储器、处理器和存储在所述存储器上并可在所述处理器上运行的负载均衡程序,所述负载均衡程序被所述处理器执行时实现如上任一项所述的长连接负载均衡实现方法的步骤。
进一步地,为实现上述目的,本发明还提供一种长连接负载均衡系统,所述长连接负载均衡系统包括:负载均衡服务器、多个主机代理、多个流量路由节点。
可选地,所述长连接负载均衡系统还包括:多个流式计算集群,所述流式计算集群包括:多个一级计算单元和多个二级计算单元;
所述一级计算单元用于:处理消息队列中的流量,得到中间处理结果;
所述二级计算单元用于:合并相同类型的中间处理结果,得到最终处理结果,并将最终处理结果存储到数据库中以及推送至前端页面展示。
本发明中,负载均衡服务器并不直接收集和转发流量,长连接流量具体通过流量路由节点进行收集并转发,负载均衡服务器将流量路由节点列表告知主机代理,以供主机代理基于流量路由节点列表选择流量发送路径,从而实现长连接流量在各流量路由节点上的负载均衡,最终经由各个流量路由节点下发流量至消息中间件。由于负载均衡服务器独立于各流量路由节点,因而扩容流量路由节点并不需要重新断开配置所有主机代理,也无需重新建立主机代理和流量路由节点的连接,只要在负载均衡服务器统一中变更即可,无须中断连接,进而能够保持长连接流量的持续稳定以及负载均衡。
附图说明
图1为本发明负载均衡服务器实施例方案涉及的设备硬件运行环境的结构示意图;
图2为本发明流量路由节点实施例方案涉及的设备硬件运行环境的结构示意图;
图3为本发明长连接负载均衡实现方法第一实施例的流程示意图;
图4为本发明长连接负载均衡实现方法中负载均衡服务器获取流量路由节点列表一实施例的流程示意图;
图5为本发明长连接负载均衡实现方法第二实施例的流程示意图;
图6为本发明长连接负载均衡实现方法第三实施例的流程示意图;
图7为本发明长连接负载均衡实现方法第四实施例的流程示意图;
图8为本发明长连接负载均衡实现方法第五实施例的流程示意图;
图9为本发明长连接负载均衡系统第一实施例的功能模块示意图;
图10为本发明长连接负载均衡系统第二实施例的功能模块示意图;
图11为图10中流式计算集群一实施例的功能模块示意图;
图12为本发明长连接负载均衡系统一实施例的连接架构示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本发明提供一种负载均衡服务器。
参照图1,图1为本发明负载均衡服务器实施例方案涉及的设备硬件运行环境的结构示意图。
如图1所示,该负载均衡服务器可以包括:处理器1001,例如CPU,通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏 (Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储设备。
本领域技术人员可以理解,图1中示出的负载均衡服务器的硬件结构并不构成对负载均衡服务器的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机可读存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及长连接负载均衡程序。其中,操作系统是管理和控制负载均衡服务器与软件资源的程序,支持网络通信模块、用户接口模块、长连接负载均衡程序以及其他程序或软件的运行;网络通信模块用于管理和控制网络接口1004;用户接口模块用于管理和控制用户接口 1003。
在图1所示的负载均衡服务器硬件结构中,网络接口1004主要用于连接系统后台,与系统后台进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;负载均衡服务器通过处理器1001调用存储器1005中存储的长连接负载均衡程序,并执行以下以负载均衡服务器为执行主体的长连接负载均衡实现方法的操作。
本发明还提供一种流量路由节点。
参照图2,图2为本发明流量路由节点实施例方案涉及的设备硬件运行环境的结构示意图。
如图2所示,该流量路由节点可以包括:处理器2001,例如CPU,通信总线2002、用户接口2003,网络接口2004,存储器2005。其中,通信总线 2002用于实现这些组件之间的连接通信。用户接口2003可以包括显示屏 (Display)、输入单元比如键盘(Keyboard),可选用户接口2003还可以包括标准的有线接口、无线接口。网络接口2004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器2005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器2005可选的还可以是独立于前述处理器2001的存储设备。
本领域技术人员可以理解,图2中示出的流量路由节点的硬件结构并不构成对流量路由节点的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图2所示,作为一种计算机可读存储介质的存储器2005中可以包括操作系统、网络通信模块、用户接口模块以及长连接负载均衡程序。其中,操作系统是管理和控制流量路由节点与软件资源的程序,支持网络通信模块、用户接口模块、长连接负载均衡程序以及其他程序或软件的运行;网络通信模块用于管理和控制网络接口2004;用户接口模块用于管理和控制用户接口 2003。
在图2所示的流量路由节点硬件结构中,网络接口2004主要用于连接系统后台,与系统后台进行数据通信;用户接口2003主要用于连接客户端(用户端),与客户端进行数据通信;流量路由节点通过处理器2001调用存储器 2005中存储的长连接负载均衡程序,并执行以下以流量路由节点为执行主体的长连接负载均衡实现方法的操作。
基于上述负载均衡服务器以及流量路由节点的设备硬件运行环境,提出本发明长连接负载均衡实现方法的以下各实施例。
本发明还提供一种长连接负载均衡实现方法。
参照图3,图3为本发明长连接负载均衡实现方法第一实施例的流程示意图。本实施例中,所述长连接负载均衡实现方法包括:
步骤S110,负载均衡服务器获取流量路由节点列表;
本实施例中,负载均衡服务器并不直接收集和转发流量,长连接流量具体通过流量路由节点进行收集并转发。
本实施例对于负载均衡服务器获取流量路由节点列表的实现方式不限。包括但不限于,在流量路由节点的个数达到预设值时,负载均衡服务器选择预设个数的流量路由节点组成流量路由节点列表,预设个数的具体数值根据实际情况设定;在流量路由节点的个数低于预设值时,负载均衡服务器选择所有的流量路由节点组成流量路由节点列表。
其中,在流量路由节点的个数达到预设值时,负载均衡服务器选择预设个数的流量路由节点组成流量路由节点列表具体包括:在流量路由节点的个数达到预设值时,负载均衡服务器选出所述预设值数量的流量路由节点,根据主机代理的个数,将所述预设值数量的流量路由节点划出所述主机代理的个数对应份数的流量路由节点,然后将每份流量路由节点组成一个流量路由节点列表,以下发给主机代理。或者,随机选择几个流量路由节点下发给主机代理。例如,当前有6个流量路由节点,预设值是3,100个主机代理,在 6个流量路由节点中选出3个流量路由节点,分成100份,每份3个,并将 100份作为100份流量路由节点列表分别发给100个主机代理。在流量路由节点的个数低于预设值时,选择所有的流量路由节点组成流量路由节点列表,以发给每个主机代理。其中,预设值的具体数值根据实际情况设定。
步骤S120,将获取的流量路由节点列表下发给各主机代理,以供各主机代理基于所述流量路由节点列表选择流量发送路径,并将采集的流量发送至所述流量发送路径对应的流量路由节点,经由流量路由节点下发流量至消息队列。
本实施例中,主机代理优选指部署在主机上的Agent实例,其用于采集主机上的流量,包括应用日志、主机资源使用情况(如内存、进程信息、磁盘、网络IO等等)。主机代理用于将采集的流量发送给流量路由节点,进而通过流量路由节点转发给后端处理。
本实施例中,为实现长连接负载均衡,负载均衡服务器需要将获取的流量路由节点列表下发给各主机代理,以供各主机代理基于流量路由节点列表选择流量发送路径,该流量发送路径具体是指从主机代理到流量路由节点之间的流量发送路径。由于主机代理可以主动选择流量发送路径,因而可实现对各流量路由节点的长连接负载均衡。
本实施例的长连接负载均衡针对的是从主机代理到流量路由节点之间的长连接流量分发,因此负载均衡服务器需要将流量路由节点列表下发各主机代理。主机代理选择好流量发送路径后,将采集的主机流量发送至对应的流量路由节点,并经由流量路由节点下发流量至消息队列。
本实施例中,负载均衡服务器并不直接收集和转发流量,长连接流量具体通过流量路由节点进行收集并转发,负载均衡服务器将流量路由节点列表告知主机代理,以供主机代理基于流量路由节点列表选择流量发送路径,从而实现长连接流量在各流量路由节点上的负载均衡,最终经由各个流量路由节点下发流量至消息中间件。由于负载均衡服务器独立于各流量路由节点,因而扩容流量路由节点并不需要重新断开配置所有主机代理,也无需重新建立主机代理和流量路由节点的连接,只要在负载均衡服务器统一中变更即可,无须中断连接,进而能够保持长连接流量的持续稳定以及负载均衡。
参照图4,图4为本发明长连接负载均衡实现方法中负载均衡服务器获取流量路由节点列表一实施例的流程示意图。本实施例中,负载均衡服务器获取流量路由节点列表包括:
步骤S1101,负载均衡服务器接收各流量路由节点上传的各流量路由节点当前连接的主机代理连接数和接收到的流量数据量;
本实施例中,主机代理可以连接一个或多个流量路由节点,为实现长连接流量的负载均衡,流量路由节点将本节点上连接的主机代理连接数以及接收各主机代理发送的流量数据量上报给负载均衡服务器。
步骤S1102,基于各流量路由节点当前连接的主机代理连接数和接收到的流量数据量,分别计算各流量路由节点的长连接负载;
本实施例中,负载均衡服务器根据各流量路由节点的主机代理连接数和流量数据量,计算各流量路由节点的长连接负载,从而了解各流量路由节点的负载情况。其中,长连接负载可通过指标进行量化表示。
可选的,负载均衡服务器基于预设的长连接负载计算公式,分别计算各流量路由节点的长连接负载,其中,所述长连接负载计算公式如下:
P=M*K1+N*K2;
其中,P为流量路由节点的长连接负载,M为流量路由节点的主机代理连接数,N为流量数据量,K1为主机代理连接数权重,K2为流量数据量权重,K1和K2的具体数值根据实际情况设置,两者之和等于1。
此外,计算各流量路由节点的长连接负载的方式还包括:
计算每个流量路由节点单位时间内接收的流量数据字节码大小,以确定各流量路由节点的长连接负载;其中,当一个流量路由节点的流量数据字节码越大时,说明该流量路由节点接收的流量越多,该流量路由节点的长连接负载的数值越大。
步骤S1103,根据各流量路由节点的长连接负载,选择流量路由节点以组成流量路由节点列表。
本实施例中,负载均衡服务器具体根据计算得到的各流量路由节点的长连接负载,选择相应的流量路由节点以组成流量路由节点列表。
可选的,选择长连接负载较轻的N个流量路由节点组成流量路由节点列表,N为指定数量。例如,先对各流量路由节点的长连接负载进行从低到高的排序,选择前N个流量路由节点以组成流量路由节点列表。
可选的,在一实施例中,优选从各流量路由节点中筛选出长连接负载小于预设负载阈值的流量路由节点,以组成流量路由节点列表。
基于各流量路由节点的长连接负载,可了解各流量路由节点的负载情况,比如某些流量路由节点负载大,不宜继续分担新的流量负载,而另一些流量路由节点负载较小,可以继续分担新的流量负载。
因此,本实施例中,在计算出各流量路由节点的长连接负载后,从中筛选出长连接负载小于预设负载阈值的流量路由节点(相对比较空闲的流量路由节点),并将该部分流量路由节点添加到流量路由节点列表中,也即该列表中代表的是当前相对比较空闲的流量路由节点集合。
本实施例的长连接负载均衡针对的是从主机代理到流量路由节点之间的长连接流量分发。因此负载均衡服务器需要将流量路由节点列表下发各主机代理,以供主机代理基于流量路由节点列表选择流量发送路径,从而实现长连接流量在各流量路由节点上的负载均衡。
需要说明的是,由于长连接上产生的流量是动态变化的,并且主机代理与流量路由节点之间的连接也是动态变化的,因此,本实施例中优选流量路由节点实时上报主机代理连接数和流量数据量,以供负载均衡服务器实时更新流量路由节点列表,进而实现长连接流量的实时动态负载均衡。
进一步地,为避免流量路由节点过载而导致长连接不稳定或中断,在一实施例中,可对流量路由节点进行扩容。
参照图5,图5为本发明长连接负载均衡实现方法第二实施例的流程示意图。基于上述第一实施例,在计算得到各流量路由节点的长连接负载后,本实施例中,所述长连接负载均衡实现方法还包括:
步骤S210,负载均衡服务器实时检测各流量路由节点的长连接平均负载是否超过预设负载报警阈值;
步骤S220,若是,则推送流量路由节点扩容提示,否则不做处理;
本实施例支持流量路由节点的在线扩容,当负载均衡服务器计算得到各流量路由节点的长连接负载后,还进一步检测各流量路由节点的长连接平均负载是否超过预设负载报警阈值,其中,所述长连接平均负载是指n个长连接负载的平均值。如果长连接平均负载超过该负载报警阈值,则向系统管理方推送流量路由节点扩容提示。本实施例中,扩容流量路由节点的过程包括:新增流量路由节点,在新增流量路由节点之后,新增的流量路由节点立即与消息队列建立连接,然后,新增的流量路由节点定时上报心跳至负载均衡服务器。
步骤S230,检测是否存在新扩容的流量路由节点;
步骤S240,若存在,则通知主机代理与新扩容的流量路由节点建立连接,否则不做处理。
本实施例中,扩容新增的流量路由节点上线后,先与负载均衡服务器建立连接,当负载均衡服务器检测到新扩容的流量路由节点上线时,即可通知主机代理与新扩容的流量路由节点建立连接,比如新扩容的流量路由节点与少数或全部主机代理建立连接。
为便于进行流量负载均衡,本实施例中优选主机代理与流量路由节点采用多对多的映射关系建立连接,也即各主机代理分别与每一个流量路由节点建立连接。
本实施例的流量路由节点扩容无需更新所有主机代理的配置以及无需重新建立连接,因而保证了长连接的稳定运行。
进一步地,在本发明长连接负载均衡实现方法一实施例中,负载均衡服务器还负责管理所有主机代理的参数配置,在所述步骤S110之前,还具体包括步骤:
负载均衡服务器配置各主机代理的参数信息并下发给主机代理,以供所述主机代理基于所述参数信息采集主机上的流量,配置的参数信息至少包括:
(1)配置各主机代理的流量采集路径;
(2)配置各主机代理的采集流量的特征码。
其中,不同主机代理的参数配置可以相同,也可以不相同。在完成参数配置后,将配置好的参数下发给对应的主机代理,以供主机代理基于配置的参数采集流量。
参照图6,图6为本发明长连接负载均衡实现方法第三实施例的流程示意图。基于上述实施例,本实施例中,所述长连接负载均衡实现方法还包括:
步骤S310,主机代理接收负载均衡服务器下发的参数信息以及流量路由节点列表;
步骤S320,基于所述参数信息,采集主机上的流量;
步骤S330,基于所述流量路由节点列表,选择流量发送路径,以将采集的流量发送至对应的流量路由节点。
本实施例中,主机代理基于负载均衡服务器配置的参数:流量采集路径和采集流量的特征码,采集本主机上的流量,比如某些业务应用输出的日志,然后基于负载均衡服务器提供的流量路由节点列表,选择流量发送路径,从而将采集的流量发送给对应的流量路由节点。
本实施例中,参数信息以及流量路由节点列表既可以是同时下发给主机代理,也可以是单独发送。各主机代理能够主动基于各流量路由节点的负载情况选择流量发送路径,进而实现流量在流量路由节点上的负载均衡。
可选的,主机代理基于所述流量路由节点列表选择流量发送路径,并将采集的流量发送至所述流量发送路径对应的流量路由节点的方式包括以下任意一种:
(1)主机代理实时轮询流量路由节点列表中的各个路由节点,以将采集的流量发送至各个流量路由节点;
(2)主机代理确定流量路由节点列表中各个路由节点的权重值,根据各个流量路由节点的权重值下发采集的流量至各个流量路由节点,其中,权重值越高的流量路由节点,下发的流量越多;
(3)主机代理计算采集的流量(包括日志文件或日志文件的数据)的哈希值,根据不同的哈希值将采集的流量发送至不同的流量路由节点,应当理解,不同种类的流量的哈希值不同,按照哈希值的不同将各种流量下发至不同的流量路由节点。
参照图7,图7为本发明长连接负载均衡实现方法第四实施例的流程示意图。基于上述第一实施例,本实施例中,所述长连接负载均衡实现方法还包括:
步骤S410,流量路由节点通过所述流量路由节点对应的流量发送路径接收主机代理采集的流量,其中,所述流量路由节点对应的流量发送路径由主机代理基于负载均衡服务器获取并下发至所述主机代理的流量路由节点列表进行选择;
步骤S420,所述流量路由节点下发流量至消息队列。
在本实施例中,流量路由节点实时统计当前连接的主机代理连接数和接收到的流量数据量并上报负载均衡服务器,由负载均衡服务器基于各流量路由节点当前连接的主机代理连接数和接收到的流量数据量,分别计算各流量路由节点的长连接负载,并根据各流量路由节点的长连接负载,选择流量路由节点以组成流量路由节点列表以下发至主机代理。主机代理接收到流量路由节点列表之后,即可基于所述流量路由节点列表选择流量发送路径,并将采集的流量发送至所述流量发送路径对应的流量路由节点。
本实施例中,流量路由节点接收主机代理发送的流量,然后基于自身的路由规则,将流量分发至后端处理。
为便于负载均衡服务器能够获知本流量路由节点的负载情况,因此,在接收流量的同时,还向负载均衡服务器上报当前连接的主机代理连接数和接收到的流量数据量。
本实施例中,流量路由节点仅负责收集前端发送的流量并转发给后端处理,为避免后端出现过载,因此优选后端采用计算集群的分布式架构处理流量,以提升流量的处理效率。
进一步可选的,为避免后端出现过载而影响处理效率,在一实施例中,流量路由节点先基于自身的路由规则,将流量转发到消息队列中以对流量进行缓存处理,之后再转发至后端处理,具体为:流量路由节点根据业务等级,将不同业务等级的流量分别转发到不同的消息队列中,以通过消息队列传输至后端各流式计算集群分别处理各自对应的消息队列中的流量。或者,流量路由节点计算流量的哈希值,将不同哈希值的流量分别转发到不同的消息队列中,以通过消息队列传输至后端各流式计算集群分别处理各自对应的消息队列中的流量。
本实施例中,流量路由节点先将流量进行业务等级划分或哈希值划分,然后再将不同业务等级或不同哈希值的流量分别转发到不同的消息队列中,以避免低级别业务流量的突增而影响高级别业务流量的处理效率。
进一步地,为提升流量处理效率,后端计算集群优选采用流式框架对流量进行准实时处理。
参照图8,图8为本发明长连接负载均衡实现方法第五实施例的流程示意图。本实施例中,流式计算集群包括多个一级计算单元和多个二级计算单元,所述长连接负载均衡实现方法还包括:
步骤S510,一级计算单元处理消息队列中的流量,得到中间处理结果;
步骤S520,二级计算单元合并相同类型的中间处理结果,得到最终处理结果,并将最终处理结果存储到数据库中以及推送至前端页面展示。
本实施例中,多个一级计算单元可以并行处理多条流量,进而可实现流量在多个一级计算单元上的均衡处理,并实现数据秒级处理效果,提升流量处理效率。
由于多个一级计算单元并行处理的多条流量可能属于同一应用或同一业务,也即每一个一级计算单元所得到的中间处理结果仅仅只是同一应用或同一业务的部分结果。因此,进一步通过二级计算单元合并具有相同类型的中间处理结果,比如将属于同一应用或同一业务的多个部分处理结果合并为一个最终处理结果,然后再将最终处理结果进行持久化存储以及推送至前端页面展示。
本实施例的计算集群采用流式框架进行流量处理,并且采用多个一级计算单元和多个二级计算单元进行分级计算,不仅避免了流量在某一个计算单元上突增而导致计算单元过载,同时也实现了数据秒级处理效果,提升了流量处理效率。
本发明还提供一种长连接负载均衡系统。
参照图9,图9为本发明长连接负载均衡系统第一实施例的功能模块示意图。本实施例中,长连接负载均衡系统包括:负载均衡服务器10、多个主机代理20、多个流量路由节点30;
其中,负载均衡服务器10用于:获取流量路由节点列表;将获取的流量路由节点列表下发给各主机代理20;主机代理20用于:基于所述流量路由节点列表选择流量发送路径,并将采集的流量发送至所述流量发送路径对应的流量路由节点30;流量路由节点30用于:将接收到的流量下发至消息队列。
本实施例中,负载均衡服务器10并不直接收集和转发流量,长连接流量具体通过流量路由节点进行收集并转发。
本实施例对于负载均衡服务器10获取流量路由节点列表的实现方式不限,包括但不限于,在流量路由节点30的个数达到预设值时,负载均衡服务器10选择预设个数的流量路由节点30组成流量路由节点列表,预设个数的具体数值根据实际情况设定;在流量路由节点30的个数低于预设值时,负载均衡服务器10选择所有的流量路由节点30组成流量路由节点列表。
其中,在流量路由节点30的个数达到预设值时,负载均衡服务器10选择预设个数的流量路由节点30组成流量路由节点列表具体包括:在流量路由节点30的个数达到预设值时,负载均衡服务器10选出所述预设值数量的流量路由节点30,根据主机代理20的个数,将所述预设值数量的流量路由节点划出所述主机代理20的个数对应份数的流量路由节点30,然后将每份流量路由节点组成一个流量路由节点列表,以下发给主机代理20。或者,随机选择几个流量路由节点下30发给主机代理20。例如,当前有6个流量路由节点,预设值是3,100个主机代理,在6个流量路由节点中选出3个流量路由节点,分成100份,每份3个,并将100份作为100份流量路由节点列表分别发给 100个主机代理。在流量路由节点30的个数低于预设值时,选择所有的流量路由节点30组成流量路由节点列表,以发给每个主机代理20。其中,预设值的具体数值根据实际情况设定。
本实施例中,主机代理20优选指部署在主机上的Agent实例,其用于采集主机上的流量,包括应用日志、主机资源使用情况(如内存、进程信息、磁盘、网络IO等等)。主机代理将采集的流量发送给流量路由节点,进而通过流量路由节点转发给后端处理。
本实施例中,为实现长连接负载均衡,负载均衡服务器10需要将获取的流量路由节点列表下发给各主机代理20,以供各主机代理20基于流量路由节点列表选择流量发送路径,该流量发送路径具体是指从主机代理20到流量路由节点30之间的流量发送路径。由于主机代理20可以主动选择流量发送路径,因而可实现对各流量路由节点30的长连接负载均衡。
本实施例的长连接负载均衡针对的是从主机代理20到流量路由节点30 之间的长连接流量分发,因此负载均衡服务器10需要将流量路由节点列表下发各主机代理20。主机代理20选择好流量发送路径后,将长连接流量发送至对应的流量路由节点30,并经由流量路由节点30下发流量至消息队列。
本实施例中,负载均衡服务器10并不直接收集和转发流量,长连接流量具体通过流量路由节点30进行收集并转发,负载均衡服务器10将流量路由节点列表告知主机代理20,以供主机代理20基于流量路由节点列表选择流量发送路径,从而实现长连接流量在各流量路由节点30上的负载均衡。此外,由于负载均衡服务器10独立于各流量路由节点30,因而扩容流量路由节点并不需要重新断开配置所有主机代理,也无需重新建立主机代理和流量路由节点的连接,只要在负载均衡服务器统一中变更即可,无须中断连接,进而能够保持长连接流量的持续稳定以及负载均衡。
进一步地,在本发明长连接负载均衡系统一实施例中,所述负载均衡服务器10具体用于:
接收各流量路由节点30上传的各流量路由节点30当前连接的主机代理 20连接数和接收到的流量数据量;基于各流量路由节点30当前连接的主机代理20连接数和接收到的流量数据量,分别计算各流量路由节点30的长连接负载;根据各流量路由节点30的长连接负载,选择流量路由节点30以组成流量路由节点列表。
本实施例中,主机代理20可以连接一个或多个流量路由节点30,为实现长连接流量的负载均衡,流量路由节点30将本节点上连接的主机代理20连接数以及接收各主机代理20发送的流量数据量上报给负载均衡服务器10。
本实施例中,负载均衡服务器10根据各流量路由节点30的主机代理20 连接数和流量数据量,计算各流量路由节点30的长连接负载,从而了解各流量路由节点30的负载情况。其中,长连接负载可通过指标进行量化表示。
可选的,负载均衡服务器10基于预设的长连接负载计算公式,分别计算各流量路由节点30的长连接负载,其中,所述长连接负载计算公式如下:
P=M*K1+N*K2;
其中,P为流量路由节点的长连接负载,M为流量路由节点的主机代理连接数,N为流量数据量,K1为主机代理连接数权重,K2为流量数据量权重,K1和K2的具体数值根据实际情况设置,两者之和等于1。
此外,计算各流量路由节点30的长连接负载的方式还包括:
计算每个流量路由节点30单位时间内接收的流量数据字节码大小,以确定各流量路由节点30的长连接负载。其中,当一个流量路由节点30的流量数据字节码越大时,说明该流量路由节点30接收的流量越多,该流量路由节点30的长连接负载的数值越大。
本实施例中,负载均衡服务器10具体根据计算得到的各流量路由节点30 的长连接负载,选择相应的流量路由节点30以组成流量路由节点列表。可选的,选择长连接负载较轻的N个流量路由节点30组成流量路由节点列表,N 为指定数量。例如,先对各流量路由节点30的长连接负载进行从低到高的排序,选择前N个流量路由节点30以组成流量路由节点列表。
可选的,在一实施例中,优选从各流量路由节点30中筛选出长连接负载小于预设负载阈值的流量路由节点30,以组成流量路由节点列表。
基于各流量路由节点30的长连接负载,可了解各流量路由节点30的负载情况,比如某些流量路由节点负载大,不宜继续分担新的流量负载,而另一些流量路由节点负载较小,可以继续分担新的流量负载。
因此,本实施例中,在计算出各流量路由节点30的长连接负载后,从中筛选出长连接负载小于预设负载阈值的流量路由节点30(相对比较空闲的流量路由节点),并将该部分流量路由节点30添加到流量路由节点列表中,也即该列表中代表的是当前相对比较空闲的流量路由节点集合。
本实施例的长连接负载均衡针对的是从主机代理20到流量路由节点30 之间的长连接流量分发。因此负载均衡服务器10需要将流量路由节点列表下发各主机代理20,以供主机代理20基于流量路由节点列表选择流量发送路径,从而实现长连接流量在各流量路由节点30上的负载均衡。
需要说明的是,由于长连接上产生的流量是动态变化的,并且主机代理 20与流量路由节点30之间的连接也是动态变化的,因此,本实施例中优选流量路由节点30实时上报主机代理20连接数和流量数据量,以供负载均衡服务器10实时更新流量路由节点列表,进而实现长连接流量的实时动态负载均衡。
进一步地,为避免流量路由节点30过载而导致长连接不稳定或中断,在本发明长连接负载均衡系统一实施例中,长连接负载均衡系统还可对流量路由节点30进行扩容。
本实施例中,负载均衡服务器10还用于:
实时检测各流量路由节点30的长连接平均负载是否超过预设负载报警阈值;若是,则推送流量路由节点30扩容提示;
检测是否存在新扩容的流量路由节点30;
若存在,则通知主机代理20与新扩容的流量路由节点30建立连接。
本实施例支持流量路由节点30的在线扩容,当负载均衡服务器10计算得到各流量路由节点30的长连接负载后,还进一步检测各流量路由节点30 的长连接平均负载是否超过预设负载报警阈值,如果超过该负载报警阈值,则向系统管理方推送流量路由节点30扩容提示。本实施例中,扩容流量路由节点的过程包括:新增流量路由节点,在新增流量路由节点之后,新增的流量路由节点立即与消息队列建立连接,然后,新增的流量路由节点定时上报心跳至负载均衡服务器。
本实施例中,扩容新增的流量路由节点30上线后,先与负载均衡服务器 10建立连接,当负载均衡服务器10检测到新扩容的流量路由节点30上线时,通知主机代理20与新扩容的流量路由节点30建立连接。比如新扩容的流量路由节点30与少数或全部主机代理20建立连接。
为便于进行流量负载均衡,本实施例中优选主机代理20与流量路由节点 30采用多对多的映射关系建立连接,也即各主机代理20分别与每一个流量路由节点30建立连接。
本实施例的流量路由节点30扩容无需更新所有主机代理20的配置以及无需重新建立连接,因而保证了长连接的稳定运行。
进一步地,在本发明长连接负载均衡系统一实施例中,负载均衡服务器 10还负责管理所有主机代理20的参数配置,具体用于:
配置各主机代理20的参数信息并下发给主机代理20,以供所述主机代理 20基于所述参数信息采集主机上的流量,配置的参数信息至少包括:
(1)配置各主机代理20的流量采集路径;
(2)配置各主机代理20的采集流量的特征码。
其中,不同主机代理20的参数配置可以相同,也可以不相同。在完成参数配置后,将配置好的参数下发给对应的主机代理20,以供主机代理20基于配置的参数采集流量。
进一步地,在本发明长连接负载均衡系统另一实施例中,主机代理20还用于:
接收负载均衡服务器10下发的参数信息以及流量路由节点30列表;
基于参数信息,采集主机上的流量;
基于流量路由节点30列表,选择流量发送路径,以将采集的流量发送至对应的流量路由节点30。
本实施例中,主机代理20基于负载均衡服务器10配置的参数:流量采集路径和采集流量的特征,采集本主机上的流量,比如某些业务应用输出的日志,然后基于负载均衡服务器10提供的流量路由节点30列表,选择合适的流量发送路径,从而将采集的流量发送给对应的流量路由节点30。
本实施例中,参数信息以及流量路由节点30列表既可以是同时下发给主机代理20,也可以是单独发送。各主机代理20能够主动基于各流量路由节点 30的负载情况选择流量发送路径,进而实现流量在流量路由节点30上的负载均衡。
可选的,主机代理20基于所述流量路由节点列表选择流量发送路径,并将采集的流量发送至所述流量发送路径对应的流量路由节点的方式包括以下任意一种:
(1)主机代理20实时轮询流量路由节点列表中的各个流量路由节点30,以将采集的流量发送至各个流量路由节点30;
(2)主机代理20确定流量路由节点列表中各个流量路由节点30的权重值,根据各个流量路由节点30的权重值下发采集的流量至各个流量路由节点 30;其中,权重值越高的流量路由节点,下发的流量越多;
(3)主机代理20计算采集的流量(包括日志文件或日志文件的数据) 的哈希值,根据不同的哈希值将采集的流量发送至不同的流量路由节点30,应当理解,不同种类的流量的哈希值不同,按照哈希值的不同将各种流量下发至不同的流量路由节点。
进一步地,在本发明长连接负载均衡系统另一实施例中,流量路由节点 30还用于:
通过所述流量路由节点30对应的流量发送路径接收主机代理20采集的流量;下发流量至消息队列。
其中,所述流量路由节点30对应的流量发送路径由主机代理20基于负载均衡服务器10获取并下发至所述主机代理20的流量路由节点列表进行选择。
在本实施例中,流量路由节点30实时统计当前连接的主机代理连接数和接收到的流量数据量并上报负载均衡服务器10,由负载均衡服务器10基于各流量路由节点30当前连接的主机代理连接数和接收到的流量数据量,分别计算各流量路由节点30的长连接负载,并根据各流量路由节点30的长连接负载,选择流量路由节点30以组成流量路由节点列表以下发至主机代理20。主机代理20接收到流量路由节点列表之后,即可基于所述流量路由节点列表选择流量发送路径,并将采集的流量发送至所述流量发送路径对应的流量路由节点30。
本实施例中,流量路由节点30接收主机代理20发送的流量,然后基于自身的路由规则,将流量分发至后端处理。
为便于负载均衡服务器10能够获知本流量路由节点的负载情况,因此,在接收流量的同时,还向负载均衡服务器10上报当前连接的主机代理连接数和接收到的流量数据量。
本实施例中,流量路由节点30仅负责收集前端发送的流量并转发给后端处理,为避免后端出现过载,因此优选后端采用计算集群的分布式架构处理流量,以提升流量的处理效率。
参照图10,图10为本发明长连接负载均衡系统第二实施例的功能模块示意图。基于上述长连接负载均衡系统的各实施例,本实施例中,长连接负载均衡系统还包括:多个流式计算集群40;
本实施例中,流量路由节点30还用于:根据业务等级,将不同业务等级的流量分别转发到不同的消息队列中,以通过消息队列传输至后端各流式计算集群;流式计算集群40用于:处理本流式计算集群对应的消息队列中的流量。
本实施例中,为避免后端出现过载而影响处理效率,流量路由节点30先基于自身的路由规则,将流量转发到消息队列中以对流量进行缓存处理,之后再转发至后端处理,具体为:流量路由节点30根据业务等级,将不同业务等级的流量分别转发到不同的消息队列中,以通过消息队列传输至后端各流式计算集群分别处理各自对应的消息队列中的流量。或者,流量路由节点30 计算流量的哈希值,将不同哈希值的流量分别转发到不同的消息队列中,以通过消息队列传输至后端各流式计算集群分别处理各自对应的消息队列中的流量。
本实施例中,流量路由节点先将流量进行业务等级划分或哈希值划分,然后再将不同业务等级或不同哈希值的流量分别转发到不同的消息队列中,以避免低级别业务流量的突增而影响高级别业务流量的处理效率。
进一步地,参照图11,图11为图10中流式计算集群一实施例的功能模块示意图。本实施例中,一个流式计算集群40包括:多个一级计算单元401 和多个二级计算单元402。
一级计算单元401用于:处理消息队列中的流量,得到中间处理结果;
二级计算单元402用于:合并相同类型的中间处理结果,得到最终处理结果,并将最终处理结果存储到数据库中以及推送至前端页面展示。
本实施例中,多个一级计算单元401可以并行处理多条流量,进而可实现流量在多个一级计算单元401上的均衡处理,并实现数据秒级处理效果,提升流量处理效率。
由于多个一级计算单元401并行处理的多条流量可能属于同一应用或同一业务,也即每一个一级计算单元401所得到的中间处理结果仅仅只是同一应用或同一业务的部分结果。因此,进一步通过二级计算单元402合并具有相同类型的中间处理结果,比如将属于同一应用或同一业务的多个部分处理结果合并为一个最终处理结果,然后再将最终处理结果进行持久化存储以及推送至前端页面展示。
本实施例的计算集群采用流式框架进行流量处理,并且采用多个一级计算单元401和多个二级计算单元402进行分级计算,不仅避免了流量在某一个计算单元上突增而导致计算单元过载,同时也实现了数据秒级处理效果,提升了流量处理效率。
为便于更好地理解本发明长连接负载均衡系统的具体实现过程,下面以采集主机上业务应用输出的日志文件,计算出业务应用每一秒总的交易量这一应用场景进行举例说明。
参照图12,图12为本发明长连接负载均衡系统一实施例的连接架构示意图。
(1)主机代理:Agent1、Agent2、Agent3、Agent4,一个主机上部署一个Agent实例,各主机代理分别采集各自主机上业务应用输出的日志并实时传送给后端的流量路由节点;
(2)流量路由节点:RT1、RT2,用于收集各主机代理传送的日志流量并转发给后端计算集群进行处理;以及还用于将节点的主机代理连接数和接收的日志量等数据发送给负载均衡服务器;
(3)负载均衡服务器:RebalanceServer,负责管理所有Agent的配置(采集日志路径,日志的特征码),以及计算各RT的负载情况(负载=连接数*连接数权重+日志量*日志量权重),并选择相对空闲的N个RT以形成RT列表信息下发给Agent(N可以根据实际运行情况调整,N的值越大RT的负载越均衡)。
由于不同Agent采集到的日志量是不相同的,进而造成RT接收到的日志量差异性非常大,因而出现一部分RT处理量过载,而一部分RT空闲。因此,通过RebalanceServer计算Agent的负载情况选择出N条RT列表,并下发给 Agent。Agent实例轮询RT列表以选择日志流量的转发路径,进而把Agent 实例采集到的日志均衡的打散到不同的RT上,以使RT接收到日志量均衡。当RT过载处理时,还可以扩容RT。通过RebalanceServer通知Agent与新扩容的RT实例建立连接,进而将Agent采集的部分流量分摊到扩容的RT实例上,从而实现RT处理量的负载均衡。
(4)消息队列:Queue-Topic1、Queue-Topic2,RT根据应用的等级,把不同等级的应用日志转发到不同的消息队列中。一个计算集群处理一个消息队列的日志。
(5)流式计算集群:集群1、集群2,用于把相同时刻Agent采集同一应用相同类型的原始日志累加。例如,将应用A在12:01:01成交量的日志累加在一起、失败量的日志累加(或求平均,最大值,最小值等)在一起。
每个集群包括两级计算单元,集群1包括:一级计算单元(C1-Seckill-1、 C1-Seckill-2)、二级计算单元(C1-SK-Ⅱ-1、C1-SK-Ⅱ-2);集群2包括:一级计算单元(C2-Seckill-1、C2-Seckill-2)、二级计算单元(C2-SK-Ⅱ-1、C2-SK- Ⅱ-2)。
假设应用A在12:01:01成交量的日志是随机的落在Seckill-1和Seckill-2 实例上,也就是Seckill-1和Seckill-2各自计算出来的只是应用A在12:01:01 成交量的部分结果值。因此,SK-Ⅱ把中间结果合并成最终结果,并把最终结果存储到数据库以及推送到前端页面展现。
本发明还提供一种计算机可读存储介质。
本发明计算机可读存储介质上存储有长连接负载均衡程序,所述长连接负载均衡程序被处理器执行时实现如上述任一项实施例中所述的长连接负载均衡实现方法的步骤。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器或者网络设备等) 执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,这些均属于本发明的保护之内。
Claims (14)
1.一种长连接负载均衡实现方法,其特征在于,所述长连接负载均衡实现方法包括:
基于各流量路由节点上传的当前连接的主机代理连接数以及接收到的流量数据量,负载均衡服务器获取流量路由节点列表;
将获取的流量路由节点列表下发给各主机代理,以供各主机代理基于所述流量路由节点列表选择流量发送路径,并将采集的流量发送至所述流量发送路径对应的流量路由节点,经由流量路由节点下发流量至消息队列;
其中,所述各主机代理基于所述流量路由节点列表选择流量发送路径,并将采集的流量发送至所述流量发送路径对应的流量路由节点的步骤包括:
所述主机代理确定所述流量路由节点列表中各个所述流量路由节点的权重值,根据各个所述流量路由节点的权重值下发采集的流量至各个流量路由节点;其中,权重值越高的流量路由节点,下发的流量越多。
2.如权利要求1所述的长连接负载均衡实现方法,其特征在于,所述基于各流量路由节点上传的当前连接的主机代理连接数以及接收到的流量数据量,负载均衡服务器获取流量路由节点列表的步骤包括:
负载均衡服务器接收各流量路由节点上传的各流量路由节点当前连接的主机代理连接数和接收到的流量数据量;
基于各流量路由节点当前连接的主机代理连接数和接收到的流量数据量,分别计算各流量路由节点的长连接负载;
根据各流量路由节点的长连接负载,选择流量路由节点以组成流量路由节点列表。
3.如权利要求2所述的长连接负载均衡实现方法,其特征在于,所述分别计算各流量路由节点的长连接负载的步骤包括:
基于预设的长连接负载计算公式,分别计算各流量路由节点的长连接负载;
其中,所述长连接负载计算公式如下:长连接负载=主机代理连接数*连接数权重+流量数据量*流量权重;
所述根据各流量路由节点的长连接负载,选择流量路由节点以组成流量路由节点列表的步骤包括:
从各流量路由节点中筛选出长连接负载小于预设负载阈值的流量路由节点,以组成流量路由节点列表。
4.如权利要求1所述的长连接负载均衡实现方法,其特征在于,所述长连接负载均衡实现方法还包括:
负载均衡服务器实时检测各流量路由节点的长连接平均负载是否超过预设负载报警阈值;
若是,则推送流量路由节点扩容提示;
检测是否存在新扩容的流量路由节点;
若存在,则通知主机代理与新扩容的流量路由节点建立连接。
5.如权利要求1-4任一项所述的长连接负载均衡实现方法,其特征在于,在所述基于各流量路由节点上传的当前连接的主机代理连接数以及接收到的流量数据量,负载均衡服务器获取流量路由节点列表的步骤之前,所述长连接负载均衡实现方法还包括:
负载均衡服务器配置各主机代理的参数信息并下发给主机代理,以供所述主机代理基于所述参数信息采集主机上的流量,所述参数信息包括:流量采集路径、采集流量的特征码。
6.一种长连接负载均衡实现方法,其特征在于,所述长连接负载均衡实现方法包括:
流量路由节点通过所述流量路由节点对应的流量发送路径接收主机代理采集的流量,其中,所述流量路由节点对应的流量发送路径由主机代理基于负载均衡服务器获取并下发至所述主机代理的流量路由节点列表进行选择;其中,所述流量路由节点列表为所述负载均衡服务器基于各流量路由节点上传的当前连接的主机代理连接数以及接收到的流量数据量获取的;
所述流量路由节点下发流量至消息队列;
其中,所述流量路由节点通过所述流量路由节点对应的流量发送路径接收主机代理采集的流量的步骤包括:
所述流量路由节点接收所述主机代理基于所述流量路由节点列表中各个所述流量路由节点的权重值下发采集的流量,其中,权重值越高的流量路由节点,接收所述主机代理下发的流量越多。
7.如权利要求6所述的长连接负载均衡实现方法,其特征在于,所述流量路由节点下发流量至消息队列的方式包括:
流量路由节点根据业务等级,将不同业务等级的流量分别转发到不同的消息队列中,以通过消息队列传输至后端各流式计算集群分别处理各自对应的消息队列中的流量;
或者,所述流量路由节点计算流量的哈希值,将不同哈希值的流量分别转发到不同的消息队列中,以通过消息队列传输至后端各流式计算集群分别处理各自对应的消息队列中的流量。
8.如权利要求7所述的长连接负载均衡实现方法,其特征在于,所述流式计算集群包括多个一级计算单元和多个二级计算单元,所述后端各流式计算集群分别处理各自对应的消息队列中的流量的方式包括:
所述一级计算单元处理消息队列中的流量,得到中间处理结果;
所述二级计算单元合并相同类型的中间处理结果,得到最终处理结果,并将最终处理结果存储到数据库中以及推送至前端页面展示。
9.一种负载均衡服务器,其特征在于,所述负载均衡服务器包括存储器、处理器和存储在所述存储器上并可在所述处理器上运行的负载均衡程序,所述负载均衡程序被所述处理器执行时实现如权利要求1至5中任一项所述的长连接负载均衡实现方法的步骤。
10.一种流量路由节点,其特征在于,所述流量路由节点包括存储器、处理器和存储在所述存储器上并可在所述处理器上运行的负载均衡程序,所述负载均衡程序被所述处理器执行时实现如权利要求6至8中任一所述的长连接负载均衡实现方法的步骤。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有长连接负载均衡程序,所述长连接负载均衡程序被处理器执行时实现如权利要求1-5中任一项所述的长连接负载均衡实现方法的步骤。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有长连接负载均衡程序,所述长连接负载均衡程序被处理器执行时实现如权利要求6至8中任一所述的长连接负载均衡实现方法的步骤。
13.一种长连接负载均衡系统,其特征在于,所述长连接负载均衡系统包括:负载均衡服务器、多个主机代理、多个流量路由节点,其中,
所述负载均衡服务器,用于基于各流量路由节点上传的当前连接的主机代理连接数以及接收到的流量数据量,获取流量路由节点列表,将获取的流量路由节点列表下发给各主机代理;
所述主机代理,用于基于所述流量路由节点列表选择流量发送路径,并将采集的流量发送至所述流量发送路径对应的流量路由节点;
所述流量路由节点,用于将接收到的流量下发至消息队列;
其中,所述主机代理,还用于确定所述流量路由节点列表中各个所述流量路由节点的权重值,根据各个所述流量路由节点的权重值下发采集的流量至各个流量路由节点;其中,权重值越高的流量路由节点,下发的流量越多。
14.如权利要求13所述的长连接负载均衡系统,其特征在于,所述长连接负载均衡系统还包括:多个流式计算集群,所述流式计算集群包括:多个一级计算单元和多个二级计算单元;
所述一级计算单元用于:处理消息队列中的流量,得到中间处理结果;
所述二级计算单元用于:合并相同类型的中间处理结果,得到最终处理结果,并将最终处理结果存储到数据库中以及推送至前端页面展示。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811105651.1A CN109104377B (zh) | 2018-09-21 | 2018-09-21 | 长连接负载均衡方法、设备、系统及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811105651.1A CN109104377B (zh) | 2018-09-21 | 2018-09-21 | 长连接负载均衡方法、设备、系统及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109104377A CN109104377A (zh) | 2018-12-28 |
CN109104377B true CN109104377B (zh) | 2022-07-15 |
Family
ID=64867033
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811105651.1A Active CN109104377B (zh) | 2018-09-21 | 2018-09-21 | 长连接负载均衡方法、设备、系统及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109104377B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110163756B (zh) * | 2019-05-28 | 2023-07-18 | 深圳市迅雷网络技术有限公司 | 一种基于联盟链的交易方法、系统、服务器及区块链系统 |
CN110247971B (zh) * | 2019-06-17 | 2021-12-24 | 福建天泉教育科技有限公司 | 减少消息中间件连接数量的方法及其系统 |
CN112118275B (zh) * | 2019-06-20 | 2023-07-11 | 北京车和家信息技术有限公司 | 过载处理方法、物联网平台及计算机可读存储介质 |
CN111010453B (zh) * | 2019-12-29 | 2022-05-24 | 中建材信息技术股份有限公司 | 服务请求处理方法、系统、电子设备及计算机可读介质 |
CN111600921B (zh) * | 2020-03-23 | 2023-08-15 | 平安银行股份有限公司 | 基于中间件的请求发送方法、装置和计算机设备 |
CN112115016A (zh) * | 2020-08-06 | 2020-12-22 | 北京健康之家科技有限公司 | 应用性能监控系统 |
CN112132702B (zh) * | 2020-08-19 | 2022-11-29 | 国电南瑞科技股份有限公司 | 一种可扩展的电力现货市场数据校验方法和装置 |
CN113259428A (zh) * | 2021-05-11 | 2021-08-13 | 鸬鹚科技(深圳)有限公司 | 数据访问请求的处理方法、装置、计算机设备及介质 |
CN113986557B (zh) * | 2021-11-15 | 2023-09-12 | 北京航空航天大学 | 一种面向全流量采集的存储负载均衡方法及系统 |
CN114363351B (zh) * | 2021-12-27 | 2023-05-05 | 武汉思普崚技术有限公司 | 一种代理连接抑制方法、网络架构及代理服务器 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103618738A (zh) * | 2013-12-09 | 2014-03-05 | 惠州华阳通用电子有限公司 | 一种实现tcp长连接通信的负载智能分配系统及方法 |
CN105471760A (zh) * | 2014-09-12 | 2016-04-06 | 华为技术有限公司 | 一种路由方法、负载均衡的装置及数据通信系统 |
CN106230918A (zh) * | 2016-07-26 | 2016-12-14 | 努比亚技术有限公司 | 一种建立连接的方法及装置 |
CN106453125A (zh) * | 2016-11-04 | 2017-02-22 | 中国电子科技集团公司第二十八研究所 | 一种基于实时负载率的远程服务调用负载均衡系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8904028B2 (en) * | 2009-07-17 | 2014-12-02 | Intel Corporation | Scalable cluster router |
US11296930B2 (en) * | 2014-09-30 | 2022-04-05 | Nicira, Inc. | Tunnel-enabled elastic service model |
-
2018
- 2018-09-21 CN CN201811105651.1A patent/CN109104377B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103618738A (zh) * | 2013-12-09 | 2014-03-05 | 惠州华阳通用电子有限公司 | 一种实现tcp长连接通信的负载智能分配系统及方法 |
CN105471760A (zh) * | 2014-09-12 | 2016-04-06 | 华为技术有限公司 | 一种路由方法、负载均衡的装置及数据通信系统 |
CN106230918A (zh) * | 2016-07-26 | 2016-12-14 | 努比亚技术有限公司 | 一种建立连接的方法及装置 |
CN106453125A (zh) * | 2016-11-04 | 2017-02-22 | 中国电子科技集团公司第二十八研究所 | 一种基于实时负载率的远程服务调用负载均衡系统 |
Also Published As
Publication number | Publication date |
---|---|
CN109104377A (zh) | 2018-12-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109104377B (zh) | 长连接负载均衡方法、设备、系统及计算机可读存储介质 | |
EP3528440B1 (en) | Path selection method and system, network acceleration node, and network acceleration system | |
CN109660607B (zh) | 一种业务请求分发方法、接收方法、装置及服务器集群 | |
CN109308221B (zh) | 一种基于WebSocket长连接的Nginx动态负载均衡方法 | |
US20230093389A1 (en) | Service request allocation method and apparatus, computer device, and storage medium | |
CN101399746B (zh) | 报文路由方法、系统、设备和选择备份资源的方法、系统 | |
EP3264723B1 (en) | Method, related apparatus and system for processing service request | |
WO2023050901A1 (zh) | 一种负载均衡方法、装置、设备、计算机存储介质和程序 | |
CN110855564B (zh) | 路由路径智能选择方法、装置、设备及可读存储介质 | |
CN112671928B (zh) | 设备集中管理架构、负载均衡方法、电子设备及存储介质 | |
CN113810293B (zh) | 网络择优代理方法、装置、电子设备、服务器及存储介质 | |
CN112737897B (zh) | 一种链路监测调度方法、装置、设备及存储介质 | |
CN112671813B (zh) | 服务器确定方法、装置、设备及存储介质 | |
CN108737543B (zh) | 一种分布式物联网中间件及工作方法 | |
CN103384259A (zh) | 一种调节对等节点的传输速度的方法、装置、设备和系统 | |
CN105376170B (zh) | 一种负载均衡优先的虚拟化网络功能组合方法 | |
JP2001202318A (ja) | データ配信システム | |
US10554511B2 (en) | Information processing apparatus, method and non-transitory computer-readable storage medium | |
KR100576713B1 (ko) | 동적 부하 분산 시스템 및 그 방법 | |
CN106911815B (zh) | 信息处理方法、扩容方法、管理器、控制器及dns | |
CN103166979B (zh) | 自适应负载均衡实现方法和接入服务器 | |
CN112929410B (zh) | 一种支持云桌面多终端显示的系统及方法 | |
CN117081983B (zh) | 数据传输方法及装置 | |
US20230396677A1 (en) | Computing power information processing method, first network device, and system | |
CN105591888A (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 |