当前位置: 澳门新濠3559 > 服务器运维 > 正文

通过Web服务器负载均衡来提高用户的访问性能,

时间:2019-10-07 08:05来源:服务器运维
一、可以借助Forefront来充当裁判的角色 如上图,是一家著名的BBS论坛的数据库架构。首先其通过多台WEB应用服务器来实现负载均衡。这个方案跟数据库架构关系不大,笔者不做过多阐述

一、可以借助Forefront来充当裁判的角色

如上图,是一家著名的BBS论坛的数据库架构。首先其通过多台WEB应用服务器来实现负载均衡。这个方案跟数据库架构关系不大,笔者不做过多阐述。笔者要谈的是,其在数据库服务器与WEB应用服务器之间,还多了一层,即数据库缓存服务器。在SQLServer数据库中,就是利用这些缓存服务器来实现数据库层面的负载均衡,来提高数据库的查询性能。那么这个解决方案到底有什么特点呢?是如何来解决查询操作这个瓶颈问题?在部署这个解决方案的时候需要注意哪些问题呢?不要着急,笔者会一一回答这些问题。

负载均衡器的优点

DNS给使用它的互联网应用带来额外的时延,有时时延还比较大,为了解决问题,需要引入“缓存”机制。缓存是指DNS查 询结果在主机(local DNS server)中缓存。在区内主机对某个域名发起第一次查询请求时,负责处理递归查询的DNS服务器要发送好几次查询(先查.root,再查.com之 类,再定位IP地址等)才能找到结果,不过在这过程中它也得到了许多信息,比如各区域权威DNS服务器(就是告诉你最终abc.com在哪里的DNS服务 器)和它们的地址、域名解析最终结果。他会把这些信息保存起来,当其他主机向它发起查询请求时,它就直接向主机返回缓存中能够找到的结果,直到数据过期。

澳门新濠3559 1

一、数据查询与数据更新分开走

   如上图所示,如果用户要查看某个帖子,其就会打开某个连接。此时WEB应用服务器就会从后台数据库中查询相关的记录。这里需要注意的是,由于其只是查看帖子,而不涉及到更新的操作,为此WEB应用服务器就只从缓存服务器中读取数据。这个缓存服务器中的记录跟数据库服务器的内容是同步的。WEB应用服务器在从数据库缓存服务器读取数据之前,还会先判断一下哪台数据库服务器比较空。会优先连接到比较空闲的数据缓存服务器中,然后从这台服务器中读取数据。所以,当访问这个论坛的用户比较多时,这个数据缓存服务器能够实现负载均衡的需要。

     如果用户看了某个帖子,现在需要发表一个评论,此时后台数据库会怎么操作呢?注意,当WEB应用服务器发送了一个Update更新操作的时候,其应用服务器会自动连接到数据库服务器,而不会再连接到数据库缓存服务器。而是直接向数据库服务器发送更新操走的语句。当数据库服务器更新了相关的内容之后,会与数据库缓存服务器实现数据的同步。从上图中可以看出,整个数据查询与数据更新WEB应用服务器是分两条路走。其实这就好像是公路上分道行驶,机动车走机动车道;非机动车走非机动车道。如此的话,就不会因为非机动车比较慢,而影响到机动车的速度。在这个方案中,将数据库的更新操作与查询操作分开来走,也是类似的道理。在查询时,数据流是单向流动的,所以能够在很大程度上提高查询的效率。从而让数据负载均衡的效果更加明显。总之,当某个应用程序查询操作大大超过更新操作时,通过在多个数据库间缓存只读数据,并在数据库间均匀连接客户端以分发负载,则就可以向外扩展工作负荷的读取分区,即实现负载均衡的目的。

谈Web服务器和应用服务器的负载均衡

流媒体业务是一种对实时性、连续性、时序性要求非常高的业务,无论从带宽消耗上还是质量保障上来说,对best-effort的IP网络都是一个不小的冲击

如上图所示,在Forefront安全网关的帮助下,管理员在发布执行相同角色的Web服务器时(即服务器负载均衡),可以控制各个服务器之间的复杂均衡(即可以是完全的负载均衡,也可以是有条件的负载均衡),从而实现入站访问的高可用性,并提高Web服务器的安全与性能。

根据一些专家的调查分析,发现企业在使用数据库的时候,90%以上主要用来查询。有些企业这个比例甚至更高。也就说,用户对数据库的操作,其实更新操作占的比例很少。大部分的操走都只是查询操作。如一些论坛,大部分用户只会看贴,而不会发帖。这就是一个典型的查询操作比例大大超过更新操作比例的例子。针对这种情况,其查询操作往往是其数据库性能的瓶颈。如何有效提高查询的性能,这就使各个数据库专家在考虑的问题。在SQL Server数据库中,已经有了一个现成的解决方案。数据库管理员可以利用缓存服务器来提高数据库的性能。笔者这里就以SQLServer2008为例,谈谈如何利用缓存服务器来实现负载均衡,来提高数据库的查询效率。

 

考虑到电信运营商的IP拓扑和流量模型,区域中心Cache通常部署在重点城市的城域网出口的位置,以保障向各个边缘 Cache的链路通畅。边缘Cache的位置选择则以整个节点能够提供的并发能力为主要依据,依据业务并发数收敛比,计算出单个Cache需要覆盖的用户 规模,从而选择一个合适的部署位置。当然,边缘Cache离用户越近,服务质量越好,但覆盖的用户数越少,部署成本越高。

在搭建服务器负载均衡环境时,很重要的一个问题就是如何来确定哪一台服务器比较空间,或者说用户该连接在那一台服务器上?虽然现在不少的服务器软件都带有这个功能,但是如果采用Forefront安全网关产品的话,还能够带来一些额外的安全收益。

三、为同步选择合适的复制方案

    那么该如何实现数据库服务器与缓存服务器之间的同步呢?在SQLServer数据库中,有三个方案可供数据库管理员选择。这三个方案分别为快照复制、合并复制与事务复制。这三个复制模型各有各的特点。不过从最终效果来看,其都可以实现数据库服务器与数据库缓存服务器之间的同步。不过由于其内部的实现机制不同,为此其虽然结果相同,但是从性能等方面考虑,还是有差异的。各种复制模型的原理与特点属于基本知识的范畴,笔者在这里就不做过多阐述了。笔者认为,在利用这个数据库缓存服务器来实现负载均衡的方案中,最好采用事务复制的同步方案。因为相比其他方案来说,事务日志能够满足事务的一致性、数据库服务器系统比较大的吞吐量、同步时尽量少的开销、以及系统比较短的滞后时间等等需求。另外在有些企业中采用这个方案的话,还要考虑到表与记录的过滤需求。而通过事务复制的话,就可以实现对列和行的过滤。而其他复制模型的话,只能够部分满足这些需求。所以,笔者认为,在选择数据同步方案时,可能选择事务复制来实现同步,更加的合适。不过最终是否真是如此,还是要求数据库管理员根据企业的实际需要,然后分别采用几个复制模型来进行测试,才能够得出真正合理的结果。

 

转载:

混合型负载均衡

–          Microsoft IIS Smooth Streaming

当Web服务器的用户数量比较多时,通过Web服务器负载均衡来提高用户的访问性能,是一个比较常用的手段。如下图所示。可以在企业中同时设置两台或者两台以上的Web服务器,从而实现在服务期之间负载均衡。如此的话,当有一个用户访问某个网页时,系统会自动挑选一台比较空闲的服务器来应对用户的请求。现在主要的关键点是,由谁来确定,这个访问者应该连接到哪一台服务器呢?给用户选择恰当的服务器,不仅可以提高用户的访问性能,而且还可以提高数据的安全性。

澳门新濠3559 2

软/硬件负载均衡

数据访问层位于系统的后端,负责管理Web系统的主要信息和数据存储,通常由数据库服务器和存储设备组成

...

二、 采用这个方案需要注意的地方

    在部署这个解决方案时,仍然有些数据库管理员需要关注的内容。如以下这些内容,数据库管理员需要根据企业的实际情况来进行调整,以提高这个方案的价值。

    首先需要考虑数据缓存服务器与数据库服务器之间同步的频率问题。这个同步操作是一把双刃剑。若同步的频率太高,会影响数据库服务器与缓存服务器的性能;若同步频率比较低的话,则数据库缓存服务器中的数据得不到及时的更新。如此的话,用户查询时可能在短时间内无法获取最新的数据。所以,一般来说,系统滞后的时间应该尽量的短,即数据库服务器的更新内容必须尽快与数据库缓存服务器进行同步。理想的状态时,在更新数据库服务器的同时更新数据库缓存服务器。但是,这么做是以牺牲数据库与数据库缓存服务器的性能为代价的。为此数据库管理员在实施这个解决方案时,往往不会这么做。而是设置在一段时间之后同步。如可以设置为10秒、60秒、300秒或者更长的时间后进行同步。具体这个同步的时间间隔多少为好,没有一个统一的标准。这需要数据库管理员根据企业对数据同步的要求不同而定。一般来说,数据库管理员在满足用户需要的前期下,可以将这个时间设置的相对长一点。这可以避免因为过多的同步操作而降低了这个方案的价值。其实,对于大部分用户来说,60秒左右的时间差异还是可以接受的。如在论坛中,一个人发帖后,在一分钟之后看到一般不会有什么问题。对于人的感觉来说,这个一分钟时间不长。但是对于数据库服务器来说,这一分钟可以做很多事情。所以,适当延长这个同步时间,却可以在很大程度上提高数据库服务器性能。这个时间的代价,有时候还是值得的。

    其次,在数据库服务器与数据库缓存服务器之间,应该建立比较直接的、快速的网络连接。当用户比较多时,数据库服务器与数据库缓存服务器之间若发生同步操作,则会造成很多的网络流量。有时候同步操作发生时,影响这个工作的效率可能并不是数据库服务器或者数据库缓存服务器本身,而是他们之间的网络连接。由于其可用的带宽跟不少数据库服务器系统的吞吐量,从而影响到了同步操作的效率。为此,在数据库服务器与数据库缓存服务器之间的网路连接,应该尽量的直接。如最好不要在中间夹着其他的不必要的网络设备;也最好不要在他们之间配备防火墙等安全策略。这些安全策略与网络设备都会在很大程度上影响到这个同步操作的效率。另外,最好也不要有其他的应用服务来争抢带宽。所以简单的说,如果可能的话,在数据库服务器上部署多张网卡,直接与数据库源服务器实现双机互联,而那传输同步操作需要的数据,这是一个很不错的手段。由于其数据传输更直接、而且其他设备或者应用服务也会来争夺其带宽,同时又可以克服他们的非法攻击。为此,只要他们之间多距离比较短的话,采用这种方案可能效果会比较好,可以在最大程度内缩短这个同步操作所需要的时间,从而让其他用户尽早看到更新的数据。

 •  通过故障恢复机制获得高可靠性. 故障恢复发生在当集群中某个节点不能处理请求,需将请求重新导向到其他节点时。主要有两种故障恢复:

在传输两端各架设代理设备,所有的响应报文都在本地完成,只有真正发起请求时才通过链路,相当于同时在服务器和客户端进行协议欺骗

如现在以上两台Web服务器,虽然是为了实现负载均衡来设置的。但是两台服务器有主次之别。如Web服务器1是主服务器,用户不仅可以在这台服务器上进行查询,而且还可以更新相关的数据。而对于Web服务器来说,其是辅助查询,一般用户只能够查询,而不能够更新。此时为了安全起见,显然会对访问Web服务器1的用户进行限制。如企业内部的用户,只能够访问Web服务器1。而对于外部用户,优先访问的是Web服务器2。当Web服务器2比较繁忙时,才允许外部用户访问Web服务器1。此时显然不是简单的Web服务器负载均衡可以实现的。要完成这个需求的话,必须要借助Forefront的帮助。从而在性能与安全之间达到一个均衡。

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

有两种GSLB实现方式,一种是基于DNS的,一种是基于应用层重定向的

     硬件路由的缺点在于费用、复杂性以及单点失败的。由于所有的请求均是通过一个单一的硬件负载均衡器来传递,因此,负载均衡器上的任何故障都将导致整个站点的崩溃。

–          Demux(音视频分离)

  在NT下的实现也很简单,下面详细介绍在win2000 server下实现DNS负载均衡的过程,NT4.0类似:

HTTP协议中的缓存技术:新 鲜度(时间值)和验证(验证信息如ETag或last-modified)时确定内容可否直接提供服务的最重要依据。如果缓存内容足够新鲜,缓存的内容就 能直接满足HTTP访问的需求了;如果内容过期,而经源服务器验证后发现内容没有发生变化,缓存服务器也会避免将内容从源服务器重新传输一遍

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

分层部署的方式,对点播业务而言的主要意义是节省存储成本,对直播业务而言在于减少带宽成本。在点播业务中,边缘Cache只需存储用户访问量大的内容或者内容片断,其余内容存储在区域Cache中。

然而对于大部分站点来讲,当前负载均衡主要是解决Web服务器处理能力瓶颈的,而非网络传输能力,很多站点的互联网连接带宽总共也不过10MB,只有极少的站点能够拥有较高速的网络连接,因此一般没有必要使用这些负载均衡器这样的昂贵设备。

客户端组件根据URL来获取这个视频的索引文件。索引文件包含了可提供分片文件的具体位置、解密密钥以及可用的替换流。

     代理服务器位于服务器集群之前,首先由它接受所有的请求并对之进行解密,然后将这些处理后的请求根据头信息重新发往相应的节点上,这种方式不需要硬件上的支持,但会增加代理服务器的额外的负担。

传输发起端

DNS负载平衡的方法RR-DNS(Round-Robin Domain Name System)

–          隐私性(privacy)

 2.如果是基于MS IIS,Windows 2003 Server本身就带了负载均衡服务,不需另外购买。但这一服务也只是轮流分配。

 

     正如上面所提到的,很难在那些来自HTTPS的请求上进行负载均衡和会话信息维护处理。因为,这些请求中的信息已经被加密了。负载均衡器没有能力处理这类请求。不过,这里有两种方法可以解决这一问题:

–          Decode(解码解压缩)

www IN A 192.1.1.3

 

定义

在流媒体CDN系统中,用户访问的调度会更多考虑内容命中,主要是因为流媒体内容文件体积大,业务质量要求高,如果从其 他节点拉内容再向用户提供服务会带来额外的延迟,影响用户体验。为进一步提高命中率,流媒体CDN系统普遍采用了对热点内容实施预先push的内容分发策 略

◆基于客户端的负载均衡

–          高带宽要求

  目前有许多不同的负载均衡技术用以满足不同的应用需求,下面从负载均衡所采用的设备对象、应用的网络层次(指OSI参考模型)及应用的地理结构等来分类。

缓存算法决定命中率、源服务器压力、POP节点存储能力

代理网络服务器

–          码率转换

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

全局负载均衡(GSLB)的负载均衡主要是在多个节点之间进行均衡,其结果可能直接终结负载均衡过程,也可能将用户访问交付下一层次的(区域或本地)负载均衡系统进行处理。GSLB最通用的是基于DNS解析方式,还有HTTP重定向、IP路由等方法

针对每一次代理,代理服务器就必须打开两个连接,一个对外,一个对内,因此在并发连接请求数量非常大的时候,代理服务器的负载也就非常大了,在最后代理服务器本身会成为服务的瓶颈。


第一章    引言 

IMA是另外一种多线路的反向多路复用技术,工作在信元级,能够运行在使用ATM路由器的平台上。

 

TCP Open侦测:每个服务都会开放某个通过TCP连接,检测服务器上某个TCP端口(如Telnet的23口,HTTP的80口等)是否开放来判断服务是否正常。

在有些CDN中(用于视频网站加速的情况较多),网站需要加速的内容全部先缓存在OCS(内容中心),然后再将一部分 (通常是热门的内容)分发到个POP节点(Cache边缘集群),所以POP节点在某些时候会出现本地不命中而需要回OCS取内容或者从其他POP节点取 内容的情况

最少连接数均衡(Least Connection):客户端的每一次请求服务在服务器停留的时间可能会有较大的差异,随着工作时间加长,如果采用简单的轮循或随机均衡算法,每一台服务器上的连接进程可能会产生极大的不同,并没有达到真正的负载均衡。最少连接数均衡算法对内部中需负载的每一台服务器都有一个数据记录,记录当前该服务器正在处理的连接数量,当有新的服务连接请求时,将把当前请求分配给连接数最少的服务器,使均衡更加符合实际情况,负载更加均衡。此种均衡算法适合长时处理的请求服务,如FTP。

PUSH方式适合内容访问比较集中的情况,如热点的影视流媒体内容,PULL方式比较适合内容访问分散的情况

链路聚合技术,将多个线路的传输容量融合成一个单一的逻辑连接。当原有的线路满足不了需求,而单一线路的升级又太昂贵或难以实现时,就要采用多线路的解决方案了。目前有5种链路聚合技术可以将多条线路“捆绑”起来。

用户数据层负责存储用户信息数据和关联关系,内容来自用户提供和用户行为分析结果

  注意,此项设置最好添加在httpd.conf文件“Section 2”以后的位置,服务器192.168.1.1-3也应是具有相应功能的www服务器,在重启服务时,最好用apachectl configtest命令检查一下配置是否有误.

  为了建立一个高负载的Web站点,必须使用多服务器的分布式结构。上面提到的使用代理服务器和Web服务器相结合,或者两台 Web服务器相互协作的方式也属于多服务器的结构,但在这些多服务器的结构中,每台服务器所起到的作用是不同的,属于非对称的 体系结构。非对称的服务器结构中每个服务器起到的作用是不同的,例如一台服务器用于提供静态网页,而另一台用于提供动态网页等等。这样就使得网页设计时就需要考虑不同服务器之间的关系,一旦要改变服务器之间的关系,就会使得某些网页出现连接错误, 不利于维护,可扩展性也较差。

负责为用户提供内容服务的cache设备应部署在物理上的网络边缘位置,即CDN边缘层。CDN系统中负责全局性管理和 控制的设备组成中心层(二级缓存),中心层同时保存着最多的内容副本,当边缘层设备未命中时,会向中心层请求,如果在中心层仍未命中,则需要中心层向源站 回源(如果是流媒体,代价很大)

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

 

  本文对Web服务器和应用服务器的负载均衡进行说明。

–          SSL加密分对称秘钥和非对称秘钥(计算资源消耗更大)

负载均衡器的缺点

–          客户端软件负责确定应该请求的具体媒体流,下载相关资源,并在下载后通过拼接分片将流媒体重新展现给用户

 1.最简单的是通过DNS,但只能实现简单的轮流分配,也不能处理故障

–          其他信息,包括服务器当前可用会话数、最少选择次数、轮询等

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

–          SOA记录(start of authority):指定该区域的权威域名服务器

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

当需要访问abc.com这个站点时,实际上我们想要浏览的网页内容都存放在互联网中对应某个IP的服务器上,而浏览器的任务就是找到我们想要访问的这台服务器的IP地址,然后向它请求内容。

  proxypass /news

TCP协议优化

负载均衡技术分类

当用户请求的内容在Cache上命中时,Cache直接向用户提供流服务,此时Cache设备充当流媒体服务器的角色; 当用户请求内容未能在Cache上命中时,Cache会从上一级Cache(二级缓存设备或中间缓存设备)或者源站服务器获取内容,再提供给用户。 Cache在用户与另一个流媒体服务器之间扮演代理的角色

  ◆带均衡策略的服务器群集

–          Web系统数据访问层复制。CDN边缘服务器能够具备生成动态内容和掌管内容生成数据的能力

在这种半中心的负载均衡方式下,即当客户请求发送给负载均衡器的时候,中心负载均衡器将请求打包并发送给某个服务器,而服务器的回应请求不再返回给中心负载均衡器,而是直接返回给客户,因此中心负载均衡器只负责接受并转发请求,其网络负担就较小了。

–          Web系统表现层的复制,就是静态内容的复制。边缘服务器又被称为代理服务器,通过反向代理加速静态文件的交付

由于第四层交换基于硬件芯片,因此其性能非常优秀,尤其是对于网络传输速度和交换速度远远超过普通的数据包转发。然而,正因为它是使用硬件实现的,因此也不够灵活,仅仅能够处理几种最标准的应用协议的负载均衡,如HTTP 。当前负载均衡主要用于解决服务器的处理能力不足的问题,因此并不能充分发挥交换机带来的高网络带宽的优点。

通过协议识别,实现在同一端口中不同应用的真正区分,进而通过分流实现时延敏感应用的带宽保障

还有一种链路聚合发生在服务器或者网桥的接口卡上,通过同一块接口卡的多个端口映射到相同的IP地址,均衡本地的以太网流量以实现在服务器上经过的流量成倍增加。目前市面上的产品有intel和dlink的多端口网卡,,一般在一块网卡上绑定4个100M以太端口,大大提高了服务器的网络吞吐量。不过这项技术由于需要操作系统驱动层的支持,只能在win2000和linux下实现。

第三章    内容缓存工作原理

负载均衡实施要素

–          完整性(integrity)

网络负载均衡提高了诸如Web服务器、FTP服务器和其他关键任务服务器上的因特网服务器程序的可用性和可伸缩性。单一计算机可以提供有限级别的服务器可靠性和可伸缩性。但是,通过将两个或两个以上高级服务器的主机连成群集,网络负载均衡就能够提供关键任务服务器所需的可靠性和性能。

主要差异点

流媒体CDN

Web CDN

内容类型

大文件、实时流、QoS要求高

小文件、固定大小、QoS要求低

用户行为

拖曳、暂停等播放控制

下载后浏览

内容管理

内容冷热度差异明显(对命中率要求高),内容生命周期长

内容冷热度差异不明显,内容生命周期短

回源要求

回源比例小

回源比例大

转载于:

–          TCP窗口大小的限制(TCP窗口大小随传输成功而变大,而一旦发生传输失败,其窗口大小会立即缩小)

蓝森林  2000年9月23日 11:40

–          地理区域距离

  http://www.itmgt.com.cn/ha/hafaq.htm  ·

通过CNAME方式实现负载均衡:域名服务器获得CNAME记录后,就会用记录中的别名来替换查找的域名或主机名(实现多个域名->服务器映射)。后面会查询这个别名的A记录来获取相应的IP地址。

  下面以在apache mod_proxy下做的反向代理负载均衡为配置实例:在站点www.test.com,我们按提供的内容进行分类,不同的服务器用于提供不同的内容服务,将对

将类HTTP的业务、图片、文字等缓存在本地,只传输动态内容,减少带宽占用

  反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。

–          编码格式转换。编码格式主要包括H.264、MPEG-4、MPEG-2、VC-1、REAL、H.263、WMV。通常是把其他编码格式转换成H.264

  全局负载均衡有以下的特点:

–          连接池:通过维护一个预先建立好的TCP连接池,当有数据传输需求时,从连接池中挑选一条可用连接今次那个传输。

③       能根据连接请求的类型,如是普通文本、图象等静态文档请求,还是asp、cgi等的动态文档请求,把相应的请求引向相应的服务器来处理,提高系统的性能及安全性。

TCP连接在每一次HTTP(HTTP 1.0)请求和响应完成后就关闭,如果客户端还要请求其他对象,需要重新为每个对象建立TCP连接。当一个Web页面内包含多个对象并全部显示时,客户端需要与服务器建立的TCP连接数较多,对整个时延和网络流量造成了较大的影响

www IN A 192.1.1.2

播放一个视频分为以下四个步骤

• 请求级故障恢复。当集群中的一个节点不能处理请求时(通常是由于down机),请求被发送到其他节点。当然,在导向到其他节点的同时,保存在原节点上的会话信息将会丢失。

代理设备

  能进行负载均衡的网络设计结构为对称结构,在对称结构中每台服务器都具备等价的地位,都可以单独对外提供服务而无须其他服务器的辅助。然后,可以通过某种技术,将外部发送来的请求均匀分配到对称结构中的每台服务器上,接收到连接请求的服务器都 独立回应客户的请求。在这种结构中,由于建立内容完全一致的Web服务器并不困难,因此负载均衡技术就成为建立一个高负载Web 站点的关键性技术。

使用CDN会极大简化网站的系统维护工作量,网站维护人员只需将网站内容注入CDN的系统,通过CDN部署在各个物理位置的服务器进行全网分发,就可以实现跨运营商、跨地域的用户覆盖

当请求到达负载均衡器时,它会重写该请求的头文件,并将之指定到集群中的机器上。如果某台机器被从集群中移除了,请求不会别发往已经不存在的服务器上,因为所有的机器表面上都具有同一个IP地址,即使集群中的某个节点被移除了,该地址也不会发生变化。而且,internet上缓存的DNS条目也不再是问题了。当返回一个应答时,客户端看到的只是从负载均衡器上所返回的结果。也就是说,客户端操作的对象是负载均衡器,对于其更后端的操作,对客户端来讲,是完全透明的。

TCP的问题

    这种基于软件的负载均衡方法主要存在两处不足,一是不实时支持服务期间的关联,一是不具有高可靠性。

–          打包下载:在原文件的基础上进一步封装,使得资源的hash 值改变

硬件SSL解码器

第六章 流媒体CDN系统的组成

  不管负载均衡方案是采用花费较少的软件方式,还是购买代价高昂在性能功能上更强的第四层交换机、负载均衡器等硬件方式来实现,亦或其他种类不同的均衡技术,下面这几项都是我们在引入均衡方案时可能要考虑的问题:

第二章    CDN技术概述

  负载均衡从其应用的地理结构上分为本地负载均衡(Local Load Balance)和全局负载均衡(Global Load Balance,也叫地域负载均衡),本地负载均衡是指对本地的服务器群做负载均衡,全局负载均衡是指对分别放置在不同的地理位置、有不同网络结构的服务器群间作负载均衡。

–          Apple HTTP Live Streaming (HLS)

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

–          可认证性(authentication)

基于NAT的负载均衡技术

优化技术

  链路聚合技术,将多个线路的传输容量融合成一个单一的逻辑连接。当原有的线路满足不了需求,而单一线路的升级又太昂贵或难以实现时,就要采用多线路的解决方案了。目前有5种链路聚合技术可以将多条线路“捆绑”起来。

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

  ◆基于客户端的负载均衡

对使用CDN服务的SP来说,CDN的作用在于尽量就近为用户提供服务,帮助SP解决长距离IP传输和跨域传输带来的种 种业务质量问题(通过空间换取时间)。因此,为用户提供服务的Cache设备一定部署在离用户比较近的地方。另一方面,CDN的建设者从成本角度考虑,又 不能把所有内容都存放在这些离用户最近的节点中,这会消耗大量存储成本,所以这些提供服务的Cache设备会根据需要从源站服务器或者其他Cache获取 内容。这样就形成了CDN网络分层部署的概念。

由于基于服务器软件的负载均衡需要改动软件,因此常常是得不偿失,负载均衡最好是在服务器软件之外来完成,这样才能利用现有服务器软件的种种优势。最早的负载均衡技术是通过DNS服务中的随机名字解析来实现的,在DNS服务器中,可以为多个不同的地址配置同一个名字,而最终查询这个名字的客户机将在解析这个名字时得到其中的一个地址。因此,对于同一个名字,不同的客户机会得到不同的地址,他们也就访问不同地址上的Web服务器,从而达到负载均衡的目的。

随着Web2.0的兴起,产生了动态网页、个性化内容、电子交易数据等内容的加速,这些就涉及了动态内容加速技术。

www      IN       CNAME         www2

传输层(TCP)

  当前,无论在企业网、园区网还是在广域网如Internet上,业务量的发展都超出了过去最乐观的估计,上网热潮风起云涌,新的应 用层出不穷,即使按照当时最优配置建设的网络,也很快会感到吃不消。尤其是各个网络的核心部分,其数据流量和计算强度之大,使得单一设备根本无法承担,而如何在完成同样功能的多个网络设备之间实现合理的业务量分配,使之不致于出现一台设备过忙、而 别的设备却未充分发挥处理能力的情况,就成了一个问题,负载均衡机制也因此应运而生。

DNS服务器软件:BIND

网络的各个核心部分随着业务量的提高、访问量和数据流量的快速增长,其处理能力和计算强度也相应增大,使得单一设备根本无法承担。在此情况下,如果扔掉现有设备去做大量的硬件升级,这样将造成现有资源的浪费,而且如果再面临下一次业务量的提升,这又将导致再一次硬件升级的高额成本投入,甚至性能再卓越的设备也不能满足当前业务量的需求。于是,负载均衡机制应运而生。

SSL应用加速:由于需要大量的加密解密运算,SSL应用对服务器端的资源消耗是非常巨大的。CDN提供SSL应用加速后,由CDN的专用SSL加速硬件来完成加密解密运算工作

上面使用网络地址转换来实现负载分担,毫无疑问所有的网络连接都必须通过中心负载均衡器,那么如果负载特别大,以至于后台的服务器数量不再在是几台、十几台,而是上百台甚至更多,即便是使用性能优秀的硬件交换机也回遇到瓶颈。此时问题将转变为,如何将那么多台服务器分布到各个互联网的多个位置,分散网络负担。当然这可以通过综合使用DNS和NAT两种方法来实现,然而更好的方式是使用一种半中心的负载均衡方式。


域名服务器(Domain Name Server)中的数据文件将主机名字映射到其IP地址。当你在浏览器中键入一个URL时(例如:www.loadbalancedsite.com),浏览器则将请求发送到DNS,要求其返回相应站点的IP地址,这被称为DNS查询。当浏览器获得该站点的IP地址后,便通过该IP地址连接到所要访问的站点,将页面展现在用户面前。

RTMP协议架构在TCP层之上,但RTMP消息并不是直接封装在TCP中,而是通过一个被称为消息块的封装单元进行传输。消息在网络上发送之前往往需要分割成多个较小的部分,这样较小的部分就是消息块,属于不同消息流的消息块可以在网络上交叉发送。

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

IP路由在多个POP点之间实现的负载均衡是一种概率上的均衡,而不是真正的均衡(没做智能调度)。

总之,负载均衡是一种策略,它能让多台服务器或多条链路共同承担一些繁重的计算或I/O任务,从而以较低成本消除网络瓶颈,提高网络的灵活性和可靠性。 

通过压缩、重复数据删除和字典等技术,可节省绝大多数传输数据量,节约带宽,提高服务器性能

  www2 IN A 192.1.1.2

Web缓存代理软件:Squid

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

 

本文所要介绍的负载均衡技术主要是指在均衡服务器群中所有服务器和应用程序之间流量负载的应用,目前负载均衡技术大多数是用于提高诸如在Web服务器、FTP服务器和其它关键任务服务器上的Internet服务器程序的可用性和可伸缩性。

–          统一资源标志符URI实现全球信息的精确定位

为了支持与日俱增的高带宽应用,越来越多的PC机使用更加快速的链路连入网络。而网络中的业务量分布是不平衡的,核心高、边缘低,关键部门高、一般部门低。伴随计算机处理能力的大幅度提高,人们对多工作组局域网的处理能力有了更高的要求。当企业内部对高带宽应用需求不断增大时(例如Web访问、文档传输及内部网连接),局域网核心部位的数据接口将产生瓶颈问题,瓶颈延长了客户应用请求的响应时间。并且局域网具有分散特性,网络本身并没有针对服务器的保护措施,一个无意的动作(像一脚踢掉网线的插头)就会让服务器与网络断开。

高速TCP传输技术

  首先要确定域名www.test.com在DNS上的记录对应apache服务器接口上具有internet合法注册的IP地址,这样才能使internet上对www.test.com的所有连接请求发送给本台apache服务器。

从功能上看,典型的CDN系统由分发服务系统,负载均衡系统和运营管理系统组成

负载均衡器

视频转码(video transcoding)

一般而言,硬件负载均衡在功能、性能上优于软件方式,不过成本昂贵。

–          基于IP的黑白名单

  使用基于操作系统的第四层交换技术因此孕育而生。通过开放源码的Linux,将第四层交换的核心功能做在系统的核心层,能够在 相对高效稳定的核心空间进行IP包的数据处理工作,其效率不比采用专有OS的硬件交换机差多少。同时又可以在核心层或者用户层增 加基于交换核心的负载均衡策略支持,因此在灵活性上远远高于硬件系统,而且造价方面有更好的优势。

–          3GPP adaptive HTTP Streaming

当前,无论在企业网、园区网还是在广域网如Internet上,业务量的发展都超出了过去最乐观的估计,上网热潮风起云涌,新的应用层出不穷,即使按照当时最优配置建设的网络,也很快会感到吃不消。尤其是各个网络的核心部分,其数据流量和计算强度之大,使得单一设备根本无法承担,而如何在完成同样功能的多个网络设备之间实现合理的业务量分配,使之不致于出现一台设备过忙、而别的设备却未充分发挥处理能力的情况,就成了一个问题,负载均衡机制也因此应运而生。

验证的目的就是检验缓存内容是否可用。当中间缓存存在一个过期的缓存内容,并且对应的访问请求到达时,缓存应该首先向源服务器或者其他保存有未过期的缓存服务器请求验证来确定本地的缓存内容是否可用。(缓存内容过期,但源服务器没有更新内容,即缓存内容仍可用)

ip access-list 1 permit 200.200.1.2

–          – 利用边缘服务器代替源钻Web系统的后台数据访问层中的数据库系统,及时响应业务逻辑层提出的数据查询需求。

②       除了能避免服务器、数据中心等的单点失效,也能避免由于ISP专线故障引起的单点失效。

流媒体CDN与Web CDN的对比(业务差异)

 4.软件方式,通过一台负载均衡服务器进行,上面安装软件。这种方式比较灵活,成本相对也较低。另外一个很大的优点就是可以根据应用的情况和服务器的情况采取一些策略。

SSL加速技术

使用软件方式来实现基于网络地址转换的负载均衡则要实际的多,除了一些厂商提供的解决方法之外,更有效的方法是使用免费的自由软件来完成这项任务。其中包括Linux Virtual Server Project中的NAT实现方式,或者本文作者在FreeBSD下对natd的修订版本。一般来讲,使用这种软件方式来实现地址转换,中心负载均衡器存在带宽限制,在100MB的快速以太网条件下,能得到最快达80MB的带宽,然而在实际应用中,可能只有40MB-60MB的可用带宽。

  • 缺点:Node2在Node1正常工作时是处于“闲置”状态,造成服务器资源的浪费。
  • 优点:当Node1发生故障时,Node2能完全接管应用,并且能保证应用运行时的对处理能力要求。

  第七层负载均衡优点表现在如下几个方面:

分发能力取决于IDC能力和IDC策略性分布

  ◆提高服务器响应速度

基于IP路由的GSLB

早期的服务器群集通常以光纤镜像卡进行主从方式备份。令服务运营商头疼的是关键性服务器或应用较多、数据流量较大的服务器一般档次不会太低,而服务运营商花了两台服务器的钱却常常只得到一台服务器的性能。通过地址转换将多台服务器网卡的不同IP地址翻译成一个VIP(Virtual IP)地址,使得每台服务器均时时处于工作状态。原来需要用小型机来完成的工作改由多台PC服务器完成,这种弹性解决方案对投资保护的作用是相当明显的——既避免了小型机刚性升级所带来的巨大设备投资,又避免了人员培训的重复投资。同时,服务运营商可以依据业务的需要随时调整服务器的数量。

 

通过Web服务器负载均衡来提高用户的访问性能,由于互联网上的绝大部分流量都要通过骨干网络进行传输。Ping侦测:通过ping的方式检测服务器及网络系统状况,此种方式简单快速,但只能大致检测出网络及服务器上的操作系统是否正常,对服务器上的应用服务检测就无能为力了。

    Web集群是由多个同时运行同一个web应用的服务器组成,在外界看来就像一个服务器一样,这多台服务器共同来为客户提供更高性能的服务。集群更标准的定 义是:一组相互独立的服务器在网络中表现为单一的系统,并以单一系统的模式加以管理,此单一系统为客户工作站提供高可靠性的服务。
    而负载均衡的任务就是负责多个服务器之 间(集群内)实现合理的任务分配,使这些服务器(集群)不会出现因某一台超负荷、而其他的服务器却没有充分发挥处理能力的情况。负载均衡有两个方面的含 义:首先,把大量的并发访问或数据流量分担到多台节点上分别处理,减少用户等待响应的时间;其次,单个高负载的运算分担到多台节点上做并行处理,每个节点 设备处理结束后,将结果汇总,再返回给用户,使得信息系统处理能力可以得到大幅度提高
    因此可以看出,集群和负载均衡有本质上的不同,它们是解决两方面问题的不同方案,不要混淆。
    集群技术可以分为三大类:
    1、高性能性集群(HPC Cluster)
    2、高可用性集群(HA Cluster)
    3、高可扩展性集群
    
 一、高性能性集群(HPC Cluster)
     指以提高科学计算能力为目标的集群技术。该集群技术主要用于科学计算,这里不打算介绍,如果感兴趣可以参考相关的资料。
 二、高可用性集群(HA Cluster)
     指为了使群集的整体服务尽可能可用,减少服务宕机时间为目的的集群技术。如果高可用性集群中的某节点发生了故障,那么这段时间内将由其他节点代替它的工作。当然对于其他节点来讲,负载相应的就增加了。
    为了提高整个系统的可用性,除了提高计算机各个部件的可靠性以外,一般情况下都会采用该集群的方案。
    对于该集群方案,一般会有两种工作方式:
     ①主-主(Active-Active)工作方式
       这是最常用的集群模型,它提供了高可用性,并且在只有一个节点时也能提供可以接受的性能,该模型允许最大程度的利用硬件资源。每个节点都通过网络对客户机 提供资源,每个节点的容量被定义好,使得性能达到最优,并且每个节点都可以在故障转移时临时接管另一个节点的工作。所有的服务在故障转移后仍保持可用,但 是性能通常都会下降。
     澳门新濠3559 3

负载均衡配置实例

–          缓存技术(caching):缓存代理缓存被访问过的内容,后续的相同内容访问直接通过缓存代理获得服务

◆带均衡策略的服务器群集

纯粹基于DNS方式的GSLB只能完成就近性判断。为实现智能调度,大多数解决方案需要在GSLB设备附近以旁路的方式 部署一台辅助设备(为方便描述,我们可称之为GRM——全局资源管理设备),用以实现和各POP节点的本地资源管理设备进行通信,完成CDN对各POP节 点的状态检查,并根据POP节点的状态和流量情况,重新制订用户调度策略,将策略实时发送到GSLB中去执行

   DNS Round Robin的最大的优点就是易于实现和代价低廉:

负载均衡就是智能调度

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

RTSP/RTP和HTTP streaming是目前应用最广泛的流化协议,目前电信运营商在IPTV(特殊通道的基于IP的流媒体播放)的流化上主要以RTSP/RTP技术为主,而互联网视频网站(点播/直播)则多倾向于使用HTTP streaming的流化技术。

  DNS负载均衡技术是在DNS服务器中为同一个主机名配置多个IP地址,在应答DNS查询时,DNS服务器对每个查询将以DNS文件中主机记录的IP地址按顺序返回不同的解析结果,将客户端的访问引导到不同的机器上去,使得不同的客户端访问不同的服务器,从而达到负载均衡的目的。

 

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

关于内容的缓存问题(如何智能调度最有效)和配置

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

HTTP1.1介绍了cache-control显示指令来让网站发布者可以更全面地控制他们的内容,并对过期时间进行限制(控制是否缓存,怎么缓存)

Ø           Round robin (RRS): 将工作平均的分配到服务器 (用于实际服务主机性能一致)

客户端浏览器也可以缓存DNS响应信息。

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

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

  在图中大家可能注意到,负载均衡设备在网络拓朴上,可以处于外部网和内部网络间网关的位置,也可以和内部服务器群处于并行的位置,甚至可以处于内部网络或internet上的任意位置,特别是在采用群集负载均衡时,根本就没有单独的负载均衡设备。

Internet类资源记录分为

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

–          A记录(address):域名->多个IP的映射。对同一个域名,可以有多条A记录

实现这个反向代理能力并不能算是一个特别复杂的任务,但是在负载均衡中要求特别高的效率,这样实现起来就不是十分简单的了。每针对一次代理,代理服务器就必须打开两个连接,一个为对外的连接,一个为对内的连接,因此对于连接请求数量非常大的时候,代理服务器的负载也就非常之大了,在最后反向代理服务器会成为服务的瓶颈。例如,使用Apache的mod_rproxy模块来实现负载均衡功能时,提供的并发连接数量受Apache本身的并发连接数量的限制。一般来讲,可以使用它来对连接数量不是特别大,但每次连接都需要消耗大量处理资源的站点进行负载均衡,例如搜寻。

–          分发组件主要负责接收客户端发送的请求,然后将封装的流媒体分片文件连同相关的索引文件一起发送给客户端。对于没有采用CDN服务的源服务器,标准的 Web服务器就是一个分发组件,而对于大型的视频网站或者类似的大规模应用平台,分发组件还应包括支持RTMP协议的CDN;

②       可根据流经的数据类型(如判断数据包是图像文件、压缩文件或多媒体文件格式等),把数据流量引向相应内容的服务器来处理,增加系统性能。

(PS:暂时来说,网宿还没有实现真正意义的动态加速,虽然现在已经实现一部分,如搜索结果动态缓存,重用的动态页面智能缓存。其他更多的是通过智能管道来加快用户与源钻的访问效率)

同步IMUX系统工作在T1/E1的比特层,利用多个同步的DS1信道传输数据,来实现负载均衡。

 

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

–          服务器的“健康状况”

网络地址转换为在内部地址和外部地址之间进行转换,以便具备内部地址的计算机能访问外部网络,而当外部网络中的计算机访问地址转换网关拥有的某一外部地址时,地址转换网关能将其转发到一个映射的内部地址上。因此如果地址转换网关能将每个连接均匀转换为不同的内部服务器地址,此后外部网络中的计算机就各自与自己转换得到的地址上服务器进行通信,从而达到负载分担的目的。

 三、高可扩展性集群
     这里指带有负载均衡策略(算法)的服务器群集技术。带负载均衡集群为企业需求提供了更实用的方案,它使负载可以在计算机集群中尽可能平均地分摊处理。而需 要均衡的可能是应用程序处理负载或是网络流量负载。该方案非常适合于运行同一组应用程序的节点。每个节点都可以处理一部分负载,并且可以在节点之间动态分 配负载, 以实现平衡。对于网络流量也是如此。通常,单个节点对于太大的网络流量无法迅速处理,这就需要将流量发送给在其它节点。还可以根据每个节点上不同的可用资 源或网络的特殊环境来进行优化。
  负载均衡集群在多节点之间按照一定的策略(算法)分发网络或计算处理负载。负载均衡建立在现有网络结构之上,它提供了一种廉价有效的方法来扩展服务器带宽,增加吞吐量,提高数据处理能力,同时又可以避免单点故障。

一旦某个服务器出现故障,即使及时修改了DNS设置,还是要等待足够的时间(刷新时间)才能发挥作用,在此期间,保存了故障服务器地址的客户计算机将不能正常访问服务器。

CDN骨干点和CDN POP点在功能上不同,中心和区域节点一般称为骨干点,主要作为内容分发和边缘未命中时的服务点;边缘节点又被称为POP(point of presence)节点,CDN POP点主要作为直接向用户提供服务的节点

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

“第一公里”是指万维网流量向用户传送的第一个出口,是网站服务器接入互联网的链路所能提供的带宽。这个带宽决定了一个 网站能为用户提供的访问速度和并发访问量。如果业务繁忙,用户的访问数越多,拥塞越严重,网站会在最需要向用户提供服务时失去用户。(还有“中间一公里” 和“最后一公里”分别代表互联网传输传输和万维网流量向用户传送的最后一段接入链路)

随机均衡(Random):把来自网络的请求随机分配给内部中的多个服务器。

提升设备性能

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

负载均衡(智能调度)决定最佳路由、响应时间、可用性、服务质量

  proxypass /life

       这是目前运用最为广泛的双节点双应用的Active/Active模式。

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

–          镜像技术(mirroring):镜像服务器安装有一个可以进行自动远程备份的软件,每隔一定时间,各个镜像服务器就会到网站的源服务器上去获取最新的内容

  一般来讲,可以用它来对连接数量不是特别大,但每次连接都需要消耗大量处理资源的站点进行负载均衡,如search。

负载均衡设备在进行用户访问调度时,会综合考虑很多静态的、动态的参数,包括IP就近性、连接保持、内容命中、响应速 度、连接数等。但没有哪个CDN会考虑所有参数,而是会根据业务特点进行一些取舍,否则均衡系统就太复杂了。而流媒体CDN在进行用户访问调度时,会更多 考虑内容命中这一参数

Ø           Least-connections (LCS): 向较少连接的服务器分配较多的工作(IPVS 表存储了所有的活动的连接。用于实际服务主机性能一致。)

 

由于这种方式比较复杂,因此实现起来比较困难,它的起点也很高,当前情况下网站并不需要这么大的处理能力。

–          负载均衡系统:主要功能是负责对所有发起服务请求的用户进行访问调度,确定提供给用户的最终实际访问地址。两级调度体系分为全局负载均衡(GSLB)和本 地负载均衡(SLB)。GSLB主要根据用户就近性原则,通过对每个服务节点进行“最优”判断,确定向用户提供服务的cache的物理位置。SLB主要负 责节点内部的设备负载均衡

  如今,服务器必须具备提供大量并发访问服务的能力,其处理能力和I/O能力已经成为提供服务的瓶颈。如果客户的增多导致通信 量超出了服务器能承受的范围,那么其结果必然是——宕机。显然,单台服务器有限的性能不可能解决这个问题,一台普通服务器的 处理能力只能达到每秒几万个到几十万个请求,无法在一秒钟内处理上百万个甚至更多的请求。但若能将10台这样的服务器组成一个 系统,并通过软件技术将所有请求平均分配给所有服务器,那么这个系统就完全拥有每秒钟处理几百万个甚至更多请求的能力。这就是利用服务器群集实现负载均衡的最初基本设计思想。

–          Web系统业务逻辑层的复制。CDN被用于改进动态生成内容的交付性能。即将应用程序和业务组件直接在CDN的边缘服务器中计算,从而直接在靠近用户的地方生成动态Web内容

  负载均衡策略的优劣及其实现的难易程度有两个关键因素:一、负载均衡算法,二、对网络系统状况的检测方式和能力。

HTTP gzip压缩:大多数情况需要压缩的文件时网页中出现最频繁的HTML、CSS、javascript、XML等文件,这类本身是没有经过压缩的文本文件,可以取得较好的压缩效果

 上述的集群技术一般都用于Web服务器、应用服务器等,而不是用于数据库服务器,即不是用于有共享的存储的服务。数据库服务器将涉及到加锁、回滚等一系列问题,要复杂的多。一般数据库服务器只是使用双机,其中一台工作,另一台备份。数据库的双机并行只用于大型数据库中。可参见:

物理层(硬件)

◆高层协议内容交换技术

–          会话保持

Ø           Weighted round robin (WRRS): 向较大容量的服务器分配较多的工作。可以根据负载信息动态的向上或向下调整。 (用于实际服务主机性能不一致时)

从互联网的架构来看,不同网络之间的互联互通带宽,对任何一个运营商网络的流量来说,占比都比较小,收敛比是非常高的,因此这里通常都是互联网传输中的拥堵点(运营商互联互通的问题)

不支持高可靠性。设想一个具有N个节点的集群。如果其中的一个节点毁坏,那么所有的访问该节点的请求将不会有所回应,这是任何人都不愿意看到的。比较先进的路由器可以通过每隔一定的时间间隔,对节点检查,如果有毁坏的节点,则将之从列表中去除的方法,解决这个问题。但是,由于在Internet上,ISPs将众多的DNS存放在缓存中,以节省访问时间,因此,DNS的更新就会变得非常缓慢,以至于有的用户可能会访问一些已经不存在的站点,或者一些新的站点得不到访问。所以,尽管DNS轮流排程在一定程度上解决了负载均衡问题,但这种状况的改变并不是十分乐观和有效的。

流媒体CDN与Web CDN的设计差异(设计差异)

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

表现层是Web系统与外部系统的交互界面,这一层通常由HTTP服务器组成,负责接收用户端的HTTP内容访问请求,从文件系统中读取静态文件

利用上述的DNS Round Robin技术,对于某一个站点的所有请求将被平均的分配到及群中的机器上。因此,在这种技术中,集群中的所有的节点对于网络来说都是可见的。

 

灵活性:均衡解决方案应能灵活地提供不同的应用需求,满足应用需求的不断变化。在不同的服务器群有不同的应用需求时,应有多样的均衡策略提供更广泛的选择。

HLS流化技术主要分三个部分:服务器组件、分发组件和客户端软件

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

–          会话能力阈值

  下面以实例介绍一下Cisco路由器NAT负载均衡的配置:

 

使用负载均衡技术建设高负载的网络站点

动态内容的提供不仅仅是HTML页面的设计及编辑,它还需要有后台数据库、应用逻辑程序的支持,以实现与用户的动态交互。

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

 

易管理性:不管是通过软件还是硬件方式的均衡解决方案,我们都希望它有灵活、直观和安全的管理方式,这样便于安装、配置、维护和监控,提高工作效率,避免差错。在硬件负载均衡设备上,目前主要有三种管理方式可供选择:一、命令行接口(CLI:Command Line Interface),可通过超级终端连接负载均衡设备串行接口来管理,也能telnet远程登录管理,在初始化配置时,往往要用到前者;二、图形用户接口(GUI:Graphical User Interfaces),有基于普通web页的管理,也有通过Java Applet 进行安全管理,一般都需要管理端安装有某个版本的浏览器;三、SNMP(Simple Network Management Protocol,简单网络管理协议)支持,通过第三方网络管理软件对符合SNMP标准的设备进行管理。

–          Access

HTTPS请求的负载均衡

如果要通过META标签来控制页面不缓存,一般情况下会在Web页面的<head>区域中增加”pragma:no-cache”

简单. 不需要网络专家来对之进行设定,或在出现问题时对之进行维护。

因为DNS服务采用以UDP为基础的、默认无连接的访问方式,给分布式攻击(DDoS)带来了更大的便利。(有DNSSEC可以提供某程度的DDoS攻擊保護)

负载均衡的思路下多台服务器为对称方式,每台服务器都具备等价的地位,都可以单独对外提供服务而无须其他服务器的辅助。然后通过某种负载分担技术,将外部发送来的请求均匀分配到对称结构中的某一台服务器上,而接收到请求的服务器都独立回应客户机的请求。由于建立内容完全一致的Web服务器并不复杂,可以使用服务器同步更新或者共享存储空间等方法来完成,因此负载均衡技术就成为建立一个高负载Web站点的关键性技术。

 

  反向代理负载均衡能以软件方式来实现,如apache mod_proxy、netscape proxy等,也可以在高速缓存器、负载均衡器等硬件设备上实现。反向代理负载均衡可以将优化的负载均衡策略和代理服务器的高速缓存技术结合在一起,提升静态网页的访问速度,提供有益的性能;由于网络外部用户不能直接访问真实的服务器,具备额外的安全性(同理,NAT负载均衡技术也有此优点)。

具体操作为:先将GSLB的主机名定义为所查询域名的权威DNS服务器的别名,然后将GSLB主机名添加多条A记录,分别对应多个服务器的IP地址。这样,本地DNS服务器会向客户端返回多个IP地址作为域名的查询结果,并且这些IP地址的排列顺序是轮换的。客户端一般会选择首个IP地址进行访问

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

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

  普通代理方式是代理内部网络用户访问internet上服务器的连接请求,客户端必须指定代理服务器,并将本来要直接发送到internet上服务器的连接请求发送给代理服务器处理。

数据缓存技术

  还有一种链路聚合发生在服务器或者网桥的接口卡上,通过同一块接口卡的多个端口映射到相同的IP地址,均衡本地的以太网流 量以实现在服务器上经过的流量成倍增加。目前市面上的产品有intel和dlink的多端口网卡,,一般在一块网卡上绑定4个100M以太端 口,大大提高了服务器的网络吞吐量。不过这项技术由于需要操作系统驱动层的支持,只能在win2000和linux下实现。

优化原理

使用代理服务器可以将请求转发给内部的Web服务器,使用这种加速模式显然可以提升静态网页的访问速度。因此也可以考虑使用这种技术,让代理服务器将请求均匀转发给多台内部Web服务器之一上,从而达到负载均衡的目的。这种代理方式与普通的代理方式有所不同,标准代理方式是客户使用代理访问多个外部Web服务器,而这种代理方式是多个客户使用它访问内部Web服务器,因此也被称为反向代理模式。

HLS音视频流或流媒体文件在经过编码、封装和分片后,变成多个以.ts结尾的分片文件。流分割器产生的索引文件是以.M3U8为后缀的,用户可以直接通过Web访问来获取

多重链路PPP,又称MP或MLP,是应用于使用PPP封装数据链路的路由器负载平衡技术。MP可以将大的PPP数据包分解成小的数据段,再将其分发给平行的多个线路,还可以根据当前的链路利用率来动态地分配拨号线路。这样做尽管速度很慢,因为数据包分段和附加的缓冲都增加时延,但可以在低速的线路上运行得很好。

RTMP是adobe的传输协议。RTMP的基本通信单元:消息块(chunk)和消息(message)

  NAT负载均衡可以通过软硬件方式来实现。通过软件方式来实现NAT负载均衡的设备往往受到带宽及系统本身处理能力的限制,由于NAT比较接近网络的低层,因此就可以将它集成在硬件设备中,通常这样的硬件设备是第四层交换机和专用负载均衡器,第四层交换机的一项重要功能就是NAT负载均衡。

–          TCP协议慢启动(三握手)和拥塞控制

DNS 轮流排程的缺点

–          利用HTTP header的referer字段

轮循均衡(Round Robin):每一次来自网络的请求轮流分配给内部中的服务器,从1至N然后重新开始。此种均衡算法适合于服务器组中的所有服务器都有相同的软硬件配置并且平均服务请求相对均衡的情况。

Web系统由表现层、业务逻辑层、数据访问层 用户数据层

  负载均衡的层次

这种模式的最大优点是不会有服务器的“闲置”,两台服务器在正常情况下都在工作。但如果有故障发生导致切换,应用将放在同一台服务器上运行,由于服务器的处理能力有可能不能同时满足数据库和应用程序的峰值要求,这将会出现处理能力不够的情况,降低业务响应水平。

  用路由器来实现多线路是一种流行的链路聚合技术,路由器可以根据已知的目的地址的缓冲(cache)大小,将分组分配给各个平 行的链路,也可以采用循环分配的方法来向线路分发分组。

–          应用层协议HTTP实现分布式的信息共享

  其缺点主要表现在以下两个方面:

负载均衡软件:Nginx

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

从网络分层上看,Web CDN通常是两级架构(也有三级架构以减少回源),即中心-边缘。而流媒体CDN通常有三级以上架构,即中心-区域-边缘。产生这种区别的原因在于流媒体 回源成本比较高,源站服务器响应一次流媒体内容回源请求,要比Web内容回源消耗更多资源。尤其对于流媒体直播业务来说,只要直播节目没结束,服务器就需 要长时间持续吐流,如果没有第二层节点作为中继,那么中心节点的压力将是不可想象的。

◆提高服务器响应速度

–          SSL加密是一种处理器密集型加密算法,如果用服务器软件处理会消耗大量CPU资源,一般会在提供业务能力的服务器外围部署专门的SSL加速设备,采用硬解密方式实现

硬件负载均衡解决方案是直接在服务器和外部网络间安装负载均衡设备,这种设备我们通常称之为负载均衡器,由于专门的设备完成专门的任务,独立于操作系统,整体性能得到大量提高,加上多样化的负载均衡策略,智能化的流量管理,可达到最佳的负载均衡需求。

–          组播、广播要求(目前IP网络无法实现端到端的组播业务)

  ◆网络接入协议交换

是指视频内容进入CDN以后,进入内容分发流程之前,CDN系统对内容进行的一系列处理过程。这个预处理过程的目的有几个:

  同步IMUX系统工作在T1/E1的比特层,利用多个同步的DS1信道传输数据,来实现负载均衡。

–          有限制地快速重传

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

通过在广域网两端部署专用设备,在不影响基本传输情况下,通过各种手段对TCP窗口、响应、启动等机制进行改进,从而提高协议机制的效率

同样,这种方式的硬件实现方式也非常昂贵,但是会根据厂商的不同,具备不同的特殊功能,例如对SSL的支持等。

–          高QoS要求

软件负载均衡解决方案是指在一台或多台服务器相应的操作系统上安装一个或多个附加软件来实现负载均衡,如DNS Load Balance,CheckPoint Firewall-1 ConnectControl等,它的优点是基于特定环境,配置简单,使用灵活,成本低廉,可以满足一般的负载均衡需求。 

从技术层面看,Web架构的精华有三处:

为了使本DNS服务器和其他DNS服务器及时交互,保证DNS数据及时更新,使地址能随机分配,一般都要将DNS的刷新时间设置的较小,但太小将会使DNS流量大增造成额外的网络问题。

  两节点的Active/Standby模式是HA中最简单的一种,两台服务器通过双心跳线路组成一个集群。应用Application联合各个可选的系统组件如:外置共享的磁盘阵列、文件系统和浮动IP地址等组成业务运行环境。

  在有些大型网络,由于多个服务器群内硬件设备、各自的规模、提供的服务等的差异,我们可以考虑给每个服务器群采用最合适的负载均衡方式,然后又在这多个服务器群间再一次负载均衡或群集起来以一个整体向外界提供服务(即把这多个服务器群当做一个新的服务器群),从而达到最佳的性能。我们将这种方式称之为混合型负载均衡。此种方式有时也用于单台均衡设备的性能不能满足大量连接请求的情况下。

–          空间分辨率转换

  链路聚合技术(第二层负载均衡)将多条物理链路当作一条单一的聚合逻辑链路使用,网络数据流量由聚合逻辑链路中所有物理链路共同承担,由此在逻辑上增大了链路的容量,使其能满足带宽增加的需求。

支持协议如静动态加速(图片加速、https带证书加速)、下载加速、流媒体加速、企业应用加速、手机应用加速

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

=>(传输控制)RTMP和HTTP streaming则是将流同步、播放控制、质量控制集成起来的企业自有流媒体传送协议

www.loadbalancedsite.com 203.34.23.4

现在已经投入商用的CDN系统,基本都是同时提供Web CDN能力和流媒体CDN能力的,而且这两种能力的实现在系统内部几乎都是互相隔离的,从调度系统到节点设备都没有交叉互用

  本地负载均衡能有效地解决数据流量过大、网络负荷过重的问题,并且不需花费昂贵开支购置性能卓越的服务器,充分利用现有设备,避免服务器单点故障造成数据流量的损失。其有灵活多样的均衡策略把数据流量合理地分配给服务器群内的服务器共同负担。即使是再给现有服务器扩充升级,也只是简单地增加一个新的服务器到服务群中,而不需改变现有网络结构、停止现有的服务。

广域网应用加速:

  通常,解决瓶颈问题采用的对策是提高服务器链路的容量,使其超出目前的需求。例如可以由快速以太网升级到千兆以太网。对于大型企业来说,采用升级技术是一种长远的、有前景的解决方案。然而对于许多企业,当需求还没有大到非得花费大量的金钱和时 间进行升级时,使用升级技术就显得大材小用了。在这种情况下,链路聚合技术为消除传输链路上的瓶颈与不安全因素提供了成本低廉的解决方案。

缓存内容有DNS地址缓存、客户请求内容缓存、动态内容缓存

  针对当前及将来的应用需求,分析网络瓶颈的不同所在,我们就需要确立是采用哪一类的负载均衡技术,采用什么样的均衡策略,在可用性、兼容性、安全性等等方面要满足多大的需求,如此等等。

–          超文本技术HTML实现信息与信息的连接;

     硬件SSL解码器,则是在请求到达负载均衡器之前,先经由它进行解密处理。这种方式比代理服务器的处理速度要快捷一些。但代价也高,而且实现比较复杂。

–          Output

Ø           Weighted least-connections (WLC): 考虑它们的容量向较少连接的服务器分配较多的工作。容量通过用户指定的砝码来说明,可以根据装载信息动态的向上或向下调整。(用于实际服务主机性能不一致时)

一本好的入门书是带你进入陌生领域的明灯,《CDN技术详解》绝对是带你进入CDN行业的那盏最亮的明灯。因此,虽然只是纯粹的重点抄录,我也要把《CDN技术详解》的精华放上网。公诸同好。

域名服务器(DNS)通常包含一个单一的IP地址与该IP地址所映射的站点的名称的列表。在我们上面所假象的例子中,www.loadbalancedsite.com 这个站点的映射IP地址为203.24.23.3。

–          为全网内容管理提供依据,比如对内容进行全网唯一标识,对内容基础信息进行记录等

澳门新濠3559,◆基于域名系统的负载均衡

MPEG-2 TS是指TS格式封装的、MPEG-2编码格式的媒体流。大多数IPTV系统使用这种内容源。H.264这一层完成原始文件的压缩编码,TS这一层负责音 视频的复用以及同步,RTP这一层负责流的顺序传输,UDP这一层负责数据包的交付,IP层负责传输路由选择

大型的网络一般都是由大量专用技术设备组成的,如包括防火墙、路由器、第3、4层交换机、负载均衡设备、缓冲服务器和Web服务器等。如何将这些技术设备有机地组合在一起,是一个直接影响到网络性能的关键性问题。现在许多交换机提供第四层交换功能,对外提供一个一致的IP地址,并映射为多个内部IP地址,对每次TCP和UDP连接请求,根据其端口号,按照即定的策略动态选择一个内部地址,将数据包转发到该地址上,达到负载均衡的目的。很多硬件厂商将这种技术集成在他们的交换机中,作为他们第四层交换的一种功能来实现,一般采用随机选择、根据服务器的连接数量或者响应时间进行选择的负载均衡策略来分配负载。由于地址转换相对来讲比较接近网络的低层,因此就有可能将它集成在硬件设备中,通常这样的硬件设备是局域网交换机。

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

  系统高可用性与双机备份常见问题与方案选择

–          CDN:是缓存技术的基础上发展起来的,是缓存的分布式集群实现

  随着带宽增加,数据流量不断增大,网络核心部分的数据接口将面临瓶颈问题,原有的单一线路将很难满足需求,而且线路的升级又过于昂贵甚至难以实现,这时就可以考虑采用链路聚合(Trunking)技术。

其次是骨干网堵塞问题,由于互联网上的绝大部分流量都要通过骨干网络进行传输,这就要求骨干网络的承载能力必须与互联网 的应用同步发展,但实际上两者并不是同步的,当骨干网络的升级和扩容滞后于互联网之上的应用的发展时,就会阶段性地使得大型骨干网的承载能力成为影响互联 网性能的瓶颈(区域互联互通问题,骨干网带宽瓶颈)

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

应用代理(缓存)

 3.硬件方式,通过交换机的功能或专门的负载均衡设备可以实现。对于流量的分配可以有多种方式,但基本上都是应用无关的,与服务器的实现负载关系也不大。另外,设备的价格较贵(优点是能支持很多台服务器)。这种方式往往适合大流量、简单应用。

负载均衡作为代理DNS服务器:负载均衡器被注册为一个域名空间的权威DNS服务器,而真正的权威域名服务器则部署在负 载均衡器后面。所有的DNS请求都会先到达负载均衡器,由负载均衡器转发到真正的权威DNS服务器,然后修改权威DNS服务器返回的响应信息。真正的权威 DNS服务器正常响应浏览器的DNS请求,返回域名解析结果列表,这个响应会先发送到负载均衡器,而负载均衡器会根据自己的策略选择一个性能最好的服务器 IP并修改需要实现GSLB的域名的DNS查询响应,对其他请求透明转发,这样就不会影响整个域名空间的解析性能。

  为了支持与日俱增的高带宽应用,越来越多的PC机使用更加快速的链路连入网络。而网络中的业务量分布是不平衡的,核心高、 边缘低,关键部门高、一般部门低。伴随计算机处理能力的大幅度提高,人们对多工作组局域网的处理能力有了更高的要求。当企业内部对高带宽应用需求不断增大时(例如Web访问、文档传输及内部网连接),局域网核心部位的数据接口将产生瓶颈问题,瓶颈延长了客户应用请求的响应时间。并且局域网具有分散特性,网络本身并没有针对服务器的保护措施,一个无意的动作(像一脚踢掉网 线的插头)就会让服务器与网络断开。

–          为满足业务要求提供能力,比如对同一内容进行多种码率的转换以满足动态带宽自适应或三屏互动业务要求

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

缓存点有客户端浏览器缓存、本地DNS服务器缓存

ip nat inside

–          响应时间

通常,解决瓶颈问题采用的对策是提高服务器链路的容量,使其超出目前的需求。例如可以由快速以太网升级到千兆以太网。对于大型企业来说,采用升级技术是一种长远的、有前景的解决方案。然而对于许多企业,当需求还没有大到非得花费大量的金钱和时间进行升级时,使用升级技术就显得大材小用了。在这种情况下,链路聚合技术为消除传输链路上的瓶颈与不安全因素提供了成本低廉的解决方案。

流媒体CDN的Cache设备与Web Cache无论在软件实现还是硬件要求上差异都很大,我们很少看到这两种业务共用同一台设备

软件解决方案缺点也较多,因为每台服务器上安装额外的软件运行会消耗系统不定量的资源,越是功能强大的模块,消耗得越多,所以当连接请求特别大的时候,软件本身会成为服务器工作成败的一个关键;软件可扩展性并不是很好,受到操作系统的限制;由于操作系统本身的Bug,往往会引起安全问题。

有CDN前的网站服务技术

打开正向搜索区域的相应区域(如test.com),新建主机添加主机 (A) 资源记录,记录如下:

第四章 集群服务与负载均衡

代价低,易于建立。 为了支持轮流排程,系统管理员只需要在DNS服务器上作一些改动,而且在许多比较新的版本的DNS服务器上已经增加了这种功能。对于Web应用来说,不需要对代码作任何的修改;事实上,Web应用本身并不会意识到负载均衡配置,即使在它面前。

第七章 动态内容加速服务的实现

为了利用DNS均衡服务器的负载,对于同一个站点来讲,在DNS服务器中同时拥有几个不同的IP地址。这几个IP地址代表集群中不同的机器,并在逻辑上映射到同一个站点名。通过我们的例子可以更好的理解这一点,www.loadbalancedsite.com将通过下面的三个IP地址发布到一个集群中的三台机器上:

–          通过在服务器上安装一块SSL加速板卡,可有效分担服务器CPU处理SSL事务的压力

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

在基于DNS方式下无论采用何 种工作方式,都会有一些请求不会到达GSLB,这是DNS系统本身的缓存机制在起作用。当用户请求的域名在本地DNS或本机(客户端浏览器)得到了解析结 果,这些请求就不会达到GSLB。Cache更新时间越短,用户请求达到GSLB的几率越大。由于DNS的缓存机制屏蔽掉相当一部分用户请求,从而大大减 轻了GSLB处理压力,使得系统抗流量冲击能力显著提升,这也是很多商业CDN选择DNS机制做全局负载均衡的原因之一。但弊端在于,如果在DNS缓存刷 新间隔之内系统发生影响用户服务的变化,比如某个节点故障,某个链路拥塞等,用户依然会被调度到故障部位去

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

HTTP streaming

RTSP/RTP

基于TCP,更高可靠性,也可以直接利用TCP的流控机制来适应带宽的变化

基于UDP

可将播放过的内容保存在客户端

不能保存在客户端

使用80端口,能穿越防火墙

使用特殊端口

采用标准的HTTP协议来传输,只需要标准的HTTP服务器支撑

需要特殊的流媒体服务器

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

应用层

  服务器群内各服务器只有提供相同内容的服务才有负载均衡的意义,特别是在DNS负载均衡时。要不然,这样会造成大量连接请求的丢失或由于多次返回内容的不同给客户造成混乱。

(应用加速技术实际上是传统的网络负载均衡的升级和扩展,综合使用了负载均衡(智能调度)、TCP优化管理(TCP keep-alive connection,更激进的TCP窗口策略,基于HTTP1.1),链接管理(routing)、SSL VPN、压缩优化(代码压缩,图片压缩)、智能网络地址(NAT-公私网IP转换)、高级路由、智能端口镜像等技术。)

  反向代理负载均衡技术是把将来自internet上的连接请求以反向代理的方式动态地转发给内部网络上的多台服务器进行处理,从而达到负载均衡的目的。

网页压缩:HTTP1.1提出对网页压缩的支持。在服务器端可以先对网页数据进行压缩,然后将压缩后的文件提供给访问用户,最后在用户浏览器端解压显示(但要衡量加解压时间)

  proxypass /it

–          CNAME记录(canonical name):多个域名->服务器的映射

  还有一种路径外返回模式(Out of Path Return),当客户端连接请求发送给负载均衡设备的时候,中心负载均衡设备将请求引向某个服务器,服务器的回应请求不再返回给中心负载均衡设备,即绕过流量分配器,直接返回给客户端,因此中心负载均衡设备只负责接受并转发请求,其网络负担就减少了很多,并且给客户端提供了更快的响应时间。此种模式一般用于HTTP服务器群,在各服务器上要安装一块虚拟网络适配器,并将其IP地址设为服务器群的VIP,这样才能在服务器直接回应客户端请求时顺利的达成三次握手。

–          – Akamai边缘计算部署模型,包括用户(使用浏览器)、企业J2EE应用系统(运行业务逻辑、原有系统、数据库等)、分布式网络服务器(Edge computing平台)运行支持J2EE应用编程模型的WebSphere或者Tomcat应用服务器

当前局域网交换机所谓的第四层交换技术,就是按照IP地址和TCP端口进行虚拟连接的交换,直接将数据包发送到目的计算机的相应端口。通过交换机将来自外部的初始连接请求,分别与内部的多个地址相联系,此后就能对这些已经建立的虚拟连接进行交换。因此,一些具备第四层交换能力的局域网交换机,就能作为一个硬件负载均衡器,完成服务器的负载均衡。

RTP、RTCP、RTSP、RTMP的关系:RTSP协议用来实现远程播放控制,RTP用来提供时间信息和实现流同步,RTCP协助RTP完成传输质量控制<=(播放控制),

!

智能DNS功能,它在向本地DNS返回应答之前会先根据一些静态或动态策略进行智能计算。

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

–          Adobe HTTP Dynamic Streaming (HDS)

负载均衡器有多种多样的形式,除了作为独立意义上的负载均衡器外,有些负载均衡器集成在交换设备中,置于服务器与Internet链接之间,有些则以两块网络适配器将这一功能集成到PC中,一块连接到Internet上,一块连接到后端服务器群的内部网络上。

内容文件预处理

!

网络层(IP)

    •  统计计量。既然所有的Web应用请求都必须经过负载均衡系统,那么系统就可以确定活动会话的数量,在任何实例访问中的活动会话的数目,应答的次数,高峰负载次数,以及在高峰期和低谷期的会话的数目,还有其他更多的。所有的这些统计信息都可以被很好的用来调整整个系统的性能。

 

然后定义一个标准访问列表(standard access list),用来标识要转换的合法IP地址。

–          为提高CDN服务效率或降低系统成本提供手段,比如内容切片

再定义NAT地址池来标识内部web服务器的本地地址,注意要用到关键字rotary,表明我们要使用轮循(Round Robin)的方式从NAT地址池中取出相应IP地址来转换合法IP报文。

在互联网领域有一个“8秒定律”,用户访问一个网站时,如果等待网页打开的时间超过8秒,会有超过30%的用户放弃等待

  ◆传输链路聚合

–          硬件扩展:高成本,灵活性和可扩展性比较差

网络层次上的负载均衡

CDN关键技术:

高可靠性可以看作为系统的一种冗余设定。对于一个特定的请求,如果所申请的服务器不能进行处理的话,那么其他的服务器能不能对之进行有效的处理呢?对于一个高效的系统,如果一个Web服务器失败的话,其他的服务器可以马上取代它的位置,对所申请的请求进行处理,而且这一过程对用户来说,要尽可能的透明,使用户察觉不到!

广域网加速关键技术

例如如果希望使用三个Web服务器来回应对www.exampleorg.org.cn的HTTP请求,就可以设置该域的DNS服务器中关于该域的数据包括有与下面例子类似的结果:

        支撑用户业务的应用程序在正常状态下分别在两台节点上运行,各自有自己的资源,比如IP地址、磁盘阵列上的卷或者文件系统。当某一方的系统或者资源出现故障时,就会将应用和相关资源切换到对方的节点上。

  早期的服务器群集通常以光纤镜像卡进行主从方式备份。令服务运营商头疼的是关键性服务器或应用较多、数据流量较大的服务器一般档次不会太低,而服务运营商花了两台服务器的钱却常常只得到一台服务器的性能。通过地址转换将多台服务器网卡的不同IP 地址翻译成一个VIP(Virtual IP)地址,使得每台服务器均时时处于工作状态。原来需要用小型机来完成的工作改由多台PC服务器完成, 这种弹性解决方案对投资保护的作用是相当明显的——既避免了小型机刚性升级所带来的巨大设备投资,又避免了人员培训的重复投资。同时,服务运营商可以依据业务的需要随时调整服务器的数量。

–          不可抵赖性(undeniability):发送者不能自称没有发出过接受者从他那里收到的内容

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

数据碎片化,就是在应用层将数据分成一个个小的数据块,便于后续的数据比对使用。广域网加速设备在传输数据前会将缓存中的数据与数据切块进行对比,从而找出那些数据是重复数据,不再发送,哪些数据是新鲜的、需要传输的数据。

当第一个请求到达DNS服务器时,返回的是第一台机器的IP地址203.34.23.3;当第二个请求到达时,返回的是第二台机器的IP地址203.34.23.4,以此类推。当第四个请求到达时,第一台机器的IP地址将被再次返回,循环调用。

–          通常是基于硬件的SSL加速

203.34.23.4

基于现有TCP/IP,通过硬件方式提高性能,提高大量TCP并发连接和会话重组等处理能力

203.34.23.5

CDN的实现原理

在描述CDN的实现原理,让我们先看传统的未加缓存服务的访问过程,以便了解CDN缓存访问方式与未加缓存访问方式的差别:

用户提交域名→浏览器对域名进行解释→得到目的主机的IP地址→根据IP地址访问发出请求→得到请求数据并回复

由上可见,用户访问未使用CDN缓存网站的过程为:

1)、用户向浏览器提供要访问的域名;

2)、浏览器调用域名解析函数库对域名进行解析,以得到此域名对应的IP地址;

3)、浏览器使用所得到的IP地址,向域名的服务主机发出数据访问请求;

4)、浏览器根据域名主机返回的数据显示网页的内容。

通过以上四个步骤,浏览器完成从用户处接收用户要访问的域名到从域名服务主机处获取数据的整个过程。CDN网络是在 用户和服务器之间增加Cache层,如何将用户的请求引导到Cache上获得源服务器的数据,主要是通过接管DNS实现,下面让我们看看访问使用CDN缓 存后的网站的过程:

澳门新濠3559 4

流程图

通过上图,我们可以了解到,使用了CDN缓存后的网站的访问过程变为:

1)、用户向浏览器提供要访问的域名;

2)、浏览器调用域名解析库对域名进行解析,由于CDN对域名解析过程进行了调整,所以解析函数库一般得到的是该域 名对应的CNAME记录,为了得到实际IP地址,浏览器需要再次对获得的CNAME域名进行解析以得到实际的IP地址;在此过程中,使用的全局负载均衡 DNS解析,如根据地理位置信息解析对应的IP地址,使得用户能就近访问。

3)、此次解析得到CDN缓存服务器的IP地址,浏览器在得到实际的IP地址以后,向缓存服务器发出访问请求;

4)、缓存服务器根据浏览器提供的要访问的域名,通过Cache内部专用DNS解析得到此域名的实际IP地址,再由缓存服务器向此实际IP地址提交访问请求;

5)、缓存服务器从实际IP地址得得到内容以后,一方面在本地进行保存,以备以后使用,另一方面把获取的数据返回给客户端,完成数据服务过程;

6)、客户端得到由缓存服务器返回的数据以后显示出来并完成整个浏览的数据请求过程。

通过以上的分析我们可以得到,为了实现既要对普通用户透明(即加入缓存以后用户客户端无需进行任何设置,直接使用被 加速网站原有的域名即可访问,又要在为指定的网站提供加速服务的同时降低对ICP的影响,只要修改整个访问过程中的域名解析部分,以实现透明的加速服务, 下面是CDN网络实现的具体操作过程。

1)、作为ICP,只需要把域名解释权交给CDN运营商,其他方面不需要进行任何的修改;操作时,ICP修改自己域名的解析记录,一般用cname方式指向CDN网络Cache服务器的地址。

2)、作为CDN运营商,首先需要为ICP的域名提供公开的解析,为了实现sortlist,一般是把ICP的域名解释结果指向一个CNAME记录;

3)、当需要进行sortlist时,CDN运营商可以利用DNS对CNAME指向的域名解析过程进行特殊处理,使DNS服务器在接收到客户端请求时可以根据客户端的IP地址,返回相同域名的不同IP地址;

4)、由于从cname获得的IP地址,并且带有hostname信息,请求到达Cache之后,Cache必须知道源服务器的IP地址,所以在CDN运营商内部维护一个内部DNS服务器,用于解释用户所访问的域名的真实IP地址;

5)、在维护内部DNS服务器时,还需要维护一台授权服务器,控制哪些域名可以进行缓存,而哪些又不进行缓存,以免发生开放代理的情况。

CDN第四章WEB 集群与负载均衡基本概念来源:

CDN详解来源:http://zsvalue.com/201405/foundation-of-cdn-《cdn技术详解》note/

CDN原理实现来源:

 

转载自:,感谢原作者

上图来自Linux Virtual Server Project,为他们使用IP隧道实现的这种负载分担能力的请求/回应过程,此时每个后台服务器都需要进行特别的地址转换,以欺骗浏览器客户,认为它的回应为正确的回应。

是指按照一定的规则把一个完整的文件切成大小一致的若干个小文件;由于流媒体CDN需要提供的内容体积越来越大,传统整片存储带来的成本消耗超出了CDN服务商的承受范围;切片的另一个目的是,使边缘Cache能够支持自适应码率业务

能进行负载均衡的网络设计结构为对称结构,在对称结构中每台服务器都具备等价的地位,都可以单独对外提供服务而无须其他服务器的辅助。然后,可以通过某种技术,将外部发送来的请求均匀分配到对称结构中的每台服务器上,接收到连接请求的服务器都独立回应客户的请求。在这种结构中,由于建立内容完全一致的Web服务器并不困难,因此负载均衡技术就成为建立一个高负载Web站点的关键性技术。

隐藏节点的存在很大程度上可以避免GSLB被攻击致瘫痪的机会,实际隐藏节点的实现方法就是在实际组网时除了部署正常工作的GSLB以外,再部署一台备份的GSLB设备,并将这一备份GSLB设备隐藏起来,不对外公布。

反向代理是处于OSI参考模型第七层应用的,所以就必须为每一种应用服务专门开发一个反向代理服务器,这样就限制了反向代理负载均衡技术的应用范围,现在一般都用于对web服务器的负载均衡。

–          IP地址权重

  proxypass /love

QoS和流量控制

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

HDS,点播内容是通过一个简单的预编码生成MP4片段以及Manifest清单文件;直播的内容准备工作流程相对复杂一点,在播放的过程中生成MP4.(直播推荐用RTMP,使用FMS推流器)

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

分布式存储技术因其大容量、低成本的特点,目前也被业界关注和研究作为流媒体CDN系统的存储解决方案之一。常用的分布 式存储技术包括分布式文件系统和分布式数据库,由于采用了数据副本冗余(每份数据复制2~3份)、磁盘冗余(Raid1、Raid10、Raid5)等技 术,通常可以提供良好的数据容错机制,当单台存储设备断电或者单个存储磁盘失效时,整个存储系统仍能正常工作

基于linux的负载均衡技术

–          Web系统用户文件的复制。

在现有众多的均衡服务器负载的方法中,广泛研究并使用的是以下两个方法:

在流媒体服务系统中,主要关注的技术是对不同流媒体协议、不同编码格式、不同播放器、不同业务质量要求等的适应。

除了上面介绍的轮流排程方法外,还有三种DNS负载均衡处理分配方法,将这四种方法列出如下:

基于DNS的负载均衡以CNAME实现[to cluster],智取最优节点服务,

www      IN       CNAME         www1

  1. 缓存算法[Squid];2. 分发能力;3. 负载均衡[Nginx](4. 基于DNS[BIND]);5. 支持协议;

Internet的规模每一百天就会增长一倍,客户希望获得7天24小时的不间断可用性及较快的系统反应时间,而不愿屡次看到某个站点“Server Too Busy”及频繁的系统故障。

 

◆网络接入协议交换

基于路由协议算法选择一条路由到达这两个本地均衡器中的一个。因为每次访问请求的终端IP地址不同,路由条件也不同,所以在多个路由器上优选的路由不同,从统计复用的角度来看基本是在负载均衡器1和2之间均匀分布的。

www.loadbalancedsite.com 203.34.23.5

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

  当前局域网交换机所谓的第四层交换技术,就是按照IP地址和TCP端口进行虚拟连接的交换,直接将数据包发送到目的计算机的 相应端口。通过交换机将来自外部的初始连接请求,分别与内部的多个地址相联系,此后就能对这些已经建立的虚拟连接进行交换。因此,一些具备第四层交换能力的局域网交换机,就能作为一个硬件负载均衡器,完成服务器的负载均衡。

数据压缩和指针技术一般是放在一起使用的,在对数据分段后,会对每一段数据生成一个数据指针,对于重复内容,只传输指针。在压缩算法设计上,要求同时兼顾数据压缩比和压缩/解压缩时间。

  现代负载均衡技术通常操作于网络的第四层或第七层。第四层负载均衡将一个Internet上合法注册的IP地址映射为多个内部服务器的IP地址,对每次TCP连接请求动态使用其中一个内部IP地址,达到负载均衡的目的。在第四层交换机中,此种均衡技术得到广泛的应用,一个目标地址是服务器群VIP(虚拟IP,Virtual IP address)连接请求的数据包流经交换机,交换机根据源端和目的IP地址、TCP或UDP端口号和一定的负载均衡策略,在服务器IP和VIP间进行映射,选取服务器群中最好的服务器来处理连接请求。

本地DNS服务器(local DNS server)是用户所在局域网或ISP网络中的域名服务器。当客户端在浏览器里请求abc.com时,浏览器会首先向本地DNS服务器请求将 abc.com解析成IP地址,本地DNS服务器再向整个DNS系统查询,直到找到解析结果。客户端可以配置DNS服务器或通过DHCP来分配

链路聚合系统增加了网络的复杂性,但也提高了网络的可靠性,使人们可以在服务器等关键LAN段的线路上采用冗余路由。对于IP系统,可以考虑采用VRRP(虚拟路由冗余协议)。VRRP可以生成一个虚拟缺省的网关地址,当主路由器无法接通时,备用路由器就会采用这个地址,使LAN通信得以继续。总之,当主要线路的性能必需提高而单条线路的升级又不可行时,可以采用链路聚合技术。

针对层次

负载均衡技术实现结构

应用协议加速:企业应用加速主要是动态加速和SSL加速

基于特定服务器软件的负载均衡

HTTP重定向只适用于HTTP应用,不适用于任何其他应用。比如微软的MMS协议,RTSP协议,就不能使用这种方式 进行重定向。其次,由于HTTP重定向过程需要额外解析域名URL,还需要与URL建立TCP连接并且发送HTTP请求,使得响应时间加长。第三,不同于 DNS方式,没有任何用户请求能被外部系统终结(不能缓存),所有请求都必须进入GSLB系统,这将成为性能和可靠性的瓶颈。(流媒体用的比较多)

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

分发组件负责将分片文件和索引文件通过HTTP的方式发送给客户端,无须对现有的Web服务器和Cache设备进行额外的扩展、配置和升级

  负载均衡方案应是在网站建设初期就应考虑的问题,不过有时随着访问流量的爆炸性增长,超出决策者的意料,这也就成为不得不面对的问题。当我们在引入某种负载均衡方案乃至具体实施时,像其他的许多方案一样,首先是确定当前及将来的应用需求,然后在代价与收效之间做出权衡。

–          使用动态密钥(随机生成的key通过算法生成新的url)

反向代理负载均衡

在直播业务中,边缘Cache从区域中心获取直播流,而不需要直接向中心节点(源站)获取,从而节省了区域中心到中心节点这一段的大部分带宽。因为直播流在各个Cache中都不需要占用很大的存储空间,只需少量缓存空间即可,所以直播业务方面并不用注重考虑存储成本

  下图展示了一个应用示例,三个服务器群针对各自的特点,分别采用了不同的负载均衡方式。当客户端发出域名解析请求时,DNS服务器依次把它解析成三个服务器群的VIP,如此把客户端的连接请求分别引向三个服务器群,从而达到了再一次负载均衡的目的。

HTTP streaming

Progressive download

支持点播、直播

仅支持点播

可对分片文件加密,保证数字版权

直接把媒体文件分割成多个小文件分片,无法保障版权所有

因为分片传输,故支持码率自适应

只支持固定码率

①       通过对HTTP报头的检查,可以检测出HTTP400、500和600系列的错误信息,因而能透明地将连接请求重新定向到另一台服务器,避免应用层故障。

HTTP重定向(CDN GSLB用302重定向):在HTTP协议中,有三类重定向状态吗:301永久性转移(permanently moved)、302暂时转移(temporarily moved)、meta fresh在特定时间后重定向到新的网页

  负载均衡技术实现结构

–          时间分辨率转换

   •  不支持服务器间的一致性。服务器一致性是负载均衡系统所应具备的一种能力,通过它,系统可以根据会话信息是属于服务器端的,还是底层数据库级别的,继而将用户的请求导向相应的服务器。而DNS轮流排程则不具备这种智能化的特性。它是通过cookie、隐藏域、重写URL三种方法中的一种来进行相似的判断的。当用户通过上述基于文本标志的方法与服务器建立连接之后,其所有的后续访问均是连接到同一个服务器上。问题是,服务器的IP是被浏览器暂时存放在缓存中,一旦记录过期,则需要重新建立连接,那么同一个用户的请求很可能被不同的服务器进行处理,则先前的所有会话信息便会丢失。

对于电信运营商,CDN是真正体现管道智能化的技术

稳定性决定了应用程序能否支持不断增长的用户请求数量,它是应用程序自身的一种能力。稳定性是影响系统性能的众多因素的一种有效的测量手段,包括机群系统所能支持的同时访问系统的最大用户数目以及处理一个请求所需要的时间。

业务逻辑层负责处理所有业务逻辑和动态内容的生成

  判断一个站点是否采用了DNS负载均衡的最简单方式就是连续的ping这个域名,如果多次解析返回的IP地址不相同的话,那么这个站点就很可能采用的就是较为普遍的DNS负载均衡。但也不一定,因为如果采用的是DNS响应均衡,多次解析返回的IP地址也可能会不相同。不妨试试Ping一下www.yesky.com,www.sohu.com,www.yahoo.com

SSL的基本原理和实现

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

负载均衡器作为权威DNS服务器:负载均衡器就会接收所有对这个域名的DNS请求,从而能够根据预先设置的一些策略来提 供对域名的智能DNS解析。F5的DNS具有完整的DNS功能以及增强的GSLB特性,Foundry、Nortel、Cisco和Radware的产品 能实现部分DNS功能

www1     IN       A        192.168.1.1

–          分发服务系统:最基本的工作单元就是Cache设备,cache(边缘cache)负责直接响应最终用户的访问请求,把缓存在本地的内容快速地提供给用 户。同时cache还负责与源站点进行内容同步,把更新的内容以及本地没有的内容从源站点获取并保存在本地。Cache设备的数量、规模、总服务能力是衡 量一个CDN系统服务能力的最基本的指标

最后,把目标地址为访问表中IP的报文转换成地址池中定义的IP地址。

–          PTR记录(pointer record):IP->域名的映射

DNS负载均衡

–          在内容中插入数据(对有版权内容进行加密(DRM),如Microsoft的playready,Google的Widevine)

ip address 200.200.1.1 255.255.255.248

     
     ②主-从(Active-Standby)工作方式
      为了提供最大的可用性,以及对性能最小的影响,主-从工作方式需要一个在正常工作时处于备用状态的节点,主节点处理客户机的请求,而备用节点处于空闲状态,当主节点出现故障时,备用节点会接管主节点的工作,继续为客户机提供服务,并且不会有任何性能上影响。
          澳门新濠3559 6   

打开相应DNS 服务器的“属性”,在“高级”选项卡的“服务器选项”中,选中“启用循环”复选框。此步相当于在注册表记录HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesDNSParameters中添加一个双字节制值(dword值)RoundRobin,值为1。

–          运营管理系统:分为运营管理和网络管理子系统,负责处理业务层面的与外界系统交互所必须的收集、整理、交付工作,包含客户管理、产品管理、计费管理、统计分析等功能。

做好路由器的基本配置,并定义各个接口在做NAT时是内部还是外部接口。

Web网站借助CDN技术能够获得更好的扩展性和高性能,核心在于CDN采用的缓存(caching)和复制(replication)机制,其中缓存是将最近经常被访问的源服务器拥有的内容复制到边缘服务器上,可被视为具有特定策略的复制。

NAT负载均衡

HTTP1.1采用了效率更高 的持续连接机制,即客户端和服务器端建立TCP连接后,后续相关联的HTTP请求可以重复利用已经建立起来的TCP连接,不仅整个Web页面(包括基本的 HTML文件和其他对象)可以使用这个持续的TCP连接来完成HTTP请求和响应,而且同一个服务器内的多个Web页面也可以通过同一个持续TCP连接来 请求和响应。通常情况下,这个持续的TCP连接会在空闲一段特定的时间后关闭,而这个最大空闲时间时可以设置的(连接复用)。

此后外部的客户机就可能随机的得到对应www的不同地址,那么随后的HTTP请求也就发送给不同地址了。

将常用的应用程序缓存在本地并配置好,用户可不用在本地等待类似于认证等会话过程,而是直接开始下一个应用,实现流水作业

  大型的网络一般都是由大量专用技术设备组成的,如包括防火墙、路由器、第3、4层交换机、负载均衡设备、缓冲服务器和Web 服务器等。如何将这些技术设备有机地组合在一起,是一个直接影响到网络性能的关键性问题。现在许多交换机提供第四层交换功能,对外提供一个一致的IP地址,并映射为多个内部IP地址,对每次TCP和UDP连接请求,根据其端口号,按照即定的策略动态选择 一个内部地址,将数据包转发到该地址上,达到负载均衡的目的。很多硬件厂商将这种技术集成在他们的交换机中,作为他们第四层交换的一种功能来实现,一般采用随机选择、根据服务器的连接数量或者响应时间进行选择的负载均衡策略来分配负载。由于地址转 换相对来讲比较接近网络的低层,因此就有可能将它集成在硬件设备中,通常这样的硬件设备是局域网交换机。

–          NS记录(name server):指定由哪台DNS服务器来解析

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

–          自适应拥塞窗口

DNS响应均衡(Flash DNS):在Internet上,无论是HTTP、FTP或是其它的服务请求,客户端一般都是通过域名解析来找到服务器确切的IP地址的。在此均衡算法下,分处在不同地理位置的负载均衡设备收到同一个客户端的域名解析请求,并在同一时间内把此域名解析成各自相对应服务器的IP地址(即与此负载均衡设备在同一位地理位置的服务器的IP地址)并返回给客户端,则客户端将以最先收到的域名解析IP地址来继续请求服务,而忽略其它的IP地址响应。在种均衡策略适合应用在全局负载均衡的情况下,对本地负载均衡是没有意义的。

DNS就是IP地址和网址互换

比较上面的负载均衡方式,DNS最容易,也最常用,能够满足一般的需求。但如果需要进一步的管理和控制,可以选用反向代理方式或NAT方式,这两种之间进行选择主要依赖缓冲是不是很重要,最大的并发访问数量是多少等条件。而如果网站上对负载影响很厉害的CGI程序是由网站自己开发的,也可以考虑在程序中自己使用Locaction来支持负载均衡。半中心化的负载分担方式至少在国内当前的情况下还不需要。

流媒体加速的回源要求:因为流媒体文件传送带宽需求高,而且往往需要维持TCP长连接,所以一旦CDN回源比例过高,源 站服务器I/O将不堪负荷。CDN对内容采取分发方式分为pull和push两种。Pull是被动下拉的方式,push是主动推送的方式。对于流媒体内 容,系统一般会选择对热点内容采取push方式的预分发,而普通的网页内容几乎100%是pull方式的。

尽管有多种的负载均衡算法可以较好的把数据流量分配给服务器去负载,但如果负载均衡策略没有对网络系统状况的检测方式和能力,一旦在某台服务器或某段负载均衡设备与服务器网络间出现故障的情况下,负载均衡设备依然把一部分数据流量引向那台服务器,这势必造成大量的服务请求被丢失,达不到不间断可用性的要求。所以良好的负载均衡策略应有对网络故障、服务器系统故障、应用服务故障的检测方式和能力:

关于GSLB的部署问题

本地/全局负载均衡

CDN提供一种机制,当用户请求内容时,该内容能够由以最快速度交付的Cache来向用户提供,这个挑选“最优”的过程就叫做负载均衡

可靠性:在对服务质量要求较高的站点,负载均衡解决方案应能为服务器群提供完全的容错性和高可用性。但在负载均衡设备自身出现故障时,应该有良好的冗余解决方案,提高可靠性。使用冗余时,处于同一个冗余单元的多个负载均衡设备必须具有有效的方式以便互相进行监控,保护系统尽可能地避免遭受到重大故障的损失。

第五章 全局负载均衡 (GSLB)

 在负载均衡的思路下,多台服务器为对称方式,每台服务器都具有同等的地位,可以单独对外提供服务而无须其他服务器的辅助。通过负载分担技术,将外部发送来的请求按一定规则分配到对称结构中的某一台服务器上,而接收到请求的服务器都独立回应客户机的请求。

SSL加速

• 透明会话故障恢复。当一个引用失败后,负载均衡器会将之发送到集群中其他的节点上,以完成操作,这一点对用户来说是透明的。由于透明会话故障恢复需要节点具备相应的操作信息,因此为了实现该功能,集群中的所有节点必须具有公共存储区域或通用数据库,存储会话信息数据,以提供每个节点在进行单独进程会话故障恢复时所需要的操作信息。

HTTP streaming的几个主流阵营:

DNS轮流排程 RR-DNS(Round-Robin Domain Name System)

主要差异点

流媒体CDN

Web CDN

Cache

支持多种流化协议,硬件配置大存储、高I/O

支持多协议(HTTP、FTP等)硬件配置小存储、高性能CPU

负载均衡

DNS HTTP重定向方式

DNS方式

内容分发方式

热片PUSH,冷片PULL

全PULL方式

组网

多级组网,可能要求组播、单播混合组网

两级组网

  IMA是另外一种多线路的反向多路复用技术,工作在信元级,能够运行在使用ATM路由器的平台上。

静态内容的加速,都是对于表现层的加速,对于动态页面等内容的加速,则要涉及逻辑层和数据访问层的加速技术

基于DNS的负载均衡

防盗链机制和实现

  在本台服务器的apache配置文件httpd.conf中添加如下设置:

 

响应速度均衡(Response Time):负载均衡设备对内部各服务器发出一个探测请求(例如Ping),然后根据内部中各服务器对探测请求的最快响应时间来决定哪一台服务器来响应客户端的服务请求。此种均衡算法能较好的反映服务器的当前运行状态,但这最快响应时间仅仅指的是负载均衡设备与服务器间的最快响应时间,而不是客户端与服务器间的最快响应时间。

CDN的复制机制是指将源Web系统逻辑架构的各个层次的相应功用复制到边缘服务器上实现,以缓解源系统的处理压力。

负载均衡(Load Balance)建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。

原始数据优化

  针对网络上负载过重的不同瓶颈所在,从网络的不同层次入手,我们可以采用相应的负载均衡技术来解决现有问题。

PCL为此环境提供了完全冗余的服务器配置。这种模式的优缺点:

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

文件切片

很多网络协议都支持“重定向”功能,例如在HTTP协议中支持Location指令,接收到这个指令的浏览器将自动重定向到Location指明的另一个URL上。由于发送Location指令比起执行服务请求,对Web服务器的负载要小的多,因此可以根据这个功能来设计一种负载均衡的服务器。任何时候Web服务器认为自己负载较大的时候,它就不再直接发送回浏览器请求的网页,而是送回一个Locaction指令,让浏览器去服务器集群中的其他服务器上获得所需要的网页。

 

  选择合适的负载均衡策略,使多个设备能很好的共同完成任务,消除或避免现有网络负载分布不均、数据流量拥挤反应时间长的瓶颈。在各负载均衡方式中,针对不同的应用需求,在OSI参考模型的第二、三、四、七层的负载均衡都有相应的负载均衡策略。

比较项

基于DNS解析方式

基于HTTP重定向方式

基于IP路由方式

性能

本地DNS服务器和用户终端DNS缓存能力使GSLB的负载得到有效分担

GSLB处理压力大,容易成为系统性能的瓶颈

借助IP网络设备完成负载均衡,没有单点性能瓶颈

准确度

定位准确度取决于本地DNS覆盖范围,本地DNS设置错误会造成定位不准确

在对用户IP地址数据进行有效维护的前提下,定位准确且精度高

就近性调度准确,但对设备健康性等动态信息响应会有延迟

效率

效率约等于DNS系统本身处理效率

依靠服务器做处理,对硬件资源的要求高

效率约等于IP设备本身效率

扩展性

扩展性和通用性好

扩展性较差,需对各种应用协议进行定制开发

通用性好,但适用范围有限

商用性

在Web加速领域使用较多

国内流媒体CDN应用较多

尚无商用案例

  DNS负载均衡的优点是经济简单易行,并且服务器可以位于internet上任意的位置。但它也存在不少缺点:

HTTP streaming前身是progressive download(渐进式下载:边下载边播放,直到下载完)。HTTP streaming首先会将视频数据(包括直播的视频流和点播的视频文件)在服务器上进行编码,然后将编码后的数据进行更细粒度的分片,再把每个分片通过 HTTP协议传输到客户端。HTTP streaming的客户端需要对视频文件的每个分片都发出一个HTTP请求,这样,在视频播放速度低于下载速度的情况下,客户端可以灵活控制HTTP请 求的发出速度,从而保证用户在中途退出时不会出现下载浪费。另外,因为采用分片的特点,HTTP streaming还可以实现媒体播放过程中的码率切换(码率自适应),结合网络带宽资源,为用户提供更好的体验。

  由于第四层交换基于硬件芯片,因此其性能非常优秀,尤其是对于网络传输速度和交换速度远远超过普通的数据包转发。然而,正因为它是使用硬件实现的,因此也不够灵活,仅仅能够处理几种最标准的应用协议的负载均衡,如HTTP 。当前负载均衡主要用于解决服务器的处理能力不足的问题,因此并不能充分发挥交换机带来的高网络带宽的优点。

DNS系统本身是具备简单负载分配能力的,这是基于DNS的轮询机制。如果有多台Web服务器(多源)同时为站点 abc.com提供服务,abc.com的权威服务器可能会解析出一个或多个IP地址。权威域名服务器还可以调整响应中IP地址的排列方式,即在每次响应 中将不同的IP地址置于首位(取决于可服务能力和服务质量),通过这种方式实现对这些Web服务器的负载均衡

  在实际应用中,我们可能不想仅仅是把客户端的服务请求平均地分配给内部服务器,而不管服务器是否宕机。而是想使Pentium III服务器比Pentium II能接受更多的服务请求,一台处理服务请求较少的服务器能分配到更多的服务请求,出现故障的服务器将不再接受服务请求直至故障恢复等等。

–          服务器组件主要负责从原始的音视频设备捕捉相应的音视频流,并对这些输入的媒体流进行编码,然后进行封装和分片,最后交付给分发组件来进行传送;

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

–          往返时间(TTL)

DNS 轮流排程的优势

www.loadbalancedsite.com 203.34.23.3

可扩展性:IT技术日新月异,一年以前最新的产品,现在或许已是网络中性能最低的产品;业务量的急速上升,一年前的网络,现在需要新一轮的扩展。合适的均衡解决方案应能满足这些需求,能均衡不同操作系统和硬件平台之间的负载,能均衡HTTP、邮件、新闻、代理、数据库、防火墙和 Cache等不同服务器的负载,并且能以对客户端完全透明的方式动态增加或删除某些资源。

  www3 IN A 192.1.1.3

  第七层负载均衡控制应用层服务的内容,提供了一种对访问流量的高层控制方式,适合对HTTP服务器群的应用。第七层负载均衡技术通过检查流经的HTTP报头,根据报头内的信息来执行负载均衡任务。

HTTP URL侦测:比如向HTTP服务器发出一个对main.html文件的访问请求,如果收到错误信息,则认为服务器出现故障。

如今,服务器必须具备提供大量并发访问服务的能力,其处理能力和I/O能力已经成为提供服务的瓶颈。如果客户的增多导致通信量超出了服务器能承受的范围,那么其结果必然是——宕机。显然,单台服务器有限的性能不可能解决这个问题,一台普通服务器的处理能力只能达到每秒几万个到几十万个请求,无法在一秒钟内处理上百万个甚至更多的请求。但若能将10台这样的服务器组成一个系统,并通过软件技术将所有请求平均分配给所有服务器,那么这个系统就完全拥有每秒钟处理几百万个甚至更多请求的能力。这就是利用服务器群集实现负载均衡的最初基本设计思想。

 负载均衡实现的方法有几种:

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

集群的负载均衡技术

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

 通过应用负载均衡技术,使应用服务超过了一台服务器只能为有限用户提供服务的限制,可以利用多台服务器同时为大量用户提供服务。当某台服务器出现故障时,负载均衡服务器会自动进行检测并停止将服务请求分发至该服务器,而由其他工作正常的服务器继续提供服务,从而保证了服务的可靠性。

  链路聚合系统增加了网络的复杂性,但也提高了网络的可靠性,使人们可以在服务器等关键LAN段的线路上采用冗余路由。对于 IP系统,可以考虑采用VRRP(虚拟路由冗余协议)。VRRP可以生成一个虚拟缺省的网关地址,当主路由器无法接通时,备用路由器就会采用这个地址,使LAN通信得以继续。总之,当主要线路的性能必需提高而单条线路的升级又不可行时,可以采用链路聚合技术。

  NAT(Network Address Translation 网络地址转换)简单地说就是将一个IP地址转换为另一个IP地址,一般用于未经注册的内部地址与合法的、已获注册的Internet IP地址间进行转换。适用于解决Internet IP地址紧张、不想让网络外部知道内部网络结构等的场合下。每次NAT转换势必会增加NAT设备的开销,但这种额外的开销对于大多数网络来说都是微不足道的,除非在高带宽有大量NAT请求的网络上。

负载均衡的层次

  现有一台有一个串行接口和一个Ethernet接口的路由器,Ethernet口连接到内部网络,内部网络上有三台web服务器,但都只是低端配置,为了处理好来自Internet上大量的web连接请求,因此需要在此路由器上做NAT负载均衡配置,把发送到web服务器合法Internet IP地址的报文转换成这三台服务器的内部本地地址。其具体配置过程如下:

  www IN CNAME www3

DNS负载均衡的优点是简单、易行,并且服务器可以位于互联网的任意位置上,当前使用在包括Yahoo在内的Web站点上。然而它也存在不少缺点,一个缺点是为了保证DNS数据及时更新,一般都要将DNS的刷新时间设置的较小,但太小就会造成太大的额外网络流量,并且更改了DNS数据之后也不能立即生效;第二点是DNS负载均衡无法得知服务器之间的差异,它不能做到为性能较好的服务器多分配请求,也不能了解到服务器的当前状态,甚至会出现客户请求集中在某一台服务器上的偶然情况。

  www IN CNAME www2

◆传输链路聚合

  www1 IN A 192.1.1.1

在这种方式下,服务器本身必须支持这种功能,然而具体实现起来却有很多困难,例如一台服务器如何能保证它重定向过的服务器是比较空闲的,并且不会再次发送Location指令?Location指令和浏览器都没有这方面的支持能力,这样很容易在浏览器上形成一种死循环。因此这种方式实际应用当中并不多见,使用这种方式实现的服务器集群软件也较少。有些特定情况下可以使用CGI(包括使用FastCGI或mod_perl扩展来改善性能)来模拟这种方式去分担负载,而Web服务器仍然保持简洁、高效的特性,此时避免Location循环的任务将由用户的CGI程序来承担。

  现假设有三台服务器来应对www.test.com的请求。在采用BIND 8.x DNS服务器的unix系统上实现起来比较简单,只需在该域的数据记录中添加类似下面的结果:

③       解决网络拥塞问题,提高服务器响应速度,服务就近提供,达到更好的访问质量。

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

使用基于操作系统的第四层交换技术因此孕育而生。通过开放源码的Linux,将第四层交换的核心功能做在系统的核心层,能够在相对高效稳定的核心空间进行IP包的数据处理工作,其效率不比采用专有OS的硬件交换机差多少。同时又可以在核心层或者用户层增加基于交换核心的负载均衡策略支持,因此在灵活性上远远高于硬件系统,而且造价方面有更好的优势。

Internet的快速增长使多媒体网络服务器,特别是Web服务器,面对的访问者数量快速增加,网络服务器需要具备提供大量并发访问服务的能力。例如Yahoo每天会收到数百万次的访问请求,因此对于提供大负载Web服务的服务器来讲,CPU、I/O处理能力很快会成为瓶颈。

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

www      IN       CNAME         www3

性能:性能是我们在引入均衡方案时需要重点考虑的问题,但也是一个最难把握的问题。衡量性能时可将每秒钟通过网络的数据包数目做为一个参数,另一个参数是均衡方案中服务器群所能处理的最大并发连接数目,但是,假设一个均衡系统能处理百万计的并发连接数,可是却只能以每秒2个包的速率转发,这显然是没有任何作用的。 性能的优劣与负载均衡设备的处理能力、采用的均衡策略息息相关,并且有两点需要注意:一、均衡方案对服务器群整体的性能,这是响应客户端连接请求速度的关键;二、负载均衡设备自身的性能,避免有大量连接请求时自身性能不足而成为服务瓶颈。有时我们也可以考虑采用混合型负载均衡策略来提升服务器群的总体性能,如DNS负载均衡与NAT负载均衡相结合。另外,针对有大量静态文档请求的站点,也可以考虑采用高速缓存技术,相对来说更节省费用,更能提高响应性能;对有大量ssl/xml内容传输的站点,更应考虑采用ssl/xml加速技术。

以下,我们将就这两种方法进行讨论。

DNS负载均衡采用的是简单的轮循负载算法,不能区分服务器的差异,不能反映服务器的当前运行状态,不能做到为性能较好的服务器多分配请求,甚至会出现客户请求集中在某一台服务器上的情况。

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

在这里可以看到的区别是在NT下一个主机名对应多个IP地址记录,但在unix下,是先添加多个不同的主机名分别对应个自的IP地址,然后再把这些主机赋同一个别名(CNAME)来实现的。

  所以,如图的这个示例在实际中可能没有多大的意义,因为如此大的服务内容相同但各服务器群存在大量差异的网站并不多见。但做为一个示例,相信还是很有参考意义的.

interface Ethernet0/0

  总之,负载均衡是一种策略,它能让多台服务器或多条链路共同承担一些繁重的计算或I/O任务,从而以较低成本消除网络瓶颈, 提高网络的灵活性和可靠性。

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

负载均衡有两方面的含义:首先,大量的并发访问或数据流量分担到多台节点设备上分别处理,减少用户等待响应的时间;其次,单个重负载的运算分担到多台节点设备上做并行处理,每个节点设备处理结束后,将结果汇总,返回给用户,系统处理能力得到大幅度提高。

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

  定义

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

web应用服务器集群系统,是由一群同时运行同一个web应用的服务器组成的集群系统,在外界看来,就像是一个服务器一样。为了均衡集群服务器的负载,达到优化系统性能的目的,集群服务器将众多的访问请求,分散到系统中的不同节点进行处理。从而实现了更高的有效性和稳定性,而这也正是基于Web的企业应用所必须具备的特性。

  考虑到服务请求的不同类型、服务器的不同处理能力以及随机选择造成的负载分配不均匀等问题,为了更加合理的把负载分配给内部的多个服务器,就需要应用相应的能够正确反映各个服务器处理能力及网络状态的负载均衡算法:

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

打开“管理工具”下的“DNS”,进入DNS服务配置控制台。

www2     IN       A        192.168.1.2

使用反向代理的好处是,可以将负载均衡和代理服务器的高速缓存技术结合在一起,提供有益的性能,具备额外的安全性,外部客户不能直接访问真实的服务器。并且实现起来可以实现较好的负载均衡策略,将负载可以非常均衡的分给内部服务器,不会出现负载集中到某个服务器的偶然现象。

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

扩展的负载均衡技术

www3     IN       A        192.168.1.3

负载均衡器

简单的提高硬件性能并不能真正解决这个问题,因为单台服务器的性能总是有限的,一般来讲,一台PC服务器所能提供的并发访问处理能力大约为1000个,更为高档的专用服务器能够支持3000-5000个并发访问,这样的能力还是无法满足负载较大的网站的要求。尤其是网络请求具有突发性,当某些重大事件发生时,网络访问就会急剧上升,从而造成网络瓶颈,例如在网上发布的克林顿弹劾书就是很明显的例子。必须采用多台服务器提供网络服务,并将网络请求分配给这些服务器分担,才能提供处理大量并发服务的能力。

ip nat outside

  全局负载均衡主要用于在一个多区域拥有自己服务器的站点,为了使全球用户只以一个IP地址或域名就能访问到离自己最近的服务器,从而获得最快的访问速度,也可用于子公司分散站点分布广的大公司通过Intranet(企业内部互联网)来达到资源统一合理分配的目的。

www IN A 192.1.1.1

  NAT负载均衡将一个外部IP地址映射为多个内部IP地址,对每次连接请求动态地转换为一个内部服务器的地址,将外部连接请求引到转换得到地址的那个服务器上,从而达到负载均衡的目的。

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

要给每台服务器分配一个internet上的IP地址,这势必会占用过多的IP地址。

ip address 192.168.1.4 255.255.255.248

负载均衡器通过虚拟IP地址方法,解决了轮流排程所面临的许多问题。使用了负载均衡器集群系统,在外部看来,像是具有一个IP地址的单一服务器一样,当然,这个IP地址是虚拟的,它映射了集群中的每一台机器的地址。所以,在某种程度上,负载均衡器是将整个集群的IP地址报漏给外部网络。

 关于负载均衡中比较高级的功能是FailOver,即一台出现故障时,在这台服务器上正在进行中的进程也会被其他服务器接过去。相应的成本也很高,一般是要象WebLogic、WebSphere软件的群集版本才支持。

在此需要注意的是,NT下本地子网优先级会取代多宿主名称的循环复用,所以在测试时,如果做测试用的客户机IP地址与主机资源记录的IP在同一有类掩码范围内,就需要清除在“高级”选项卡“服务器选项”中的“启用netmask排序”。

 提供服务的一组服务器组成了一个应用服务器集群(cluster),并对外提供一个统一的地址。当一个服务请求被发至该集群时,根据一定规则选择一台服务器,并将服务转定向给该服务器承担,即将负载进行均衡分摊。

前言

反向代理负载均衡

前言

①       实现地理位置无关性,能够远距离为用户提供完全的透明服务。

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

!

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

用路由器来实现多线路是一种流行的链路聚合技术,路由器可以根据已知的目的地址的缓冲(cache)大小,将分组分配给各个平行的链路,也可以采用循环分配的方法来向线路分发分组。

  网络负载均衡提高了诸如Web服务器、FTP服务器和其他关键任务服务器上的因特网服务器程序的可用性和可伸缩性。单一计算机可以提供有限级别的服务器可靠性和可伸缩性。但是,通过将两个或两个以上高级服务器的主机连成群集,网络负载均衡就能够提 供关键任务服务器所需的可靠性和性能。

负载均衡策略

interface Serial0/0

  相应配置文件如下:

ip nat pool websrv 192.168.1.1 192.168.1.3 netmask 255.255.255.248 type rotary

  负载均衡策略的优劣除受上面所讲的两个因素影响外,在有些应用情况下,我们需要将来自同一客户端的所有请求都分配给同一台服务器去负担,例如服务器将客户端注册、购物等服务请求信息保存的本地数据库的情况下,把客户端的子请求分配给同一台服务器来处理就显的至关重要了。有两种方式可以解决此问题,一是根据IP地址把来自同一客户端的多次请求分配给同一台服务器处理,客户端IP地址与服务器的对应信息是保存在负载均衡设备上的;二是在客户端浏览器cookie内做独一无二的标识来把多次请求分配给同一台服务器处理,适合通过代理服务器上网的客户端。

为了建立一个高负载的Web站点,必须使用多服务器的分布式结构。上面提到的使用代理服务器和Web服务器相结合,或者两台Web服务器相互协作的方式也属于多服务器的结构,但在这些多服务器的结构中,每台服务器所起到的作用是不同的,属于非对称的体系结构。非对称的服务器结构中每个服务器起到的作用是不同的,例如一台服务器用于提供静态网页,而另一台用于提供动态网页等等。这样就使得网页设计时就需要考虑不同服务器之间的关系,一旦要改变服务器之间的关系,就会使得某些网页出现连接错误,不利于维护,可扩展性也较差。

处理能力均衡:此种均衡算法将把服务请求分配给内部中处理负荷(根据服务器CPU型号、CPU数量、内存大小及当前连接数等换算而成)最轻的服务器,由于考虑到了内部服务器的处理能力及当前网络运行状况,所以此种均衡算法相对来说更加精确,尤其适合运用到第七层(应用层)负载均衡的情况下。

权重随机均衡(Weighted Random):此种均衡算法类似于权重轮循算法,不过在处理请求分担时是个随机选择的过程。

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

ip nat inside destination list 1 pool websrv

在本例中,DNS服务器中包含下面的映射表:

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

④       第七层负载均衡受到其所支持的协议限制(一般只有HTTP),这样就限制了它应用的广泛性,并且检查HTTP报头会占用大量的系统资源,势必会影响到系统的性能,在大量连接请求的情况下,负载均衡设备自身容易成为网络整体性能的瓶颈。

  多重链路PPP,又称MP或MLP,是应用于使用PPP封装数据链路的路由器负载平衡技术。MP可以将大的PPP数据包分解成小的数据 段,再将其分发给平行的多个线路,还可以根据当前的链路利用率来动态地分配拨号线路。这样做尽管速度很慢,因为数据包分段和附加的缓冲都增加时延,但可以在低速的线路上运行得很好。

地址转换可以通过软件方式来实现,也可以通过硬件方式来实现。使用硬件方式进行操作一般称为交换,而当交换必须保存TCP连接信息的时候,这种针对OSI网络层的操作就被称为第四层交换。支持负载均衡的网络地址转换为第四层交换机的一种重要功能,由于它基于定制的硬件芯片,因此其性能非常优秀,很多交换机声称具备400MB-800MB的第四层交换能力,然而也有一些资料表明,在如此快的速度下,大部分交换机就不再具备第四层交换能力了,而仅仅支持第三层甚至第二层交换。

当使用多台服务器来分担负载的时候,最简单的办法是将不同的服务器用在不同的方面。按提供的内容进行分割时,可以将一台服务器用于提供新闻页面,而另一台用于提供游戏页面;或者可以按服务器的功能进行分割,将一台服务器用于提供静态页面访问,而另一些用于提供CGI等需要大量消耗资源的动态页面访问。然而由于网络访问的突发性,使得很难确定那些页面造成的负载太大,如果将服务的页面分割的过细就会造成很大浪费。事实上造成负载过大的页面常常是在变化中的,如果要经常按照负载变化来调整页面所在的服务器,那么势必对管理和维护造成极大的问题。因此这种分割方法只能是大方向的调整,对于大负载的网站,根本的解决办法还需要应用负载均衡技术。

作 者: 王波

    •  服务器一致性. 负载均衡器读取客户端发出的每一个请求中所包含的cookies或url解释。基于所读出的这些信息,负载均衡器就可以重写报头并将请求发往集群中合适的节点上,该节点维护着相应客户端请求的会话信息。在HTTP通信中,负载均衡器可以提供服务器一致性,但并不是通过一个安全的途径(例如:HTTPS)来提供这种服务。当消息被加密后(SSL),负载均衡器就不能读出隐藏在其中的会话信息。

  NAT负载均衡是一种比较完善的负载均衡技术,起着NAT负载均衡功能的设备一般处于内部服务器到外部网间的网关位置,如路由器、防火墙、四层交换机、专用负载均衡器等,均衡算法也较灵活,如随机选择、最少连接数及响应时间等来分配负载。

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

  ◆高层协议内容交换技术

  www IN CNAME www1

203.34.23.3

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

权重轮循均衡(Weighted Round Robin):根据服务器的不同处理能力,给每个服务器分配不同的权值,使其能够接受相应权值数的服务请求。例如:服务器A的权值被设计成1,B的权值是3,C的权值是6,则服务器A、B、C将分别接受到10%、30%、60%的服务请求。此种均衡算法能确保高性能的服务器得到更多的使用率,避免低性能的服务器负载过重。

编辑:服务器运维 本文来源:通过Web服务器负载均衡来提高用户的访问性能,

关键词: 澳门新濠3559