负载均衡设备的连接管理和复用的方法和系统的制作方法

文档序号:7871155阅读:345来源:国知局
专利名称:负载均衡设备的连接管理和复用的方法和系统的制作方法
技术领域
本发明涉及一种连接管理和复用方法,并且更具体地涉及一种负载均衡设备的连接管理和复用方法。
背景技术
随着互联网的发展,网络服务的数据量越来越大,同时对应用的高可用性提出了更高的要求,服务器主备冗余模式已经不能满足当前需求。因此,在大型网络服务架构中,通常使用负载均衡设备将用户请求转发给后端真实服务器。负载均衡设备是由多台服务器以对称的方式组成一个服务器集合,每台服务器都具有等价的地位,都可以单独对外提供服务而无须其他服务器的辅助。通过某种负载分担技术,将外部发送来的请求均匀分配到对称结构中的某一台服务器上,而接收到请求的服务器独立地回应客户的请求。均衡负载能够平均分配客户请求到服务器阵列,由此提供快速获取重要数据、解决大量并发访问服务问题。这种群集技术可以用最少的投资获得接近于大型主机的性能。然而,在转发 过程中负载均衡设备会对每一个用户连接同样建立一个到后端真实服务器的连接。用户因连接和断开网络连接而产生的周期性网络请求会耗费宝贵的网络应用资源。即使每个连接开销很小,但是综合到一起,它们将影响到总的应用负载。这对于电子商务站点和拥有大量用户的企业应用来说,尤为明显。而且,这样的实现占用大量连接数,增加真实服务器的负载。而且,连接数的增加会给系统增加大量的开销。由此可见,连接数对于服务器是一个极大的限制。为了解决连接数问题,已有的解决方法包括1)在负载均衡设备上主动断开对用户的连接,这样可以减少后端服务器的连接数,但可能会造成用户请求连接被重置。2)在负载均衡设备上保持对用户的连接,主动断开对后端服务器的连接,这样处理会导致负载均衡设备频繁建立和关闭到服务器的连接。因此,需要一种能够降低服务器连接数,并通过连接复用改善响应时间的连接数管理方法和系统。

发明内容
根据本发明的一方面,提供了一种负载均衡设备的连接管理和复用的方法,所述方法包括负载均衡设备从一个或多个应用接收用户请求;所述负载均衡设备将所述用户请求放入队列,并且记录所述请求的连接信息;连接管理器确定一个或多个连接池中是否存在空闲连接,其中所述连接池被设置有最大连接数和最小连接数,如果没有空闲连接,则所述连接管理器创建新连接,并且将新创建的连接分配给所述负载均衡设备;以及如果存在空闲连接,则所述连接管理器将所述空闲连接分配给所述负载均衡设备,所述负载均衡设备通过所分配的连接将所述用户请求转发给对应服务器,以及所述负载均衡设备将来自所述对应服务器的响应数据转发给用户。
根据本发明的另一个方面,提供了一种负载均衡设备的连接管理和复用的系统,所述系统包括一个或多个应用;负载均衡设备,所述负载均衡设备被配置成从一个或多个应用接收用户请求;以及将所述用户请求放入队列并且记录所述请求的连接信息;连接管理器,所述连接管理器被配置成确定一个或多个连接池中是否存在空闲连接,其中所述连接池被设置有最大连接数和最小连接数,如果没有空闲连接,则所述连接管理器创建新连接,并且将新创建的连接分配给所述负载均衡器;以及如果存在空闲连接,则将所述空闲连接分配给所述负载均衡设备,其中所述负载均衡设备通过所分配的连接将所述用户请求转发给对应服务器;并且将来自所述对应服务器的响应数据转发给用户。


附示了本发明的实施例,并与说明书一起用于解释本发明的原理。在附图中图1图示了根据本发明的实施例的负载均衡设备的连接管理的系统的框图。图2图示了根据本发明的一个实施例的负载均衡设备的连接管理的方法的流程图。图3图示了根据本发明的另一个实施例的负载均衡设备的连接管理方法的流程图。
具体实施例方式下面结合说明书附图详细描述本发明的实施例。根据本发明的负载均衡设备的连接管理的方法和系统通过在负载均衡设备上实现对客户端连接保持连接,但对用户的每条 连接并不同时创建一条到真实服务器的连接,而是对真实服务器维护一个连接池,充分复用到真实服务器的连接。这种方法可以减少真实服务器需要维护的连接数,并通过减少新建连接的次数,改善服务响应时间。图1图示了根据本发明的实施例的负载均衡设备的连接管理的系统100的框图。如图1所示,系统100包括应用101、102、103、负载均衡设备107、连接管理器109、连接池110和服务器111、113、115。出于示意的目的,图1中仅示出了三个应用和三个服务器,本领域技术人员可以理解,可以存在更多或更少的应用或服务器。应用101、102、103例如可以是由网络向用户提供的服务,并且它们可以具有不同的类型,诸如web、电子邮件和ftp等。应用101、102、103将用户请求发送到负载均衡设备107。对于每个应用,都需要负载均衡设备107根据管理员事先设定的负载算法和当前网络的实际的动态负载情况来对下一个用户请求进行重定向。例如,如果负载均衡设备107接收到来自应用101、102、103的用户请求,则它根据负载均衡策略将该用户请求放入队列并记录请求的连接信息,并且向连接管理器109指示该情况。如本领域技术人员已知的,负载均衡策略例如包括但不限于轮循均衡、随机均衡、响应速度均衡、最少连接数均衡、处理能力均衡等等。负载均衡设备107的工作并不影响用户的操作,用户只需完成对服务的请求,而不用关心具体如何完成的,从而增强了用户的体验。因此,负载均衡设备107提供了一种廉价有效透明的方法来扩展网络设备和服务器的带宽、增加了吞吐量、加强了网络数据处理能力、提高了网络的灵活性和可用性。例如,大量的并发访问或数据流量分担到多台节点设备上分别处理,减少用户等待响应的时间;单个重负载的运算分担到多台节点设备上做并行处理,每个节点设备处理结束后,将结果汇总并返回给用户,系统处理能力得到大幅度提闻。当用户与负载均衡设备107建立连接后,负载均衡设备107管理连接保持最大时间。负载均衡设备107与用户建立连接后并不立即向后端服务器111、113或115转发,而是当该连接中有诸如HTTP请求的用户请求后再做处理。例如,根据本发明的实施例,仅当接收到来自应用101、102、103的用户请求之后,负载均衡设备107才准备向后端服务器111、113或115转发用户请求。连接管理器109是用于管理连接的设备,例如用于分配、管理和释放连接,并且如图1所示包括连接池110。虽然图1仅示出了一个连接池,但是本领域技术人员理解可以存在不止一个连接池。连接管理器109在连接池110中预先创建了一定数量的连接。当需要建立与服务器111、113或115的连接时,连接管理器109首先检查连接池110中有没有空闲连接。如果有空闲连接,则将该空闲连接分配给负载均衡设备107。如果所述连接管理器109在连接池110中没有检查到空闲连接,则连接管理器109创建新的空闲连接并将新创建的空闲连接加入连接池110中。负载均衡设备107通过该空闲连接将用户请求转发给后端服务器111、113或115。在服务器111、113或115对该用户请求做出响应之后,负载均衡设备107通过对应用户连接将该响应发送给用户。连接管理器109对已经分配的连接只做计数,当使用完后再返还给连接池110。另外,连接管理器109在系统100关闭前断开所有连接并释放连接占用的系统资源。如本领域人员已知的,连接池的分配与释放,对系统的性能有很大的影响。合理的分配与释放,可以提高连接的复用度,从而降低建立新连接的开销,同时还可以加快用户的访问速度。根据另一个实施例,在连接管理器109将空闲连接分配给负载均衡设备107之前,可以进一步确定该空闲连接是否可用。如果该空闲连接可用,则将该可用连接分配给负载均衡设备107,如果该连接诸如由于超时、通讯等问题而不可用(S卩,无效连接),则将这个连接从连接池Iio中删除,并且重新检测连接池110中是否还有空闲连接。如果没有空闲连接,则检查连接池110中的当前连接是否达到所允许的最大连接数。如果没有达到,则新创建一个连接。如果已经达到,则等待预定的时间。如果在所述预定时间内有连接被释放出来,则可以将这个连接分配给负载均衡设备107。如果等待时间超过预定时间,则返回空值。如果存在多个连接池110,则它们可以是相同类型的连接池,也可以根据服务器类别的不同而是不同类别的连接池。而且,连接池110可以具备标识符,从而实现连接池与服务器之间的映射。另外,连接管理器109可以通过设置最小连接数和最大连接数来控制连接池110中的连接。最小连接数是系统启动时连接池所创建的连接数。如果创建过多,则系统启动就慢,但创建后系统的响应速度会很快;如果创建过少,则系统启动的很快,响应起来却慢。这样,可以在开发时,设置较小的最小连接数,开发起来会快,而在系统实际使用时设置较大的,因为这样对访问客户来说速度会快些。最 大连接数是连接池110中允许连接的最大数目,具体设置多少,要看系统的访问量,可通过反复测试,找到最佳点。为了确保连接池110中的最小连接数,连接管理器109可以主动监视连接池110。例如,以预定时间间隔对连接池110进行检测,如果发现连接数量小于最小连接数,则补充相应数量的新连接,使得达到所述最小连接数,以保证连接池的正常运转。这种方式会花费一定的系统开销,但可以保证较快的响应速度。替代地,连接管理器109也可以在发现空闲连接不够时再检查连接池110中的连接数。图2图示了根据本发明的一个实施例的负载均衡设备的连接管理的方法200的流程图。在方法200中,在步骤203中,负载均衡设备107从应用101、102、103接收到用户请求。在步骤205,负载均衡设备107将用户请求放入队列,并记录该请求的连接信息。在步骤207,连接管理器109确定连接池110中是否存在空闲连接。如果没有空闲连接,则连接管理器109在步骤209中创建新连接,然后在步骤211中将该新创建的连接分配给负载均衡设备107并且在步骤213中通过该新创建的连接将用户请求转发到对应服务器111、113或115。如果存在空闲连接,则在步骤211中,连接管理器109将该空闲连接分配给负载均衡设备107并且在步骤213中通过该空闲连接将用户请求转发到对应服务器111、113或115。然后,在步骤215中,负载均衡设备107将来自对应服务器的响应数据转发给用户。然后,方法200结束。优选地,图3图示了根据本发明的另一个实施例的负 载均衡设备的连接管理的方法300的流程图。如图3所示,如果在步骤107中确定存在空闲连接,则连接管理器109可以进一步在步骤303中确定该空闲连接是否是有效连接。如果该空闲连接是有效连接,则转到图2的步骤211。如果该空闲连接不是有效连接,则连接管理器109在步骤305中从连接池110中删除该空闲连接并且在步骤307中重新检测所述连接池中是否还有另外的空闲连接。如果在步骤307中检测到另外的空闲连接,则转到图2的步骤211。如果在步骤307中没有检测到另外的空闲连接,则连接管理器109在步骤309中检查所述连接池中的当前连接是否达到所允许的最大连接数。如果没有达到最大连接数,则连接管理器109在步骤311中新创建一个连接,然后转到图2的步骤211。如果已经达到所述最大连接数,则连接管理器109在步骤313中等待预定的时间。然后,在步骤315中,确定在所述预定时间内是否有连接被释放出来。如果在步骤315中确定有连接被释放出来,则转到图2的步骤211。如果确定没有连接被释放出来,则在步骤317中返回空值。根据本发明的技术方案,通过建立连接池以及对应的连接使用管理策略,使得可以高效、安全地复用连接。而且,由于连接得到重用,避免了频繁创建、释放连接引起的大量性能开销。因此,在减少系统消耗的基础上,也增强了系统运行环境的平稳性(减少内存碎片和临时进程的数量)。连接池在初始化过程中通常已经创建了若干连接备用。也就是,此时连接的初始化工作均已完成。因此,对于业务请求处理而言,直接利用现有可用连接,避免了连接初始化和释放过程的时间开销,从而缩减了系统100的整体响应时间。另外,对于多应用共存的系统而言,可在应用层通过连接的配置来实现连接池技术。某一个应用最大可用连接数的限制,从而避免某一个应用独占所有连接资源。如果预先的连接占用超过预定时间,则强制收回所占用的连接,从而避免了常规连接操作中可能出现的资源泄漏。上 述实施例仅是本发明的优选实施例,并不用于限制本发明。对本领域技术人员显而易见的是,在不脱离本发明的精神和范围的情况下,可以对本发明的实施例进行各种修改和改变。因此,本发明意在涵盖落入如权利要求所限定的本发明的范围之内的所有这样的修改或变型。
权利要求
1.一种负载均衡设备的连接管理和复用的方法,所述方法包括 负载均衡设备从一个或多个应用接收用户请求; 所述负载均衡设备将所述用户请求放入队列,并且记录所述请求的连接信息; 连接管理器确定一个或多个连接池中是否存在空闲连接,其中所述连接池被设置有最大连接数和最小连接数, 如果没有空闲连接,则所述连接管理器创建新连接,并且将新创建的连接分配给所述负载均衡设备;以及 如果存在空闲连接,则所述连接管理器将所述空闲连接分配给所述负载均衡设备, 所述负载均衡设备通过所分配的连接将所述用户请求转发给对应服务器,以及 所述负载均衡设备将来自所述对应服务器的响应数据转发给用户。
2.根据权利要求1所述的方法,进一步包括在将所述空闲连接分配给所述负载均衡设备之前,所述连接管理器确定该空闲连接是否是有效连接。
3.根据权利要求2所述的方法,进一步包括如果所述空闲连接是有效连接,则将所述空闲连接分配给所述负载均衡设备;如果所述空闲连接不是有效连接,则所述连接管理器从所述连接池中删除所述空闲连接并且重新检测所述连接池中是否还有另外的空闲连接。
4.根据权利要求3所述的方法,进一步包括如果所述空闲连接不是有效连接并且没有检测到另外的空闲连接,则检查所述连接池中的当前连接是否达到所允许的所述最大连接数。
5.根据权利要求4所述的方法,进一步包括如果当前连接没有达到所述最大连接数,则新创建一个连接;以及如果当前连接已经达到所述最大连接数,则等待预定的时间。
6.根据权利要求5所述的方法,进一步包括如果在所述预定时间内有连接被释放出来,则将这个连接分配给所述负载均衡设备;以及如果等待时间超过所述预定时间,则返回空值。
7.根据权利要求1所述的方法,其中,所述连接管理器以预定时间间隔检测所述连接池的所述最小连接数。
8.根据权利要求7所述的方法,其中,如果检测到所述连接池的当前连接数量小于所述最小连接数,则所述连接管理器补充相应数量的新连接,使得达到所述最小连接数。
9.一种负载均衡设备的连接管理和复用的系统,所述系统包括 一个或多个应用; 负载均衡设备,所述负载均衡设备被配置成从一个或多个应用接收用户请求;以及将所述用户请求放入队列并且记录所述请求的连接信息; 连接管理器,所述连接管理器被配置成确定一个或多个连接池中是否存在空闲连接,其中所述连接池被设置有最大连接数和最小连接数, 如果没有空闲连接,则所述连接管理器创建新连接,并且将新创建的连接分配给所述负载均衡器;以及 如果存在空闲连接,则将所述空闲连接分配给所述负载均衡设备, 其中所述负载均衡设备通过所分配的连接将所述用户请求转发给对应服务器;并且将来自所述对应服务器的响应数据转发给用户。
10.根据权利要求9所述的系统,其中,所述连接管理器进一步被配置成在将所述空闲连接分配给所述负载均衡设备之前,确定该空闲连接是否是有效连接。
11.根据权利要求10所述的系统,其中,所述连接管理器进一步被配置成如果所述空闲连接是有效连接,则将所述空闲连接分配给所述负载均衡设备;如果所述空闲连接不是有效连接,则所述连接管理器从所述连接池中删除所述空闲连接并且重新检测所述连接池中是否还有另外的空闲连接。
12.根据权利要求11所述的系统,其中,所述连接管理器进一步被配置成如果所述空闲连接不是有效连接并且没有检测到另外的空闲连接,则检查所述连接池中的当前连接是否达到所允许的所述最大连接数。
13.根据权利要求12所述的系统,其中,所述连接管理器进一步被配置成如果当前连接没有达到所述最大连接数,则新创建一个连接;以及如果当前连接已经达到所述最大连接数,则等待预定的时间。
14.根据权利要求13所述的系统,其中,所述连接管理器进一步被配置成如果在所述预定时间内有连接被释放出来,则将这个连接分配给所述负载均衡设备;以及如果等待时间超过所述预定时间,则返回空值。
15.根据权利要求9所述的系统,其中,所述连接管理器进一步被配置成以预定时间间隔检测所述连接池的所述最小连接数。
16.根据权利要求15所述的系统,其中,所述连接管理器进一步被配置成如果检测到所述连接池的当前连接数量小于所述最小连接数,则所述连接管理器补充相应数量的新连接,使得达到所述最小连接数。
全文摘要
本发明提供一种负载均衡设备的连接管理和复用的方法和系统,所述方法包括负载均衡设备从一个或多个应用接收用户请求;所述负载均衡设备将所述用户请求放入队列,并且记录所述请求的连接信息;连接管理器确定一个或多个连接池中是否存在空闲连接,其中所述连接池被设置有最大连接数和最小连接数,如果没有空闲连接,则所述连接管理器创建新连接,并且将新创建的连接分配给所述负载均衡设备;以及如果存在空闲连接,则所述连接管理器将所述空闲连接分配给所述负载均衡设备,所述负载均衡设备通过所分配的连接将所述用户请求转发给对应服务器,以及所述负载均衡设备将来自所述对应服务器的响应数据转发给用户。
文档编号H04L29/08GK103067293SQ201210590088
公开日2013年4月24日 申请日期2012年12月31日 优先权日2012年12月31日
发明者王守彦 申请人:北京京东世纪贸易有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1