`
shangjava
  • 浏览: 1234527 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

WEB 集群与负载均衡(一)基本概念-下

阅读更多
前面已经说过负载均衡的作用是在多个节点之间按照一定的策略(算法)分发网络或计算处理负载。负载均衡可以采用软件和硬件来实现。一般的框架结构可以参考下图。


后台的多个Web节点上面有相同的Web应用,用户的访问请求首先进入负载均衡分配节点(可能是软件或者硬件),由它根据负载均衡策略(算法)合理地分配给某个Web应用节点。每个Web节点相同的内容做起来不难,所以选择负载均衡策略(算法)是个关键问题。下面会专门介绍均衡算法。

web负载均衡的作用就是把请求均匀的分配给各个节点,它是一种动态均衡,通过一些工具实时地分析数据包,掌握网络中的数据流量状况,把请求理分配出去。对于不同的应用环境(如电子商务网站,它的计 算负荷大;再如网络数据库应用,读写频繁,服务器的存储子系统系统面临很大压力;再如视频服务应用,数据传输量大,网络接口负担重压。),使用的均衡策略(算法)是不同的。 所以均衡策略(算法)也就有了多种多样的形式,广义上的负载均衡既可以设置专门的网关、负载均衡器,也可以通过一些专用软件与协议来实现。在OSI七层协议模型中的第二(数据链路层)、第三(网络层)、第四(传输层)、第七层(应用层)都有相应的负载均衡策略(算法),在数据链路层上实现负载均衡的原理是根据数据包的目的MAC地址选择不同的路径;在网络层上可利用基于IP地址的分配方式将数据流疏通到多个节点;而传输层和应用层的交换(Switch),本身便是一种基于访问流量的控制方式,能够实现负载均衡。
目前,基于负载均衡的算法主要有三种:轮循(Round-Robin)、最小连接数(Least Connections First),和快速响应优先(Faster Response Precedence)。
①轮循算法,就是将来自网络的请求依次分配给集群中的节点进行处理。
②最小连接数算法,就是为集群中的每台服务器设置一个记数器,记录每个服务器当前的连接数,负载均衡系统总是选择当前连接数最少的服务器分配任务。 这要比"轮循算法"好很多,因为在有些场合中,简单的轮循不能判断哪个节点的负载更低,也许新的工作又被分配给了一个已经很忙的服务器了。
③快速响应优先算法,是根据群集中的节点的状态(CPU、内存等主要处理部分)来分配任务。 这一点很难做到,事实上到目前为止,采用这个算法的负载均衡系统还很少。尤其对于硬件负载均衡设备来说,只能在TCP/IP协议方面做工作,几乎不可能深入到服务器的处理系统中进行监测。但是它是未来发展的方向。


上面是负载均衡常用的算法,基于以上负载均衡算法的使用方式上,又分为如下几种:

1、DNS轮询
最早的负载均衡技术是通过DNS来实现的,在DNS中为多个地址配置同一个名字,因而查询这个名字的客户机将得到其中一个地址,从而使得不同的客户访问不同的服务器,达到负载均衡的目的。

   DNS负载均衡是一种简单而有效的方法,但是它不能区分服务器的差异,也不能反映服务器的当前运行状态。当使用DNS负载均衡的时候,必须尽量保证不同的 客户计算机能均匀获得不同的地址。由于DNS数据具备刷新时间标志,一旦超过这个时间限制,其他DNS服务器就需要和这个服务器交互,以重新获得地址数 据,就有可能获得不同IP地址。因此为了使地址能随机分配,就应使刷新时间尽量短,不同地方的DNS服务器能更新对应的地址,达到随机获得地址,然而将过 期时间设置得过短,将使DNS流量大增,而造成额外的网络问题。DNS负载均衡的另一个问题是,一旦某个服务器出现故障,即使及时修改了DNS设置,还是 要等待足够的时间(刷新时间)才能发挥作用,在此期间,保存了故障服务器地址的客户计算机将不能正常访问服务器
2、反向代理服务器
使用代理服务器,可以将请求转发给内部的服务器,使用这种加速模式显然可以提升静态网页的访问速度。然而,也可以考虑这样一种技术,使用代理服务器将请求均匀转发给多台服务器,从而达到负载均衡的目的。

   这种代理方式与普通的代理方式有所不同,标准代理方式是客户使用代理访问多个外部服务器,而这种代理方式是代理多个客户访问内部服务器,因此也被称为反向代理模式。虽然实现这个任务并不算是特别复杂,然而由于要求特别高的效率,实现起来并不简单。

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

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

3、地址转换网关
支持负载均衡的地址转换网关,可以将一个外部IP地址映射为多个内部IP地址,对每次TCP连接请求动态使用其中一个内部地址,达到负载均衡的目的。很多 硬件厂商将这种技术集成在他们的交换机中,作为他们第四层交换的一种功能来实现,一般采用随机选择、根据服务器的连接数量或者响应时间进行选择的负载均衡 策略来分配负载。由于地址转换相对来讲比较接近网络的低层,因此就有可能将它集成在硬件设备中,通常这样的硬件设备是局域网交换机。



分享到:
评论

相关推荐

    web集群服务的负载均衡方案选择与实现

    ### Web集群服务的负载均衡方案选择与实现 #### 一、引言 随着互联网技术的飞速发展,用户对Web应用的需求日益增加,这不仅体现在访问量的剧增上,还体现在对服务质量的要求提高上。为了满足这些需求,Web集群服务...

    Java集群与负载均衡

    Java集群与负载均衡是构建大型、高可用性Web应用程序的关键技术。它们确保系统能够处理大量并发请求,并在硬件故障或高负载情况下保持服务的稳定性和响应速度。下面将详细探讨这两个概念及其在Java开发中的应用。 ...

    Tomcat集群与负载均衡

    本文将深入探讨Tomcat集群与负载均衡的概念、原理及其实现方式,旨在帮助读者理解如何构建高可用、高并发的Web应用环境。 #### 二、Tomcat集群与负载均衡的核心概念 **1. 集群(Cluster)** 集群是指一组通过网络...

    weblogic8.1集群负载均衡

    WebLogic Server 8.1 集群负载均衡是一个关键的IT概念,它涉及在分布式环境中管理和优化应用程序的性能和可用性。WebLogic是Oracle公司的一款企业级Java应用服务器,而集群功能允许多个WebLogic服务器实例协同工作,...

    linux 服务器集群与负载均衡技术

    Linux服务器集群与负载均衡技术是构建高可用性、高性能计算环境的关键技术,广泛应用于大型网站、企业级应用和云计算服务中。本节将深入探讨这一主题,解析其核心概念、架构设计以及实施策略。 首先,我们需要理解...

    websphere_集群与负载均衡.pdf

    ### Websphere集群与负载均衡概念 在WebSphere中配置集群是为了提高系统的可用性和性能。集群允许多个服务器节点共同工作,以提供服务的冗余和可伸缩性。负载均衡则是集群中必不可少的一部分,它的作用是在集群的...

    Tomcat服务器集群和负载均衡

    本文将深入探讨“Tomcat服务器集群”和“负载均衡”的概念,以及如何进行相关的配置。 首先,我们要理解什么是Tomcat服务器集群。集群是一种通过多台服务器共享工作负载、提供冗余和提高可用性的方式。在Tomcat环境...

    服务器集群与负载均衡技术分享

    服务器集群与负载均衡技术是构建高可用、高性能网络服务的核心技术。本文将深入探讨这些概念,以及它们在实际应用中的重要性。 首先,服务器集群分为同构和异构两种类型。同构集群由架构相同的计算机组成,而异构...

    nginx+tomcat集群部署与负载均衡

    #### 版本信息与集群及负载均衡概念 在深入了解如何实现Nginx与Tomcat集群的部署和负载均衡之前,我们需要先了解一些基本的概念以及版本信息。 - **集群**:通常指一组计算机通过网络连接在一起工作,如同一个整体...

    分布式Web服务器中负载均衡的实现.pdf

    然而,DNS协议的复杂性(如缓存、失效处理)往往使其成为集群负载均衡和系统容错的瓶颈。为了缓解DNS服务器的压力并避免其成为系统瓶颈,现代系统设计允许客户端缓存最近访问过的服务器IP地址,从而使用户可以直接向...

    Linux环境下负载均衡集群的实现.pdf

    "Linux环境下负载均衡集群的实现" 本文主要讨论了 Linux 环境下实现负载均衡集群的方法。负载均衡集群可以在多台网络设备之间合理分配业务量,使设备充分发挥其处理能力,得到了广泛应用。 首先,作者介绍了 ...

    linux下tomcat集群的负载均衡

    ### Linux 下 Tomcat 集群的负载均衡详解 #### 一、集群基本概念 集群是一种集合了多个服务实体的工作模式,旨在提供比单一服务实体更强大、更可靠的平台。对于用户而言,集群表现为单一的服务实体,但实际上它是...

    Tomcat 集群负载均衡

    然而,单一的Tomcat实例可能无法满足高并发场景下的需求,这时就需要引入集群和负载均衡的概念。本文将深入探讨如何搭建Tomcat集群并实现负载均衡。 首先,理解“Tomcat集群”是指通过多台独立的Tomcat服务器共同...

    linux下配置tomcat集群的负载均衡.zip

    在Linux环境下配置Tomcat集群以实现负载均衡是提高Web应用性能和可用性的重要步骤。Tomcat作为Apache软件基金会的开源Java Servlet容器,广泛应用于各种规模的企业级应用部署。本教程将详细阐述如何在Linux系统中...

    搭建LVS集群实战负载均衡-随堂笔记.doc

    【搭建LVS集群实战负载均衡】的随堂笔记主要涵盖了LVS集群的理论知识和实际操作步骤,旨在帮助读者从零开始快速构建LVS负载均衡集群。以下是详细的知识点解析: 1. **LVS集群概述**: - 集群是一种由多台计算机...

    Apache+Tomcat+Linux集群和负载均衡

    在IT领域,Apache+Tomcat+Linux集群与负载均衡技术是实现高可用性、高性能Web服务的重要手段之一。本文将围绕这一主题展开详细讨论,涵盖关键技术概念、配置流程及注意事项等内容。 #### 一、概述 **Apache+Tomcat...

    深信服负载均衡AD5.3用户手册

    #### 一、负载均衡基础概念 **1.1 负载均衡简介** 负载均衡(Load Balancing, LB)是一种网络技术,用于在多台服务器之间分配流量,以优化资源利用、最大化吞吐量、最小化响应时间,并提高系统的可用性和可靠性。...

    轻松实现Apache,Tomcat集群和负载均衡

    ### 一、负载均衡的概念与重要性 负载均衡是计算机网络技术中的一个重要概念,主要用于在多个计算资源之间平均分配工作负载,以优化资源利用、最大化吞吐量、最小化响应时间,并避免任何单一资源的过载。在Web...

Global site tag (gtag.js) - Google Analytics