• 学前教育
  • 小学学习
  • 初中学习
  • 高中学习
  • 语文学习
  • 数学学习
  • 英语学习
  • 作文范文
  • 文科资料
  • 理科资料
  • 文档大全
  • 当前位置: 雅意学习网 > 文科资料 > 正文

    网络应用程序的负载平衡问题_怎么解决应用程序显示停用问题

    时间:2020-03-06 07:47:27 来源:雅意学习网 本文已影响 雅意学习网手机站

      摘要:在现今网络时代,通过网络寻找信息的需求量越来越大,在网络节点上的服务器需要有相当的负载能力,而且越来越多的情况下还需要通过几台服务器来共同完成对需要的应答任务。介绍了一种多服务器共同负载并平衡工作的技术――负载平衡。首先概要性地描述了负载平衡的原理,并按照软件应用的执行过程,从软件层次至硬件平台,自上而下的顺序将常见的负载平衡方法分为软件级负载平衡、网络级负载平衡、硬件级负载平衡,并简明扼要地说明了各种负载平衡的使用范围、实现代价、可扩展性与及总体优缺点。
      关键词:负载平衡;DNS Apache/Tomcat;网络应用;会话状态管理
      中图分类号:TP393.01文献标识码:A文章编号:1672�7800(2011)012�0115�03
      
      
      作者简介:刘超(1977-),男,江苏南京人,硕士,南京工业大学信息中心科员,研究方向为校园网络安全研究。1问题的提出
       网络应用建立在网络服务器(Web Server)上,供客户端(Web Client)连接访问,服务器接收到客户端请求后处理业务逻辑,在此阶段网络应用通常会访问数据库,然后组成相应网络应答(Response)返回给客户端。如果只架设一台网络服务器,在客户数量较少,请求不繁忙的情况下系统能够满足需求,当客户数量骤增,单个客户的请求也相应变多时,一台服务器就不能满足实时处理需求,就会造成系统速度减慢,客户抱怨,甚至系统崩溃。另一方面,如果只有一台服务器提供服务,一旦该服务器瘫痪或者进行关闭维护,则整个系统就不能提供服务。第一个问题反映的是网络应用的可扩展性需求,第二个问题反映的是网络应用的冗余可靠性要求。这两个问题在当前多媒体大容量的视频点播网站中特别值得研究。
       负载平衡技术的提出就能够很好地解决网络扩展性、冗余可靠性的要求。
      2负载平衡的相关概念
       负载平衡器是由一组服务器组成的(集群)。在集群中各个计算机上同时运行相同的网络应用程序,而对外界客户端来说,负载平衡器提供的服务就好像是由一台网络服务器提供的一样。而负载平衡器将来自客户端的请求根据不同算法分配到集群中具体某个节点去,从而优化了系统性能。
       负载平衡器使用不同的算法控制通信流量。这些算法用于以智能地分散负载,最大限度地利用群集内的所有服务器。这些算法包括:
      循环法:循环算法将负载均衡地分配给集群中每台服务器,而不考虑当前的连接数或响应时间。循环法适合于群集中的服务器具有相同处理能力的情况。
      加权循环法:加权循环算法适合于每台服务器具有不同处理能力的情况。管理员将性能权值手动分配给每台服务器,而且按照服务器权值自动生成调度序列。然后,系统按照循环调度序列将请求定向到不同的服务器。
      最少连接:最少连接算法根据群集中哪台服务器当前正在处理的连接数最少,从而将请求发送给该服务器。
      基于负载:基于负载算法先判断群集中哪台服务器当前的负载最低,然后将请求发送给该服务器。
      3负载平衡分类及其优缺点
       负载平衡通常可以进行以下分类:
      3.1基于软件实现的负载平衡
       这类负载平衡又可以细分为系统软件级负载平衡、应用软件级负载平衡。
      (1) 系统软件级负载平衡。系统软件级负载平衡现在用得最多的是微软服务器企业版操作系统自带的“网络载量平衡”模块。它的算法是加权算法。这种负载平衡的优点是费用低、有可视化设置界面、设置简单,一般默认选项就能够满足企业级应用的要求。它的缺点主要是没有维护网络应用程序的会话状态,因此这种负载平衡方法不适用于基于HTTP/HTTPS协议开发的web应用程序。
      (2)应用软件级的负载平衡。应用软件级的负载平衡既可以自行用J2EE等实现,也可以用现成的web服务器(Apache配合Tomcat)来实现。
       Apache配合Tomcat服务器来处理HTTP协议请求是一种很好的组合。用Apache处理静态页面的请求(例如HTML、JPEG、GIF文件等内容),用Tomcat来处理一些动态页面的请求(例如JSP页面等)。如图1所示。
      
      图1Apache/Tomcat组合原理图2Apache/Tomcat组合
      进行负载平衡原理
       另外,我们还可以配置Apache和Tomcat来进行负载平衡。为了用Apache协同Tomcat进行负载平衡,需要在一台计算机或者多台计算机上运行多个Tomcat实例。当然如果多个Tomcat实例运行在同一台计算机上,那么这些实例应该配置在不同的端口监听请求,以免发生冲突。为了实现负载平衡我们要配置一个特殊的Tomcat实例来作为调度者(Tomcat Worker),让它处在Apache与其他Tomcat群组节点之间进行负载平衡。
       说明:客户端的请求通过HTTP/HTTPS协议发送到最前面的Apache Web server,然后转发到Tomcat负载平衡调度器上(Tomcat Worker),Tomcat根据负载平衡算法将接收的请求分配到负载平衡群组中的各个Tomcat实例中去。具体设置方法由于篇幅限制,不再这里赘述请参见参考文献。
       Apache与Tomcat组合进行负载平衡优点在于:①Apache和Tomcat项目都是开源项目,大大节约了开支,而且可以根据自己的需要进行改进源代码;②这种方式支持基于HTTP/HTTPS协议的会话状态管理;③投入小,没有硬件方面的投资。
      3.2网络级负载平衡
       网络负载平衡主要是用DNS(DNS Round Robin)来进行负载平衡。域名服务器数据库维护主机名称和相应IP地址的对应关系。
       为了用DNS进行负载平衡,DNS服务器要为一个域名存放多个对应的IP地址,这些IP地址就构成了负载平衡群组,里面的每一个IP地址都对应着相同的一个域名。在这个例子中www.省略 对应着以下一些IP地址:61.172.201.227-229
       DNS服务器将第一个请求分配给第一台机器(61.172.201.229),第二个请求发给第二台机器(61.172.201.228),以此类推,当第四个请求到来时,DNS服务器又将其分配给第一台机器(61.172.201.229),从而实现了循环算法的负载平衡。发送到这种负载平衡器上的请求被平均分配到了群组中的各个Web服务器上。
       DNS负载平衡的优点:①花费较省,安装设置方便:只需要稍微改变一下DNS的配置参数就能够配置成这种循环负载平衡器。而且通常的DNS服务器自动就支持这种负载平衡。网络应用程序不需要任何修改。②维护简单:不需要任何网络专家来进行设置和配置系统。
       DNS循环法负载平衡的缺点:①不支持会话的管理:如果要让这种负载平衡支持会话状态管理的话需要一些特殊的手段,比如cookies、隐含域、URL重写等方法以使基于HTTP的请求到达一个服务器后以后的请求就一直指向这台服务器。②可靠性不强:假设有n个节点的负载平衡群组,如果有一个节点崩溃了,按照循环算法那么每n个请求中就有一个请求要被分配到这个死节点上去。
      3.3硬件级负载平衡
       基于硬件的负载平衡的原理:这种负载平衡器对外只有一个虚拟IP地址。而不像DNS循环负载平衡那样有多个实际IP地址供外界使用。这样就不会出现请求被分配到死节点上去的危险。
      
      图3DNS循环负载平衡原理图4基于硬件的负载平衡原理
       当一个请求到达硬件负载平衡器后,它改写请求中的头信息(header)指向群组中的其它节点。如果一个节点退出群组,发过来的请求也不会指向死节点,因为集群中的所有物理机器对外都具有一个相同的IP地址。这个地址即使在一个子节点崩溃后也不会改变。
       基于硬件的负载平衡优点:①支持会话状态的管理:这种平衡方法读取每个请求的cookies或者URL信息,根据这些信息它能够重写头信息并发送这些请求到相应的集群节点上去,所以会话状态就保留下来了。②较好的可靠性:当平衡器检测到某个节点出现故障后,它会将所有原来指向这个节点的后续请求全部转向其他活动的节点。但是故障节点的会话信息将会丢失。③基于硬件的负载平衡缺点:硬件路由的缺点主要是太贵,设置较为复杂。因为所有的请求都要经过一个硬件平衡器,这个路由器的稳定及安全就极为重要,一旦路由器出现故障整个系统就会瘫痪,所以硬件负载平衡比较脆弱。
      4结束语
       本文描述了比较常见的负载平衡原理和它们的优缺点,并按照从上至下的顺序将各种负载平衡分类为软件级负载平衡、网络级负载平衡、硬件级负载平衡。在实际应用中可以将这几类负载平衡方法混合使用以最大化优化系统性能。
       另外,对于基于HTTPS协议的负载平衡可以采用代理服务器、硬件SSL解码器等变通方法进行负载平衡。
      参考文献:
      [1]范国闯,朱寰,黄涛,等.Web应用服务器自适应负载平衡服务[J].软件学报,2003(6).
      [2]Tomcat 项目源码[EB/OL].http://jakarta.省略/tomcat/index.html
      [3]PASCAL FORGET,MATT RAIBLeE.Apache 2.x + Tomcat 4.x + Load Balancing (or Private JVMs)[EB/OL].省略/tomcat/ . January 24, 2002 by Pascal Forget.Revised September 25, 2002 by Matt Raible
      [4]Vivek Viswanathan , Load Balancing Web Applications[EB/OL].http://www.省略/pub/a/onjava/2001/09/26/load.html, updated at 09/28/2001.
      (责任编辑:余晓)
      
       Load Balancing in Internet Applications
      
      Abstract:With development of nowadays Internet era whereby the increasing requirement for information via the networks, many servers cluster to respond incoming requirement together in more and more occasions in the networks nodes even though those severs possess more and more powerful load capacity individually. Thus this paper introduces one technology that drives multi�server work harmonically�Load Balancing (LB). Firstly, The brief concept of the LB is described in this article, and then in terms of the soft executing procedure, from software towards hardware, the LB is sorted as LB based on Software, LB based on Networks, LB based on Hardware with cascading layers. This paper also introduces the occasion with which every kind of LB ought to be employed and the consumption of it. Other information about expandable capacity, advantage and shortage are available also.
      Key Words: Load Balancing;DNS, Apache/Tomcat;Internet Applications;Management of the sessions

    推荐访问:负载 应用程序 平衡 网络应用程序的负载平衡问题 网络负载平衡管理器

    • 文档大全
    • 故事大全
    • 优美句子
    • 范文
    • 美文
    • 散文
    • 小说文章