一种服务负载均衡方法及系统的制作方法

文档序号:9276814阅读:940来源:国知局
一种服务负载均衡方法及系统的制作方法
【技术领域】
[0001]本发明涉及一种计算机技术,特别是涉及一种服务负载均衡方法及系统。
【背景技术】
[0002]在计算机网络连接中,需要使用操作系统内核协议栈,最常用的就是TCP协议。当网络通信繁重时,需要对网络通信产生的负载进行均衡。通常可以采用的负载均衡方法主要通过报文中有意义的应用层内容,根据前端负载均衡设置的服务端选择方式,选择一个最合适的服务端进行业务处理。传统的服务负载均衡架构有两种方式,一种是使用专门的负载均衡设备作为前端,进行负载均衡到后端服务端;另一种方式前端和后端在同一台设备上,前端应用层负载均衡进程按报文内容进行负载均衡之后,再传输给后端不同的服务端口。第一种方式弊端是,需要性能强劲昂贵前端负载设备,增加服务的硬件成本。第二种方式弊端是,虽然没有增加应用硬件成本,但一个七层会话报文需要多次进出内核空间,随着服务连接数的增长,大量内核资源,如sock、服务端口等无法避免地被占用消耗,造成服务容量和性能的大幅下降。现有技术采用的应用层均衡部署如图1所示,通过统一的端口的代理均衡服务模块接收客户端的连接请求并建立连接后,将接收到的应用请求通过均衡策略转交给端口 B或端口 C,建立代理均衡服务模块与端口 B或端口 C应用服务模块之间的连接,由端口 B或端口 C的应用服务模块提供相应的应用服务后转发给代理均衡服务模块的端口 A,再由代理均衡服务模块端口转发给请求的客户端。其具体的流程如图2所示,其中端口 A为接收客户端请求的统一端口。GET(I)和GET(2)代表两个应用请求报文。
[0003]鉴于此,如何找到一种同时兼顾成本与服务性能的网络均衡方法就成了本领域技术人员亟待解决的问题。

【发明内容】

[0004]鉴于以上所述现有技术的缺点,本发明的目的在于提供一种服务负载均衡方法及系统,用于解决现有技术中的服务负载均衡方案不能兼顾均衡成本与服务性能的问题。
[0005]为实现上述目的及其他相关目的,本发明提供一种服务负载均衡方法,所述服务负载均衡方法包括:服务端通过统一的代理端口号接收客户端的请求报文,所述请求报文包括连接请求报文或应用请求报文,根据所述连接请求报文建立服务端与所述客户端的连接,并为所建立的连接在内核中创建一个连接管理结构,所述连接管理结构中保存有与所述客户端的连接相关信息;当服务端接收到一个所述应用请求报文时,在内核空间为所述应用请求报文选择一个可用的端口号,根据发送所述应用请求报文的客户端对应的连接相关信息建立所选择的端口号与所述客户端的一个socket通道;所述端口号的应用服务实例根据所述应用请求报文提供相应的服务,并通过所述socket通道将所述服务结果反馈给所述客户端。
[0006]可选地,所述请求报文包括遵循HTTP协议的请求报文。
[0007]可选地,仅当关闭所有与所述客户端的socket通道后,方可关闭所述服务端与所述客户端的连接。
[0008]可选地,所述服务负载均衡方法还包括:在所述连接管理结构中对端口号进行管理,将建立了 socket通道的端口号标识为已使用状态。
[0009]可选地,在所述连接管理结构中采用位图方式管理端口号,所述位图中的每一位与一个端口号一一对应,根据位图中每一位的值确定该位对应着的端口号的使用状态,所述使用状态包括已使用状态或者未使用状态。
[0010]可选地,仅当所述连接管理结构中的管理的端口号都处于未使用状态时,方可关闭与所述服务端与客户端的连接。
[0011]本发明还提供一种服务负载均衡系统,所述服务负载均衡系统包括:请求报文管理模块,用于通过统一的代理端口号接收客户端的请求报文,请求报文包括连接请求报文或应用请求报文,根据所述连接请求报文建立服务端与所述客户端的连接,为所建立的连接在内核中创建一个连接管理结构,所述连接管理结构中保存有与所述客户端的连接相关信息;应用请求均衡模块,与所述连接请求管理模块相连,用于当接收到一个所述应用请求报文时,在内核空间为所述应用请求报文选择一个可用的端口号,根据发送所述应用请求报文的客户端对应的连接相关信息建立所选择的端口号与所述客户端的一个socket通道;应用请求服务模块,与所述应用请求均衡模块相连,用于根据所述应用请求报文提供相应的服务,并通过所述socket通道将所述服务结果反馈给所述客户端。
[0012]可选地,所述请求报文包括遵循HTTP协议的请求报文。
[0013]可选地,所述连接请求管理模块还用于关闭所述服务端与所述客户端的连接,仅当关闭所有与所述客户端的socket通道后,方可关闭所述服务端与所述客户端的连接。
[0014]可选地,所述应用请求均衡模块还用于:在所述连接管理结构中对端口号进行管理,将建立了 socket通道的端口号标识为已使用状态,当所述socket通道关闭时,将所述socket通道对应的端口号标识为未使用状态。
[0015]可选地,在所述连接管理结构中采用位图方式管理端口号,所述位图中的每一位与一个端口号一一对应,根据位图中每一位的值确定该位对应着的端口号的使用状态,所述使用状态包括已使用状态或者未使用状态。
[0016]如上所述,本发明的一种服务负载均衡方法及系统,具有以下有益效果:能够解决针对使用专用负载均衡设备增加服务硬件成本的问题,以及使用应用层负载均衡将导致系统内核资源不可避免的消耗进而导致服务容量和性能下降的问题。通过本发明的技术方案,能够最大限度降低报文在内核和应用层之间的传递,节约CPU资源、节约端口资源,减少会话均衡的协议栈开销,从而大幅提高了单机容量和性能。
【附图说明】
[0017]图1显示为现有技术的负载均衡方法的一实施例中的系架构示意图。
[0018]图2显示为现有技术的负载均衡方法的一实施例中的流程示意图。
[0019]图3显示为本发明的服务负载均衡方法的一实施例中的流程示意图。
[0020]图4显示为本发明的服务负载均衡方法的一实施例中的架构示意图。
[0021]图5显示为本发明的服务负载均衡方法的另一实施例中的流程示意图。
[0022]图6显示为本发明的服务负载均衡方法的一实施例中的服务结构示意图。
[0023]图7显示为本发明的服务负载均衡方法的一实施例中的连接关闭的流程示意图。
[0024]图8显示为本发明的服务负载均衡系统的一实施例中的模块示意图。
[0025]元件标号说明
[0026]I服务负载均衡系统
[0027]11 请求报文管理模块
[0028]12 应用请求均衡模块
[0029]13 应用请求服务模块
[0030]SI ?S3 步骤
【具体实施方式】
[0031]以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的【具体实施
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1