




已阅读5页,还剩86页未读, 继续免费阅读
(信息与通信工程专业论文)基于erlang的反向代理集群的设计与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
,j :一f 。j ji ,j 上_ 。j l - , 么 警 独创性声明 l i i ir ri ll1 11 11 1 111 11 1l 18 0 2 4 2 4 本人声明所呈交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地 方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含 为获得电子科技大学或其它教育机构的学位或证书而使用过的材料。 与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明 确的说明并表示谢意。 签名:弛日期:驯。年石月日 论文使用授权 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁 盘,允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文 的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或 扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 签名:盔叁缉导师签名: 日期:加i o 年吉月日 0 一 _ , , 4 、 摘要 摘要 随着互联网的高速发展,用户访问量越来越大,单个w e b 服务器非常容易成 为性能瓶颈。通过使用反向代理服务器组建服务器集群可以提高系统的性能,但 是随着w e b 服务器的增多,单个反向代理服务器可能又成为新的瓶颈,所以需要 组建反向代理服务器集群来解决这个问题。但是目前大多数的反向代理服务器组 建集群时都是独立工作,无法共享调度信息和缓存信息,影响了集群的性能。 本文首先研究了代理服务器相关背景技术,分析了超文本传输协议、w e b 缓 存技术和服务器集群技术。然后介绍了e d a n g 语言和o t p 系统,并基于e r l a n g o t p 提出一个用来构建高并发、高可用、合作式的反向代理服务器集群的e d r p ( e r l a n g d i s t r i b u t e dr e v e r s ep r o x y ) 系统。本文将详细介绍e d r p 系统的设计与实现。 e d r p 系统主要由反向代理、负载调度、缓存管理三个模块组成。反向代理模 块利用e r l a n g 语言的超轻量级进程实现了一个基于阈值动态调整的进程池,从而 能够处理高并发的用户连接。并且为了方便能够在处理请求和响应时进行扩展, 还设计了模块化的过滤机制,可以通过添加缓存过滤器、安全过滤器来实现缓存 管理和安全控制的功能,提高了系统的灵活性。 然后,本文在分析和比较各种负载调度模型的优缺点之后,基于在所有代理 服务器之间都共享调度信息的考虑,实现了合作式负载调度模型,并采用了集中 式和分布式相结合的管理方式。集群中有一个主调度进程负责进行调度工作,其 它的调度进程都是它的备份,这样既可以减少调度请求时的开销又可以避免单点 故障的问题。负载调度模块中还实现了多种负载调度算法,可以满足各种不同的 需求,并且还实现了负载调度算法的热切换机制,可以在运行时对负载调度算法 进行动态切换。 为了提高缓存副本的查找速度同时又不影响整个集群的可靠性,缓存管理模 块采用了集中式管理和分布式管理相结合的单层式缓存体系结构,代理服务器之 间可以共享缓存。缓存管理模块还实现了基于动态闽值自适应t t l 机制和 l r u t h r e s h o l d 策略分别来保证缓存的弱一致性和进行缓存替换。 最后,通过并发性测试和可用性测试证明了e d r p 系统的设计和实现达到了 预期的目标。 关键词:e r l a n g ,反向代理,负载均衡,缓存管理 , i a bs t r a c t w i t ht h eh i g hd e v e l o p m e n to ft h ei n t e r n e t ,t h es i n g l ew e bs e r v e rc o u l de a s i l yr u m o u tt ob ep e r f o m a n c eb o t t l e n e c kd u et ot h eg r o w i n gn u m b e ro f v i s i t o r s c o n s t r u c t i n g s e r v e rc l u s t e rb yt h er e v e r s ep r o x ys e r v e rc a ni m p r o v es y s t e mp e r f o r m a n c e h o w e v e r , t h es i n g l er e v e r s ep r o x ys e r v e rm i g h t s t i l lb ean e w r e s t r i c t i v ef a c t o rw h e nt h en u m b e r o fw e bs e r v e ra r r i v e st oo n ep o i n t a sar e s u l t ,t h er e v e r s ep r o x ys e r v e rc l u s t e r i sa s k e d t ob ec o n s t r u c t e dt os o l v et h i sp r o b l e m b u ti nm o s tr e v e r s ep r o x ys e r v e rd u s t e r , e a c h p r o x ys e r v e rw o r k si n d e p e n d e n t ,a n dc a nn o ts h a r et h ei n f o r m a t i o nw i t ho t h e r s ,t h a tw i l la f f e c t t h e p e r f o r m a n c eo f t h ec l u s t e r i nt h i st h e s i s ,t h eb a c k g r o u n dt e c h n i q u eo fp r o x ys e r v e r f i t sh t t pa n dt h et e c h n i q u e o fw e bc a c h ea n ds e r v e rc l u s t e ri ss t u d i e da tt h ef i r s tp l a c e t h e ne r l a n gl a n g u a g ea n d o t ps v s t e r na r ei n t r o d u c e d f i n a l l y , e d r p ( e r l a n gd i s t r i b u t e dr e v e r s ep r o x y ) s y s t e m w h i c hi su s e df o rb u i l i n gah i g hc o n c u r r e n c y , h i g ha v a i l a b i l i t ya n dc o o p e r a t i v er e v e r s e p r o x ys e r v e rc l u s t e ri si n t r o d u c e d e d r ps v s t e mi sc o n s t r u c t e db yt h r e ep a r t si n c l u d i n gr e v e r s ep r o x y , l o a dd i s p a t c h e r a n dc a c h em a n a g e m e n t i no r d e rt oh a n d l eh i g hc o n c u r r e n c yc o n n e c t i o n s ,r e v e r s ep r o x y m o d u l eh a sp r o d u c e dat h r e s h o l d b a s e dd y n a m i cc o n t r o l l i n gp r o c e s sp o o lw i t ht h eu l t r a l i g h t w e i 曲tp r o c e s so fe d a n g a n df o rt h e c o n v e n i e n c eo fe x p a n d i n gi nt h ep r o c e s so f h a n d i n gr e q u e s ta n dr e s p o n s e ,t h em o d u l a r i z e df i l t r a t i o ni sd e s i g n e dt or e a l i z et h e c a c h e m a n a g e ra n ds e c u r i t yc o n t r o lb ya d d i n g c a c h ef i l t e ra n ds e c u r i t yf i l t e r b a s e do nt h ea n a l y s i sa n dc o m p a r i s o no ft h ea d v a n t a g e sa n dd i s a d v a n t a g e s o f v a r i o u si o a dd i s p a t c h e rm o d e l s ,l o a dd i s p a t c h e rm o d u l eu s e st h ec o l l a b o r a t i v e l o a d d i s p a t c h e rm o d e la n da d o p t e s t h ec o m b i n a t i o no fb o t hc e n t r a l i z e da n dd i s t r i b u t e d m a n a g e m e n tt o t os h a r et h ed i s p a t c h i n gi n f o r m a t i o nb e t w e e na l l t h ep r o x ys e r v e r s i n t h ec l u s t e r iam a i nd i s p a t c hp r o c e s si sr e s p o n s i b l ef o rl o a dd i s p a t c hw h i l eo t h e r ss e r v e 觞 i t sb a c k u p s oi tc a nn o to n l yd e c r e a s et h ec o s to fd i s p a t c hr e q u e s tb u ta l s oa v o i dt h e s i n g l ep o i n to ff a i l u r e l o a dd i s p a t c h e rm o d u l eh a s a l s oi m p l e m e n td i v e r s i f i e dl o a d d i s p a t c ha l g o r i t h m s t os a t i s f yv a r i o u sn e e d sa n d h a si m p l e m e n tt h eh o t s w a p m e c h a n i s mw h i c hc a l ls w a pd i s p a t c ha l g o r i t h m sa tr u n t i m e n 卜 a b s t r a ( 了r i no r d e rt oi m p r o v et h es e a r c he f f i c i e n c yw i t h o u ti n f l u e n c et h er e l i a b l i t yo ft h e w h o l ec l u s t e r , c a c h em a n a g e m e n tm o d u l eh a sa d o p t e ds i n g l e - l a y e rc a c h ea r c h i t e c t u r e w i t ht h ec o m b i n a t i o no fb o t hc e n t r a l i z e da n dd i s t r i b u t e dm a n a g e m e n t e a c hp r o x y s e r v e ri nt h ec l u s t e rc a ns h a r et h ec a c h e c a c h em a n a g e m e n tm o d u l ea l s oi m p l e m e n t s d y n a m i ct h r e s h o l d b a s e da d a p t i v et t lm e c h a n i s ma n dt h el r u - t h r e s h o l ds t r a t e g yt o e n s u r et h ew e a kc o n s i s t e n c yo fc a c h ea n dr e p l a c et h ec a c h e f i n a l l y , t h ec o n c u r r e n c yt e s ta n dt h eu s a b i l i t y t e s tp r o v et h a tt h ed e s i g na n d i m p l e m e n t a t i o no f t h ee d r ps y s t e ma c h i e v et h ed e s i r e do b j e c t i v e s k e y w o r d s :e r l a n g ,r e v e r s ep r o x y , l o a db a l a n c e ,c a c h em a n a g e m e n t i i i 4 1 、-, 一 - 、 f h 沁 目录 目录 第一章引言1 1 1 课题相关研究背景l 1 2 课题相关研究现状3 1 3 本文的工作和创新4 1 4 本文的内容和组织5 第二章相关技术概述6 2 1h t t p 介绍6 2 1 - 1 报文格式6 2 1 2 持久连接7 2 1 3 缓存机制7 2 2 服务器集群技术8 2 2 1 集群技术概述8 2 2 2l v s 集群技术1 0 2 3w e b 缓存技术l l 2 3 1 缓存一致性机制1 2 2 3 2 缓存替换策略1 4 2 3 3 缓存体系结构1 6 2 4 小结1 8 第三章集群总体设计1 9 3 1e r l a n g 介绍1 9 3 2o t p 介绍2 1 3 2 1o t p 的架构2 l 3 2 2 监督树2 3 3 2 3m n e s i a 2 5 3 3 总体设计方案2 6 3 3 1 集群设计目标2 6 i v 目录 3 3 2 集群搭建策略2 7 3 4e d r p 系统框架。2 7 譬 3 5 小结2 9 第四章e d r p 的设计3 0 4 1 反向代理模块的设计3 0 4 1 1 服务器并发模型3 0 4 1 2 进程池模型管理3 2 4 1 3 过滤机制的设计3 3 4 2 负载调度模块的设计3 4 4 2 1 负载调度的模型3 4 4 2 2 调度进程的同步3 7 4 2 3 后端状态的维护3 7 4 3 缓存管理模块的设计3 8 4 3 1 缓存管理的方式3 8 4 3 2 缓存信息的表示4 0 4 3 3 缓存信息的存储4 l 4 3 4 缓存信息的管理4 3 4 4 小结4 4 第五章e d r p 的实现4 5 5 1 反向代理模块的实现4 5 5 1 1 监听进程的工作4 5 5 1 2 接受进程的工作4 7 5 1 3 反向代理的流程4 8 5 1 4 过滤机制的实现5 2 5 2 负载调度模块的实现5 4 5 2 1 主调度进程的工作5 5 5 2 2 备份调度进程的工作。5 6 5 2 3 负载调度的算法5 7 5 2 4 热切换算法机制5 9 5 3 缓存管理模块的实现6 1 v - 、 目录 5 3 1 缓存进程的工作6 l 5 3 2 过滤函数的流程6 4 5 3 3 副本的可缓存性6 5 5 3 4 缓存一致性机制6 6 5 3 5 缓存替换策略6 8 5 4 小结6 8 第六章系统测试分析7 0 t 6 1 并发性测试7 0 6 1 1 测试环境简介7 0 6 1 2 测试方法结果7 0 6 2 可用性测试7 2 6 2 1 测试环境简介7 2 6 2 2 节点故障测试7 2 6 2 3 进程故障测试7 3 6 3 小结7 4 第七章总结与展望7 5 7 1 论文总结7 5 7 2 进一步展望7 5 致谢7 7 参考文献7 8 v i 第一章引言 - 、 1 1 课题相关研究背景 卜 第一章引言 随着计算机网络技术的高速发展,网络流量迅猛增长,越来越多的关键性业 务在网上开展,很多网站收到前所未有的工作负载,一些知名网站每天的访问量 都数以亿计。根据c n n i c 的统计报告【i 】,截至2 0 0 9 年1 2 月3 1 日,中国网民规模 达到3 8 4 亿人,网民的每周上网时间继续增加,人均增加了2 1 小时。 而在i n e m e t 上,是由w e b 服务器来负责为用户的请求提供服务。面对如此海 量的用户请求,单个w e b 服务器由于其自身处理能力的限制,很容易成为网络访 问的瓶颈。想要降低服务器负载,提高系统性能,最简单的方法就是升级该服务 器的软硬件配置,但是这种方法并不能彻底的解决问题。因为通常进行升级的过 程比较复杂,而且成本较高,更重要的是一台服务器并不能保证系统的可靠性, 一旦这台服务器发生故障,整个系统都崩溃了,这也就是所谓的单点故障。 还有一种比较好的方法就是采用服务器集群系统。服务器集群通常是指一组 运行相同软件的服务器组成的系统,但是在用户看来,整个集群就像只有一个服 务器在处理请求。那么,组建这样的服务器集群主要的优点有【2 l : l 、高可用性:当集群中某个服务器终止时,其它服务器可以继续提供服务, 不会影响到整个集群,提高了系统的可用性,避免了单点故障的问题。 2 、可扩展性:可以通过向集群中添加普通的服务器来扩展整个系统的性能, 非常的简单方便,也很廉价,性价比较高。 3 、负载均衡:将用户的请求连接相对均衡地分布在集群的每个服务器上,使 得所有服务器的负载大致相等,从而消除系统瓶颈,增加了吞吐量。 4 、分布性:集群中的服务器可以地理分布在不同的地方,可以使用户有机会 选择离自己较近的服务器来处理请求,减少了网络延迟。 组建服务器集群比较简单的方法就是使用反向代理服务器,其他的服务器集 群技术将在2 2 节中进行介绍。那么什么是反向代理服务器呢? 这需要先从代理服 务器说起。所谓代理服务器就是指介于客户端和w e b 服务器之间的,负责将客户 端请求转发给w 曲服务器,将w e b 服务器的响应转发给客户端的服务器【”。它是 客户端和w e b 服务器之间的桥梁、中间人,如图1 1 所示。 电子科技大学硕士学位论文 图1 i 代理服务器示意图 传统的代理服务器是和客户端在个内网中,将客户端隐藏在代理服务器之 后,作为客户端的出口去访问i n t e m e t ,如图1 2 所示。 图1 - 2 传统代理服务器示意图 反向代理服务器则是和w e b 服务器在一个内网中,将w e b 服务器隐藏在代理 服务器之后,作为i n t e m e t 的用户访问本地服务的入口,如图1 3 所示。 图1 3 反向代理服务器示惫图 反向代理服务器可以通过负载均衡技术将用户的请求均衡地调度到各个w e b 服务器上,而且还利用利用w e b 缓存技术加速用户的访问,并且由于外部用户不 能直接访问到w e b 服务器,所以它还能对w e b 服务器起到一个保护作用,同时还 可以监控用户的请求,做一些安全过滤的工作。 但是由于每次进行代理时,代理服务器都需要分别打开对客户端和对w e b 服 务器的两个连接,所以随着并发连接请求数量的增大,代理服务器的负载也会越 来越大,在最坏的情况下代理服务器也会成为系统的瓶颈。 那么,为了解决反向代理服务器的瓶颈问题,可以再次使用服务器集群技术, 2 p 第一章引言 然后结合负载均衡技术实现多台反向代理服务器的平行扩展。但是仅仅将这些反 向代理服务器组合在一起,让它们各自独立地进行负载调度和缓存加速的工作, 是对集群中代理服务器资源的一种浪费,不能充分地利用后端w e b 服务器的处理 能力和代理服务器的缓存空间,只有将各个代理服务器上的调度信息和缓存信息 都相互共享,才能最大程度地发挥整个反向代理服务器集群的系统性能。本文就 将介绍如何来设计并实现一个能够在各个代理服务器之间共享调度信息和缓存信 息的反向代理服务器集群。 1 2 课题相关研究现状 常见的反向代理服务器有以下几种: l 、s q u i d 4 1 :它是一款受到美国政府大力支持的自由软件。s q u i d 是一个代理 服务器和w e b 缓存服务器,除了支持h r r p 、f t p 、h t t p s 的代理高速缓存之外, 本身还做域名的高速缓存用以加快域名及其i p 地址的转换。s q u i d 还支持i c p 、 h t c p 、c a r p 、w c c p 等缓存通信协议,能够实现缓存集群,对代理服务器层次 结构提供了很好的支持。s q u i d 功能非常强大,除了反向代理,还实现了传统代理、 访问控制、身份验证、流量管理等功能,但是这样也导致s q u i d 过于重量级,配置 非常复杂,并且它在内存控制方面也不尽人意。 2 、v a n l i s h 【5 】:它是由f r e e b s d 的内核开发者之一的p o u l h e n n i n gk a m p 开发 的一款高性能的反向代理和h t t p 加速器。v a r n i s h 采用了“v i s u a lp a g ec a c h e 技 术,在内存的利用上比s q u i d 具有优势,它避免了s q u i d 频繁在内存和磁盘中交换 文件,因而性能更高。并且通过v a r n i s h 的管理端口可以使用正则表达式快速、批 量地清除部分缓存,这也是s q u i d 不具备的。但是v a r n i s h 还无法完全替换s q u i d , 因为它没有缓存检测机制,当内存满了后无法进行有效处理,一旦进程出现问题, 内存会释放出所有缓存内容,之后的请求都无法命中,并且在高并发状态下系统 负载会高于使用s q u i d 时的系统负载。 3 、a p a c h e e 6 】:它是a p a c h e 软件基金会的一个开源的h t t p 服务器,能够提供 稳定、高效、安全并且可扩充的h ”p 服务功能。a p a c h e 的反向代理功能是通过 m o d p r o x y 模块实现的,配置很简单,使用也比较方便。但是它对h t l 、p 1 1 请求 的缓存支持能力不够,缓存类型也很单一,并且由于a p a c h e 本身的并发连接数量 的限制,它对高并发的连接请求的处理也不够好。 4 、n g i n x t :它是由i g o rs y s o e v 为俄罗斯访问量第二的r a m b l e r r u 站点开发 3 电子科技大学硕士学位论文 的一个高性能的h t t p 和反向代理服务器,同时也是一个i m a p p o p 3 s m t p 代理 服务器。n 西1 1 ) 【以事件驱动的方式编写,性能非常好,并发处理能力强,也很稳定。 但是n g i n x 的反向代理功能也是通过扩展模块来完成的,所以也还不够完善,不 支持s e s s i o n 保持,对后端w e b 服务器的健康检查功能效果不好,而只支持通过端 口来检测,不支持通过l l r l 来检测。 总的来说,这些纯的或者通过模块实现的反向代理服务器都能较好地实现负 载调度和缓存加速的功能。但是当单个反向代理服务器的处理能力制约了整个集 群的处理能力,成为系统瓶颈的时候,这些反向代理服务器很难简单地组成一个 相互合作的反向代理服务器集群。它们即使是通过一些集群技术组合在一起,也 都是只能各自根据自己的调度信息和缓存信息进行独立的负载调度和缓存管理。 s q u i d 虽然可以利用缓存通信来实现缓存管理上的合作,但是它也没有实现调度信 息的共享。 1 3 本文的工作和创新 本文设计并实现了一个用来构建高并发、高可用、合作式的反向代理服务器 集群的e d r p 系统,使得集群中各个代理服务器之间能够共享调度信息和缓存信 息。e d r p 系统包括反向代理、负载调度和缓存管理三个功能模块,首先实现了一 个高并发的进程池,还有各种负载调度算法以及算法的热切换机制,最后还实现 了基于动态阈值自适应t t l 机制和l r u t h r e s h o l d 策略。 本文的创新主要有以下几点: l 、利用e r l a n g 语言的分布式机制搭建起集群的底层通信系统,利用e r l a n g 语言 的超轻量级进程实现高并发的进程池,利用o t p 的监督树搭建起整个e d r p 系统, 总之就是充分利用t e f l a n g o t p 平台的各种特性。 2 、使用过滤机制来扩展反向代理流程,通过缓存过滤器完成了缓存管理的功 能。过滤机制可以使得系统结构更加模块化,各个功能模块之间耦合度降低,提 高了系统的灵活性。 3 、采用合作式负载调度模型,使所有的代理服务器共享调度信息,并且设计 了集中式和分布式相结合的管理方式,提高了请求调度的效率和代理服务器集群 的可靠性。 4 、采用单层式缓存体系结构,使所有的代理服务器共享缓存信息,充分利用 整个集群的缓存空间,并且设计了集中式和分布式相结合的管理方式,并提高了 4 一一_ 第一章引言 副本查找速度和代理服务器集群的可靠性。 1 4 本文的内容和组织 全文共有七章,以下是各章内容的简介: 第一章是引言,介绍课题的相关背景和研究现状,并提出论文的主要工作和 内容组织。 第二章是相关技术概述,阐述代理服务器相关背景技术,分析了超文本传输 协议、w e b 缓存技术和服务器集群技术。 第三章是集群总体设计,首先对e d a n g 语言和o t p 系统进行介绍。然后讨论 了利用e r l a n g o t p 设计出的反向代理服务器集群应该具备哪些特性以及如何来搭 建这样的集群,最后介绍了e d r p 系统的总体框架。 第四章是e d r p 的设计,介绍了e d r p 系统的三个主要功能模块:反向代理、 负载调度、缓存管理的设计方案。重点讨论了服务器并发模型的设计,负载调度 模型的设计和缓存管理方式的设计。 第五章是e d r p 的实现,介绍了e d r p 系统三个主要功能模块:反向代理、 负载调度、缓存管理的具体实现。重点介绍了监听进程、接受进程、调度进程和 缓存进程的工作。 第六章是系统测试分析,着重对e d r p 系统的并发性和可用性这两方面的特 性进行了相应的测试和分析。 第七章是总结与展望,总结了e d r p 的设计与实现,也指出了e d r p 的不足 和未来发展方向。 电子科技大学硕士学位论文 第二章相关技术概述 本章将对代理服务器相关的一些技术如超文本传输协议、服务器集群技术和 w e b 缓存技术做简单的介绍。 2 1 h t t p 介绍 超文本传输协议【8 1 ( h y p e rt e x tt r a n s f e rp r o t o c o l ,h t t p ) 是一个分布式、协 作的、超媒体信息系统的应用层协议,它使用t c p 连接进行可靠的传送,默认端 口是8 0 。 自从1 9 9 0 年开始,h t l 甲就被w w w 全球信息系统所使用。它的第一个版本 h t t p 0 9 是一种简单的用于网络间原始数据传输的协议。后来由r f c1 9 4 5 t 9 】定义 的h t t p 1 0 在h t t p 0 9 的基础上作了些改进,允许消息可以使用m i m e 的格式, 并对请求和响应报文中的修饰符进行修改。但是h t t p 1 0 没有充分考虑分层代理、 缓存、持久连接需求或虚拟主机等方面的影响,所以由r f c2 6 1 6 定义的h t t p 1 1 在这些方面都作出了改进。 2 1 1 报文格式 h r r p 是基于请求和响应的协议,客户端和服务器建立连接之后会发送一个请 求给服务器,然后服务器将响应回送给客户端。所以h t r p 报文由客户端到服务 器的请求和服务器到客户端的响应组成的,如图2 1 所示,请求报文就是由请求行、 请求头和实体组成,而响应消息则是由状态行、响应头和实体组成。 请求报文格式:响应报文格式: 图2 - l 帅报文格式图 6 第二章相关技术概述 2 1 2 持久连接 大部分w e b 文档都是由若干个w e b 对象组成的。在h 1 v r p 1 1 以前,客户端 每请求一个w e b 对象都会建立一个到服务器的t c p 连接,请求完毕就关闭连接。 但是建立和断开t c p 连接的开销很大,请求含w e b 对象较多的w e b 文档时就会 极大加重网络负载。为了解决这个问题,h t t p 1 1 提出了持久连接,即客户端可 在一个t c p 连接上先后发送若干个h t t p 请求以获取相应的w e b 对象,当w e b 对象成功地被发送出去后,服务器将等待一段时间后才主动关闭t c p 连接,因为 在这段时间内用户有可能发送新的h t t p 请求。 这样就可以减少t c p 连接的次数,减少网络拥塞,从而提高网络带宽利用率。 而且在持久连接的基础上,还可以实现流水线操作,即客户端在发出一个请求之 后不等到响应的到来就继续发送其他的请求,服务器以收到请求的相同顺序来响 应这些请求。流水线操作可以减少客户端的等待时间,从而更好地提高t c p 连接 的利用率。 2 1 3 缓存机制 h t t p 中有很多头部来对缓存机制进行控制,比如p r a g m a :n o c a c h e 表示不要 使用缓存副本。而l a s t m o d i f i e d 和i f - m o d i f i e d s i n c e 可以用来进行条件请求,其 中l a s t m o d i f i e d 表示文件更新的g m t 时间,当客户端发送请求时,它会根据更 新时间加上i f - m o d i f i e d s i n c e ,服务器收到请求后,如果文件没有过期则直接返回 3 0 4 ,过期了则响应最新的文件。 条件请求可以减少一些不必要的数据传输,提高网络的利用率,但是这种基 于最后更新时间的条件请求方式存在一些缺陷,比如,有些文件需要频繁的更新, 但是内容可能没有发生变化,那么每次文件的更新时间变化后,不论其内容是否 发生了变化,客户端都会重新获得全部内容。这时候可以采取另一种条件请求方 法,使用e t a g 和i f - n o n e m a t c h ,它不是基于文件的最后更新时间,而是采用了一 串称为e t a g 的编码来标记内容,如果一个文件的e t a g 没有变化,就认为这个文件 的内容也一定没有更新。 h t t p 中还有一个e x p i r e s 头部,指定缓存到期g m t 的绝对时间,客户端在 缓存过期之前都不需要再询问服务器,直接使用本地缓存即可,这样可以节省带 宽和服务器的处理时间。但是当服务器和浏览器时间不一致时就会有问题,而且 一旦过期后忘记重新设置新的过期时间就会导致缓存失效。 7 电子科技大学硕士学位论文 h r r p 1 1 中还有一个头部用于弥补e x p i r e s 的不足,那就是c a c h e - c o n t r o l , 它的m a x a g e 指定了缓存过期的相对时间,单位是秒。它还可以用n o c a c h e 来强 制客户端在使用缓存副本之前先提交一个h 1 田请求到服务器进行确认,或者用 p r i v a t e 、n o s t o r e 等来禁用缓存。 2 2 服务器集群技术 2 2 1 集群技术概述 常见的服务器集群技术有以下四种【l o 】: l 、用户选择:如图2 2 所示,集群中每个服务器都分配一个不同的域名,由 用户自己来选择将请求发送到哪个服务器上。这种技术要求集群中每个服务器上 的内容都是完全一样的,所以很适合用来将服务器分布在不同的地方。但是这种 技术很容易导致各个服务器上负载失衡,并且由于所有服务器都对用户可见,会 带来不少安全风险。 6w e bw 曲 服务器服务器服务器 一: 。 图2 2 用户选择的服务器集群图 2 、d n s 轮转:如图2 3 所示,集群中的所有服务器都是对应同一个域名,但 是它们的i p 地址都不同,当用户向d n s 服务器查询口时,d n s 服务器会按照顺 序依次返回各个服务器的i p 地址。这种技术简单易实现,对用户透明,是使用范 围最广的集群技术,但是d n s 记录缓存有一定的更新延迟,如果某个服务器出现 故障可能会造成用户访问失效,如果将d n s 记录的刷新时间设置过短的话又会增 加网络的负载,而且简单的轮转调度不能根据服务器的不同或请求的不同来进行 8 笙三童塑叁垫查塑姿 一一 一。一 合理的负载均衡。 图2 - 3d n s 轮转的服务器集群幽 3 、前端调度:如图2 4 所示,集群中有专门的前端服务器作为集群对外接口, 其它的服务器都是后端。用户只能通过前端来访问集群,前端服务器收到用户的 请求之后,根据一定的调度算法选择一个后端服务器来处理请求。这个前端服务 器可以用f 5 公司的b i g i p 和c i s c o 公司的l 0 c a l d i r c c t o r 这样的交换机,也可以用 l v s 这样i p 负载均衡软件,或者直接使用反向代理服务器。l v s 使用的集群技术 将在2 2 2 小节中进行详细介绍。 图2 _ 4 前端调度的服务器集群图 9 前端 一啊l 电子科技大学硕士学位论文 4 、后端调度:如图2 5 所示,集群中没有专门的前端服务器,所有的服务器 都是后端服务器,既可以处理请求,也可以转发请求到其它的服务器上。分布式 包重写( d i s t r i b u t e dp a c k e tr e w r i t i n g ,d p r ) 机制就是使用这种技术,这样整个 集群都是分布式的,可以避免单点失效和单点瓶颈,而且重写者转发代价很小, 但是它的实现很复杂,需要修改服务器的操作系统。 2 2 2l v $ 集群技术 图2 5 后端调度的服务器集群图 l v s 【l - 2 j ( l i n u xv i r t u a ls e r v e r ) 是章文嵩博士等人在1 9 9 8 年5 月创建的l i n u x 虚拟服务器自由软件项目。该项目针对当前网络服务的需求,给出了基于i p 层和 基于内容请求分发的负载均衡调度方法,并在l i n u x 内核中实现了这些方法。它的 目标是提供一个基本的框架,使用一组高性价比的商品化服务器建立高可扩展的、 高可用的网络服务。 l v s 中实现了三种p 负载均衡技术和十种负载调度算法。下面主要介绍三种 i p 负载均衡技术:v s n a t 、v s t u n 、v s d r 。 l 、v s n a t :基于网络地址转换的负载均衡技术。在v s n a t 的集群系统中, 负载均衡调度器就是n a t 服务器,它通过网络地址转换技术实现负载均衡。当负 载均衡调度器接收到用户请求报文后,根据各个w e b 服务器的负载情况,动态地 选择一台服务器,然后修改请求报文中的目的地址为选中的w e b 服务器的i p 地址, w e b 服务器返回的响应也要经由负载均衡调度器恢复为原来的p 地址后再传给用 1 0 第二章相关技术概述 户。v s n a t 技术有个问题就是负载均衡调度器需要重写请求和响应的报文,容易 成为系统瓶颈。 2 、v s t u n :基于i p 隧道的负载均衡技术。在v s t u n 的集群系统中,所有 的用户请求报文都要发给负载均衡调度器。当负载均衡调度器接到请求报文后, 根据各个w e b 服务器的负载情况,动态地选择一台服务器,将请求报文封装在另 一个i p 报文中,再将封装后的i p 报文转发给选出的w e b 服务器。这个服务器收 到报文后,先将报文解封获得原来的报文,处理这个请求,然后将响应报文直接 返回给客户。这样,w e b 服务器将响应客户的报文不经过负载均衡服务器直接返 回给客户,避免了v s n a t 中请求和响应报文都要重写的问题,大幅度地降低了 负载均衡调度器的工作量。但是v s t u n 要求后端w e b 服务器也必须拥有合法的 i p 地址,并且所有的服务器都必须支持口隧道协议。 3 、v s d r :基于直接路由的负载均衡技术。在v s d r 的集群系统中,所有的 用户请求报文也是发送到负载均衡调度器。当负载均衡调度器接收到请求报文后, 根据集群中各个w e b 服务器的负载情况,动态地选择一台负载较轻的服务器。然 后通过改写请求报文的m a c 地址为选中的w e b 服务器的m a c 地址,将请求发送 到这个服务器,它也不经过负载调度器直接将响应发给用户。同v s t u n 技术一 样,v s d r 技术可以大幅度地降低负载调度的工作量,提高整个集群的可伸缩性 和系统的吞吐量。并且这种方法不要求集群中的w e b 服务器必须支持i p 隧道协议, 但是为达到m a c 地址的欺骗的效果,要求负载均衡调度器与所有后端服务器都在 同一个物理的网段中。 2 3w e b 缓存技术 根据缓存所在的位置不同,w e b 缓存可分为三种:客户端缓存、服务器缓存 和代理缓存l j 。 l 、客户端缓存:它通常是使用浏览器内置的缓存功能,它的缓存一致性策略 和替换策略都比较简单。客户端缓存的优点是能够在一定程度上减少服务器的计 算开销,减少带宽的占用,缺点是缓存命中率较低,存储空间小,而且只能为一 个客户服务。 2 、服务器缓存:它是w e b 服务
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年标准自然人借款合同模板
- 2025简化版房屋租赁合同
- 2025辽宁沈阳市浑南区森工林业集团有限公司招聘56人笔试参考题库附带答案详解
- 2025江苏南通市崇川区潜慧恒馨企业发展有限公司招聘100人笔试参考题库附带答案详解
- 2025山东祥泰商贸有限公司招聘7人笔试参考题库附带答案详解
- 金融基金考试试题及答案
- 采茶劳务合同协议书范本
- 合同变更书面协议书
- 洗井合同协议书图片
- 仓库储存合同协议书范本
- 大学生职业生涯规划与就业创业指导(四川水利职业技术学院)知到智慧树答案
- 山东师大附中2025届高考英语一模试卷含解析
- 海洋能建结构优化
- JJF(浙) 1126-2016 风速变送器校准规范
- 七年级历史下册 第一单元 隋唐时期繁荣与开放的时代 第2课 从贞观之治到开元盛世教学设计2 新人教版
- AI教育项目商业计划书
- 2024-2030年全球及中国银离子抗菌敷料市场营销渠道及应用领域分析研究报告
- 2024中考语文《西游记》历年真题专练(学生版+解析版)
- DL-T 850-2023 电站配管标准规范
- JGJ100-2015车库建筑设计规范
- 传送带模型中的相对运动与能量-2024年高考物理二轮热点模型 含答案
评论
0/150
提交评论