`
齐晓威_518
  • 浏览: 614920 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

负载均衡和集群

 
阅读更多

负载均衡,英文名称为Load Balance,其意思就是将负载(工作任务)进行平衡、分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务

 

 

 

负载均衡方面的专家和领航者是F5公司,他们在全球各地都有分公司和办公地点,做负载均衡很多年

 

Apache+Tomcat负载均衡和集群也可以实现,例如apache 为前端,多个tomcat为后台服务器,apachetomcat分发请求~

  

负载均衡建立在现有网络结构之上,它提供了一种廉价有效的方法扩展服务器带宽和增加吞吐量,加强网络数据处理能力,提高 网络的灵活性和可用性。它主要完成以下任务:解决网络拥塞问题,服务就近提供,实现地理位置无关性 ;为用户提供更好的访问质 量;提高服务器响应速度;提高服务器及其他资源的利用效率;避免了网络关键部位出现单点失效。

  定义

 其实,负载均衡并非传统意义上的“均衡”,一般来说,它只是把有可能拥塞于一个地方的负载交给多个地方分担。如果将其改 称为“负载分担”,也许更好懂一些。说得通俗一点,负载均衡在网络中的作用就像轮流值日制度,把任务分给大家来完成,以免让 一个人累死累活。不过,这种意义上的均衡一般是静态的,也就是事先确定的“轮值”策略 。

  与轮流值日制度不同的是,动态负载均衡通过一些工具实时地分析数据包,掌握网络中的数据流量状况,把任务合理分配出去。 结构上分为本地负载均衡和地域负载均衡(全局负载均衡),前一种是指对本地的服务器集群做负载均衡,后一种是指对分别放置在不 同的地理位置、在不同的网络及服务器群集之间作负载均衡。

  服务器群集中每个服务结点运行一个所需服务器程序的独立拷贝,诸如Web、FTP、Telnet或e-mail服务器程序。对于某些服务(如 运行在Web服务器上的那些服务)而言,程序的一个拷贝运行在群集内所有的主机上,而网络负载均衡则将工作负载在这些主机间进 行分配。对于其他服务(例如e-mail),只有一台主机处理工作负载,针对这些服务,网络负载均衡允许网络通讯量流到一个主机 上,并在该主机发生故障时将通讯量移至其他主机。   

  负载均衡技术实现结构  

  在现有网络结构之上,负载均衡提供了一种廉价有效的方法扩展服务器带宽和增加吞吐量,加强网络数据处理能力,提高网络的 灵活性和可用性。它主要完成以下任务:  

  ◆解决网络拥塞问题,服务就近提供,实现地理位置无关性

  ◆为用户提供更好的访问质量

  ◆提高服务器响应速度

  ◆提高服务器及其他资源的利用效率

  ◆避免了网络关键部位出现单点失效  

  广义上的负载均衡既可以设置专门的网关、负载均衡器,也可以通过一些专用软件与协议来实现。对一个网络的负载均衡应用, 从网络的不同层次入手,根据网络瓶颈所在进行具体分析。从客户端应用为起点纵向分析,参考OSI的分层模型,我们把负载均衡技 术的实现分为客户端负载均衡技术、应用服务器技术、高层协议交换、网络接入协议交换等几种方式。   

  负载均衡的层次  

  ◆基于客户端的负载均衡  

  这种模式指的是在网络的客户端运行特定的程序,该程序通过定期或不定期的收集服务器群的运行参数:CPU占用情况、磁盘 IO、内存等动态信息,再根据某种选择策略,找到可以提供服务的最佳服务器,将本地的应用请求发向它。如果负载信息采集程序发 现服务器失效,则找到其他可替代的服务器作为服务选择。整个过程对于应用程序来说是完全透明的,所有的工作都在运行时处理。 因此这也是一种动态的负载均衡技术。 

  但这种技术存在通用性的问题。因为每一个客户端都要安装这个特殊的采集程序;并且,为了保证应用层的透明运行,需要针对 每一个应用程序加以修改,通过动态链接库或者嵌入的方法,将客户端的访问请求能够先经过采集程序再发往服务器,以重定向的过 程进行。对于每一个应用几乎要对代码进行重新开发,工作量比较大。   

  所以,这种技术仅在特殊的应用场合才使用到,比如在执行某些专有任务的时候,比较需要分布式的计算能力,对应用的开发没 有太多要求。另外,在采用JAVA构架模型中,常常使用这种模式实现分布式的负载均衡,因为java应用都基于虚拟机进行,可以在应 用层和虚拟机之间设计一个中间层,处理负载均衡的工作。  

  ◆应用服务器的负载均衡技术  

  如果将客户端的负载均衡层移植到某一个中间平台,形成三层结构,则客户端应用可以不需要做特殊的修改,透明的通过中间层 应用服务器将请求均衡到相应的服务结点。比较常见的实现手段就是反向代理技术。使用反向代理服务器,可以将请求均匀转发给多 台服务器,或者直接将缓存的数据返回客户端,这样的加速模式在一定程度上可以提升静态网页的访问速度,从而达到负载均衡的目 的。  

  使用反向代理的好处是,可以将负载均衡和代理服务器的高速缓存技术结合在一起,提供有益的性能。然而它本身也存在一些问 题,首先就是必须为每一种服务都专门开发一个反向代理服务器,这就不是一个轻松的任务。   

  反向代理服务器本身虽然可以达到很高效率,但是针对每一次代理,代理服务器就必须维护两个连接,一个对外的连接,一个对 内的连接,因此对于特别高的连接请求,代理服务器的负载也就非常之大。反向代理能够执行针对应用协议而优化的负载均衡策略, 每次仅访问最空闲的内部服务器来提供服务。但是随着并发连接数量的增加,代理服务器本身的负载也变得非常大,最后反向代理服 务器本身会成为服务的瓶颈。  

  ◆基于域名系统的负载均衡  

  NCSA的可扩展Web是最早使用动态DNS轮询技术的web系统。在DNS中为多个地址配置同一个名字,因而查询这个名字的客户机将 得到其中一个地址,从而使得不同的客户访问不同的服务器,达到负载均衡的目的。在很多知名的web站点都使用了这个技术:包括 早期的yahoo站点、163等。动态DNS轮询实现起来简单,无需复杂的配置和管理,一般支持bind8.2以上的类unix系统都能够运行,因 此广为使用。   

  DNS负载均衡是一种简单而有效的方法,但是存在不少问题。  

  首先域名服务器无法知道服务结点是否有效,如果服务结点失效,余名系统依然会将域名解析到该节点上,造成用户访问失效。  

  其次,由于DNS的数据刷新时间TTL(Time to LIVE)标志,一旦超过这个TTL,其他DNS服务器就需要和这个服务器交互,以重 新获得地址数据,就有可能获得不同IP地址。因此为了使地址能随机分配,就应使TTL尽量短,不同地方的DNS服务器能更新对应的 地址,达到随机获得地址。然而将TTL设置得过短,将使DNS流量大增,而造成额外的网络问题。  

  最后,它不能区分服务器的差异,也不能反映服务器的当前运行状态。当使用DNS负载均衡的时候,必须尽量保证不同的客户计 算机能均匀获得不同的地址。例如,用户A可能只是浏览几个网页,而用户B可能进行着大量的下载,由于域名系统没有合适的负载策 略,仅仅是简单的轮流均衡,很容易将用户A的请求发往负载轻的站点,而将B的请求发往负载已经很重的站点。因此,在动态平衡特 性上,动态DNS轮询的效果并不理想。   

  ◆高层协议内容交换技术  

  除了上述的几种负载均衡方式之外,还有在协议内部支持负载均衡能力的技术,即URL交换或七层交换,提供了一种对访问流量 的高层控制方式。Web内容交换技术检查所有的HTTP报头,根据报头内的信息来执行负载均衡的决策。例如可以根据这些信息来确定 如何为个人主页和图像数据等内容提供服务,常见的有HTTP协议中的重定向能力等。  

  HTTP运行于TCP连接的最高层。客户端通过恒定的端口号80的TCP服务直接连接到服务器,然后通过TCP连接向服务器端发送一个 HTTP请求。协议交换根据内容策略来控制负载,而不是根据TCP端口号,所以不会造成访问流量的滞留。  

  由于负载平衡设备要把进入的请求分配给多个服务器,因此,它只能在TCP连接时建立,且HTTP请求通过后才能确定如何进行负 载的平衡。当一个网站的点击率达到每秒上百甚至上千次时,TCP连接、HTTP报头信息的分析以及进程的时延已经变得很重要了,要 尽一切可能提高这几各部份的性能。  

  在HTTP请求和报头中有很多对负载平衡有用的信息。我们可以从这些信息中获知客户端所请求的URL和网页,利用这个信息,负 载平衡设备就可以将所有的图像请求引导到一个图像服务器,或者根据URL的数据库查询内容调用CGI程序,将请求引导到一个专用 的高性能数据库服务器。   

  如果网络管理员熟悉内容交换技术,他可以根据HTTP报头的cookie字段来使用Web内容交换技术改善对特定客户的服务,如果能 从HTTP请求中找到一些规律,还可以充分利用它作出各种决策。除了TCP连接表的问题外,如何查找合适的HTTP报头信息以及作出 负载平衡决策的过程,是影响Web内容交换技术性能的重要问题。如果Web服务器已经为图像服务、SSL对话、数据库事务服务之类的 特殊功能进行了优化,那么,采用这个层次的流量控制将可以提高网络的性能。  

  ◆网络接入协议交换  

  大型的网络一般都是由大量专用技术设备组成的,如包括防火墙、路由器、第3、4层交换机、负载均衡设备、缓冲服务器和Web 服务器等。如何将这些技术设备有机地组合在一起,是一个直接影响到网络性能的关键性问题。现在许多交换机提供第四层交换功 能,对外提供一个一致的IP地址,并映射为多个内部IP地址,对每次TCP和UDP连接请求,根据其端口号,按照即定的策略动态选择 一个内部地址,将数据包转发到该地址上,

分享到:
评论

相关推荐

    实现基于nginx的tomcat负载均衡和集群配置

    在IT行业中,构建高效、可扩展的Web服务是至关重要的,而实现这一目标的一个常见方法是通过使用负载均衡和集群技术。本篇文章将详细讲解如何使用Nginx作为反向代理服务器来实现对Tomcat应用服务器的负载均衡和集群...

    java基于nginx的tomcat负载均衡和集群

    Java 基于 Nginx 的 Tomcat 负载均衡和集群 在本文中,我们将讨论如何使用 Nginx 实现 Tomcat 的负载均衡和集群。这种方法可以解决 Session 共享的问题,并且可以使多台 Tomcat 服务器共享 Session。 首先,需要...

    Windows+Nginx+Tomcat搭建负载均衡和集群的tomcat压缩包

    在构建高性能和高可用性的Web服务时,负载均衡和集群技术是必不可少的工具。本教程将探讨如何在Windows环境中利用Nginx作为反向代理服务器,与多个Tomcat实例配合,搭建一个负载均衡和集群的系统。这个压缩包包含多...

    基于apache的tomcat负载均衡和集群配置_mod jk

    Apache的Tomcat负载均衡与集群配置是Web服务器和应用服务器扩展性能的重要手段,它通过将请求分散到多个服务器上,可以提高系统的响应速度和可用性。在这个过程中,mod_jk模块扮演了关键角色,它是Apache HTTP服务器...

    Apache Http Server与Tomcat实现负载均衡和集群

    将两者结合使用,可以实现更高效、可扩展的服务架构,其中负载均衡和集群是提升系统性能和容错能力的关键。 **Apache Http Server与Tomcat的集成** Apache通过mod_jk模块与Tomcat进行集成,mod_jk是Apache的模块,...

    基于apache的tomcat负载均衡和集群配置

    在高流量或需要高可用性的情况下,单个Tomcat实例可能不足以处理所有的请求,这时就需要实现负载均衡和集群配置。Apache HTTP Server(通常称为Apache)可以通过其模块mod_jk与Tomcat集成,实现这种功能。 首先,...

    Tomcat+apache+mod_jk实现负载均衡和集群配置

    【负载均衡集群】是分布式系统中的一个重要概念,它旨在通过分散网络流量,使得多台服务器共同承担服务压力,提高系统的可用性和响应速度。在本文中,我们将深入探讨如何使用Apache Web服务器结合Tomcat应用服务器,...

    Apache,Tomcat负载均衡和集群

    Apache Tomcat 负载均衡和集群是企业级应用服务器部署中常见的技术,它能够提高系统的可用性、可扩展性和性能。在这个主题中,我们将深入探讨如何通过Apache HTTP Server(通常简称为Apache)配合Tomcat实现负载均衡...

    Apache的Tomcat负载均衡和集群(linux,centos)

    Apache 的 Tomcat 负载均衡和集群 ( linux, centos) jkmod

    Linux下安装与配置基于nginx的tomcat负载均衡和集群(通过cookie分发请求)

    在Linux环境下,构建基于Nginx的Tomcat负载均衡和集群是提高Web应用程序性能和可用性的常见策略。这里我们将深入探讨如何实现这一目标,特别是通过使用cookie来分发请求。 首先,我们需要理解负载均衡的基本概念。...

    Windows+Nginx+Tomcat搭建负载均衡和集群环境同时实现

    本教程将探讨如何在Windows环境下,利用Nginx作为反向代理和负载均衡器,与Tomcat应用服务器配合,搭建一个负载均衡和集群环境。这种配置能够提升系统的稳定性和处理能力,确保即使在服务器压力大的情况下,也能为...

    SQL Server数据库服务器负载均衡集群的实现

    SQL Server 数据库服务器负载均衡集群的实现 SQL Server 数据库服务器是应用范围最广的数据库产品,并且越来越多地在大型和关键的应用系统中提供服务。当企业应用越来越复杂、数据量越来越大的时候,SQL Server ...

    Apache 2+Tomcat 6负载均衡与集群配置及性能测试

    Apache 2+Tomcat 6 负载均衡与集群配置是提高Web应用程序可用性和性能的关键技术。通过负载均衡,可以将来自用户的请求均匀分配到多个服务器,避免单点故障,提升系统的整体处理能力。而Tomcat集群则使得多个Tomcat...

    基于apache的tomcat负载均衡与集群

    在高并发或者需要高可用性的情景下,单一的Tomcat服务器可能无法满足需求,这时候就需要采用负载均衡和集群技术来提升系统性能和可靠性。 **负载均衡** 负载均衡是将请求分发到多个服务器上的技术,目的是防止某一...

    lvs负载均衡集群详解

    Ipvsadm命令是LVS负载均衡集群的管理命令,通过Ipvsadm命令,可以实现负载均衡集群的配置、管理和监控。 LVS负载均衡集群的调度算法是整个集群的核心,通过调度算法,可以实现客户端请求的分发和负载均衡。常见的...

Global site tag (gtag.js) - Google Analytics