利用Linux虚拟主机实现数据高并发的系统及方法

文档序号:7777331阅读:192来源:国知局
利用Linux虚拟主机实现数据高并发的系统及方法
【专利摘要】本发明涉及一种利用Linux虚拟主机实现数据高并发的系统及方法,其系统包括一台负载均衡器以及至少一台真实服务器,负载均衡器通过路由器分别与每台真实服务器连接,负载均衡器和真实服务器通过设有防火墙的Internet连接用户主机;其方法首先由用户主机发起链接,经由负载均衡器转发访问请求至真实服务器,由真实服务器直接向用户主机返回结果,并读写数据。与现有技术相比,本发明具有节约成本、扩展简单、部署升级维护较为方便、能够满足数据量高并发的需求等优点。
【专利说明】利用Linux虚拟主机实现数据高并发的系统及方法
【技术领域】
[0001]本发明涉及一种对于数据高并发的处理技术,尤其是涉及一种利用Linux虚拟主机实现数据高并发的系统及方法。
【背景技术】
[0002]计算机集群是一种计算机系统,它通过一组松散集成的计算机软件和(或)硬件连接起来高度紧密地协作完成计算工作。在某种意义上,他们可以被看作是一台计算机。集群系统中的单个计算机通常称为节点,通常通过局域网连接。集群计算机通常用来改进单个计算机的计算速度和(或)可靠性,由于其具备较强的伸缩性,集群系统被广泛的应用于互联网的多个领域。
[0003]互联网的迅猛发展,改变着我们的工作和生活方式。随着人们对网络的依赖越发强烈,不同行业、不同类别的软件系统也竞相上线。对于通过互联网发布业务的组织机构来说,用户的体验性在很大程度上将决定其生存大计。同时,随着线上业务的发展,软件系统面临高并发访问和海量数据流的情况屡见不鲜,系统中的各个核心设备所负担的处理能力和计算强度也会相应增大,使得系统瓶颈问题将很快暴露出来,最终势必会影响到用户的体验性。如果淘汰现有设备去做硬件升级,将造成资源的浪费,而且如果以后面临业务量的激增,又不得不再次投入高额的硬件升级成本,甚至性能再卓越的设备也不能满足将来业务量的需求。
[0004]当前解决这些问题的方案之一是使用高性能的服务器。正如上所述,高性能服务器意味着高昂的硬件成本,当数据并发到一定程度时,该台服务器将是系统的整个瓶颈。而在软件方面,采用高性能的数据库和高效率的编程语言,虽然会带来较大的改进,但当市场上绝大多数产品采用该软件方法时,它的优势也将不复存在。在一些非关键性的业务上,此方案可以解决并发问题,但不具备通用性,也不符合多数的现实应用场景。
[0005]第二个解决方案是采用代理服务器,将数据的并发访问分发给集群内部的其他节点,再将内部处理结果通过代理服务器最终返回给用户。该种方案通过将数据请求分散到其他节点,必然减轻了对代理服务器的运行压力,然而代理服务器作为数据的唯一入口和出口,必然会成为一个瓶颈,它要求代理服务器有较高的硬件配置,才能够最大限度地提高系统的并发性。

【发明内容】

[0006]本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种利用Linux虚拟主机实现数据高并发的系统及方法。
[0007]本发明的目的可以通过以下技术方案来实现:
[0008]一种利用Linux虚拟主机实现数据高并发的系统,包括一台负载均衡器以及至少一台真实服务器,所述负载均衡器通过路由器分别与每台真实服务器连接,所述负载均衡器和真实服务器通过设有防火墙的Internet连接用户主机,所述负载均衡器配置有一个用于用户主机访问的对外服务IP,所述真实服务器配置有一个与对外服务IP相同的内部IP,并且其ARP回应处于关闭状态。
[0009]所述负载均衡器和真实服务器为Linux虚拟主机,两者可以为身份重合的同一物
理主机。
[0010]所述的负载均衡器和真实服务器通过同一网卡连接在同一物理网段上。
[0011]一种采用上述系统的实现数据高并发的方法,包括以下步骤:
[0012]I)用户主机发起链接,将包含Mac地址以及IP地址的访问请求通过Internet发送至负载均衡器,其中Mac地址的源地址为用户主机Mac地址usermac,目标地址为负载均衡器Mac地址Vmac,IP地址的源地址为用户主机IP地址userIP,目标地址为负载均衡器的对外服务IP地址VIP ;
[0013]2)负载均衡器接收到通过防火墙过滤的访问请求,选择一台真实服务器,更新访问请求内的Mac地址后,通过路由器将访问请求发送至所选择的真实服务器,其中更新后Mac地址的源地址为负载均衡器Mac地址Vmac,目标地址为所述真实服务器Mac地址macl ;
[0014]3)真实服务器接收到转发的访问请求,将IP地址中的目标地址与其内部IP进行匹配,若匹配成功,则提取并封装访问请求内的报文,更新Mac地址以及IP地址后,直接返回给用户主机,其中Mac地址的源地址为真实服务器Mac地址macl,目标地址为用户主机Mac地址usermac,IP地址的源地址为对外服务IP地址VIP,目标地址为用户主机IP地址userIP ;
[0015]4)用户主机接收到报文后,根据报文内的Mac地址以及IP地址,由本地代理服务模块提取报文内的信息并处理该结果。
[0016]步骤2)中真实服务器的选择采用加权最少链接算法,具体为负载均衡器根据各个真实服务器的性能对其设定权重,然后结合各个真实服务器的负载链接数和权重获取其负载权值,通过负载权值动态的选择真实服务器,使得各个真实服务器的负载权值趋于一致。
[0017]步骤2)中若负载均衡器无法正确转发访问请求至真实服务器,则向直接向用户主机发送错误报告。
[0018]步骤4)中由代理服务模块进行数据读取处理时,若当前的真实服务器存在目标数据,则真实服务器的代理服务模块将直接返回目标数据给用户主机;若当前的真实服务器不存在目标数据,则与存在该目标数据的真实服务器的代理服务模块进行通信,并获取所述目标数据,然后返回给用户主机。
[0019]步骤4)中由代理服务模块进行数据写入处理时,若代理服务模块可向自身的真实服务器写入数据时,则直接写入;若无法向自身的真实服务器写入数据时,与可写入该数据的真实服务器的代理服务模块进行通信,由其写入数据。
[0020]与现有技术相比,本发明具有以下优点:
[0021]1、可以线性增加真实服务器,随着其个数的增加,并发量将实现线性增长。这样的方式可以快速、简单的提高集群系统的并发量。
[0022]2.负载均衡器的硬件性能与真实服务器的配置可以相同,也可以更优。集群不必需要高性能的硬件设备,就可以达到较高的并发量,在很大程度上,降低了用户的硬件成本。同时,当负载均衡器硬件性能提升时,缘于Response步骤不再经过负载均衡器,它都会带来更高的并发量,其提升效果将是普通集群的数倍。
[0023]3.真实服务器的增加与移除非常简单,能够极大利用其伸缩性,满足多种类型的用户,因此实际应用场景非常广泛。
[0024]4.透明性。使得由多个独立的真实服务器组成的松藕合的集群系统构成一个虚拟服务器;用户端应用程序与集群系统交互时,就像与一台高性能、高可用的服务器交互一样,用户端无须作任何修改,部分服务器的加入和移出不会中断服务,这些对用户是透明的。
【专利附图】

【附图说明】
[0025]图1为本发明所述系统的结构示意图;
[0026]图2为本发明实施例中的具体配置示意图。
【具体实施方式】
[0027]下面结合附图和具体实施例对本发明进行详细说明。
[0028]实施例
[0029]如图1所示,本发明提供了一种利用Linux虚拟主机实现数据高并发的系统,该系统包括一台负载均衡器VS以及至少一台真实服务器RS,所述负载均衡器VS通过路由器I分别与每台真实服务器RS连接,所述负载均衡器VS和真实服务器RS通过设有防火墙2的Internet3连接用户主机4。
[0030]上述系统的具体配置过程如下:
[0031]1、负载均衡器的配置
[0032]首先,使用配置工具进行负载均衡器的配置,负载均衡器在Linux内核实现了传输层负载均衡,是整个系统的核心部件,由于它是工作在网络层之上的仅作分发之用,没有流量的产生,因此拥有较强的抗负载能力。该配置过程一般采用专用的配置工具ipvsadm。
[0033]在成功部署负载均衡器后,需要对其进行简单的配置。一般分为两个步骤,第一是配置负载均衡器本身,第二是配置真实服务器与负载均衡器的相关性,同时该操作也需要在真实服务器上对应完成。
[0034]然后是添加与移除真实服务器。当有一台新的真实服务器加进来的时候,只需要重复上一步骤的配置过程就可以,同样,当有一台真实服务器从系统中退出的时候,只需要单独配置负载均衡器就可以。当移除后的真实服务器重新添加进系统时,需要先将被添加的服务器做清理操作,然后就可以以一台新服务器的角色添加进来。
[0035]2、真实服务器的配置
[0036]首先,确保真实服务器需要与负载均衡器的系统版本保持一致。
[0037]然后,配置真实服务器的路由。
[0038]最后,配置真实服务器的代理服务。基于负载均衡器的调度技术,当一个TCP连接的初始SYN报文到达时,负载均衡器就调度到一台真实服务器,将报文转发给它。此后通过查发报文的IP和TCP报文头地址,保证此连接的后继报文被转发到该真实服务器。由于不管请求被发送到哪一台真实服务器,不同的用户主机访问相同的数据,要求的返回结果必须都是一样的,这样就要求真实服务器提供相同的服务。代理服务模块的作用有:用来响应负载均衡器的调度,用于真实服务器之间的内部数据访问,它们之间是完全对称的网络结构。
[0039]3、系统内的网络配置
[0040]路由器的作用在于使得负载均衡器与真实服务器都由一块网卡连在同一物理网段上。负载均衡器配置一个对外服务IP,名称为VIP,该IP地址可以由用户主机直接访问,真实服务器配置有一个与对外服务IP相同的内部IP,并为真实服务器添加一条可以到达内部网关的路由规则,同时关闭真实服务器的arp回应。
[0041]此外,本发明开公开了一种采用上述系统的实现数据高并发的方法,该方法的具体过程如下:
[0042]I)用户主机发起链接,将包含Mac地址以及IP地址的访问请求通过Internet发送至负载均衡器,其中Mac地址的源地址src mac为用户主机Mac地址usermac,目标地址dst mac为负载均衡器Mac地址Vmac, IP地址的源地址source ip为用户主机IP地址userIP,目标地址dst ip为负载均衡器的对外服务IP地址VIP,具体如下:
【权利要求】
1.一种利用Linux虚拟主机实现数据高并发的系统,其特征在于,包括一台负载均衡器以及至少一台真实服务器,所述负载均衡器通过路由器分别与每台真实服务器连接,所述负载均衡器和真实服务器通过设有防火墙的Internet连接用户主机,所述负载均衡器配置有一个用于用户主机访问的对外服务IP,所述真实服务器配置有一个与对外服务IP相同的内部IP,并且其ARP回应处于关闭状态。
2.根据权利要求1所述一种利用Linux虚拟主机实现数据高并发的系统,其特征在于,所述负载均衡器和真实服务器为Linux虚拟主机,两者可以为身份重合的同一物理主机。
3.根据权利要求1所述一种利用Linux虚拟主机实现数据高并发的系统,其特征在于,所述的负载均衡器和真实服务器通过同一网卡连接在同一物理网段上。
4.一种采用权利要求1所述系统的实现数据高并发的方法,其特征在于,包括以下步骤: 1)用户主机发起链接,将包含Mac地址以及IP地址的访问请求通过Internet发送至负载均衡器,其中Mac地址的源地址为用户主机Mac地址usermac,目标地址为负载均衡器Mac地址Vmac,IP地址的源地址为用户主机IP地址userIP,目标地址为负载均衡器的对外服务IP地址VIP ; 2)负载均衡器接收到通过防火墙过滤的访问请求,选择一台真实服务器,更新访问请求内的Mac地址后,通过路由器将访问请求发送至所选择的真实服务器,其中更新后Mac地址的源地址为负载均衡器Mac地址Vmac,目标地址为所述真实服务器Mac地址macl ; 3)真实服务器接收到转发的访问请求,将IP地址中的目标地址与其内部IP进行匹配,若匹配成功,则提取并封装访问请求内的报文,更新Mac地址以及IP地址后,直接返回给用户主机,其中Mac地址的源地址为真实服务器Mac地址macl,目标地址为用户主机Mac地址usermac, IP地址的源地址为对外服务IP地址VIP,目标地址为用户主机IP地址userIP ; 4)用户主机接收到报文后,根据报文内的Mac地址以及IP地址,由本地代理服务模块提取报文内的信息并处理该结果。
5.根据权利要求4所述的方法,其特征在于,步骤2)中真实服务器的选择采用加权最少链接算法,具体为负载均衡器根据各个真实服务器的性能对其设定权重,然后结合各个真实服务器的负载链接数和权重获取其负载权值,通过负载权值动态的选择真实服务器,使得各个真实服务器的负载权值趋于一致。
6.根据权利要求4所述的方法,其特征在于,步骤2)中若负载均衡器无法正确转发访问请求至真实服务器,则直接向用户主机发送错误报告。
7.根据权利要求4所述的方法,其特征在于,步骤4)中由代理服务模块进行数据读取处理时,若当前的真实服务器存在目标数据,则真实服务器的代理服务模块将直接返回目标数据给用户主机;若当前的真实服务器不存在目标数据,则与存在该目标数据的真实服务器的代理服务模块进行通信,并获取所述目标数据,然后返回给用户主机。
8.根据权利要求4所述的方法,其特征在于,步骤4)中由代理服务模块进行数据写入处理时,若代理服务模块可向自身的真实服务器写入数据时,则直接写入;若无法向自身的真实服务器写入数据时,与可写入该数据的真实服务器的代理服务模块进行通信,由其写入数据。
【文档编号】H04L29/08GK103618778SQ201310594261
【公开日】2014年3月5日 申请日期:2013年11月21日 优先权日:2013年11月21日
【发明者】王晓龙 申请人:上海爱数软件有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1