已阅读5页,还剩62页未读, 继续免费阅读
(电磁场与微波技术专业论文)基于berkeley+db的集群服务器研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 随着互连网的各类应用不断丰富,服务器端的工作量也在不断的增大,尤其 是w e b 服务器。对予些商业服务来说,服务中凝或者是关键数据的丢失会造 成很大的损失。由于以前的服务器是通过多个单独文件的形式存储数据的,但是 服务器的i o 资源是有限的,随着客户请求的不断增多,服务器会表现的反应缓 慢,严重时会使服务器瘫痪。为了解决这些问题,本论文将b e r k e l e yd b 数据摩 系统与集群技术应用于服务器系统,提出了基于b e r k e l e yd b ( b d b ) 数据库系 统的集群服务器系统。 b d b 集群服务器是将b e r k e l e yd b 数据库系统应用到集群系统中组成一个 基予l i n u x 的服务器系统。使用集群技术可以获得稳定、可靠、可伸缩的服务器 系统,应用b e r k e l e yd b 数据库系统可以获得高效的数据处理系统。b d b 集群服 务器系统将上述优势相结合,因而使其具有可靠、稳定、易扩展、成本低、安全、 高效的特点。 本论文首先介绍了w e b 发展现状以及研究的意义,然后研究了b d b 集群 服务器系统的构架、系统结构、工作原理、工俸方式。论文详缨讨论了每一部分 功能以及设计方法。最后介绍了b d b 集群服务器的系统调试结果。 本文在a p a c h e 的基础上编写实现特定功能的扩展模块,并将其加载到 a p a c h e 上,闻时去掉一些在设计中并不需要的功能模块。侵用扩震模块可以实 现论文中需要的功能,去掉某些模块在a p a c h e 启动的时候就不会为这些模块分 配系统资源了,达到节约系统资源酶嚣骑。本文将b e r k e l e yd b 豹复制技术、数 据恢复机制、锁机制和内存共享机制应用到这个系统中,保证了系统数据的完整 性、安全性,同时提离了数据操作的效率。本文通过c 语畜编写基于t c p i p 协 议的服务器间通信程序,简化服务器间通信数据的格式,有效的提高了服务器闻 的通信效率。 本文使用了l i n u x 下的多线程来设计运行于服务器上的服务程序,编写了爝 于监测服务器运行的脚本程序,以及编译程序,使用a b 测试工具和自己编写的 测试程序对整个系统进行了溅试。 关键词:集群 b e r k e l e yd b 数据库系统 多线程 数据恢复 复制技术 a b s t r a c t w i t ht h ei n c r e a s i n gi nv a r i o u sa p p l i c a t i o n so fi n t e m e t t h es e r v e rh a st od om u c h m o r ew o r k , p a r t i c u l a r l yi nw e bs e r v e r 。i ns o m eb u s i n e s ss e r v i c e s ,t h eo u t a g e so fs e r v i c e o rt h el o s so fk e yd a t aw i l lr e s u l ti ng r e a tl o s s t h e s e 弛ef o r m e rs e r v e r ss t o r e dd a t ai n m a n ys e p a r a t e dd o c u m e n t s , b u tt h ei o r e s o u r c e so fs e r v e ri sl i m i t e d , w i t ht h e i n c r e a s i n gi nc u s t o m e r sr e q u e s t ,t h es e r v e rw i l lb e c o m es l o w e ri nr e a c t i o n ,o rb r o k e n d o w ni ns e r i o u se m e r g e n c e s i no r d e rt or e s o l v et h i sp r o b l e m ,i nt h i sp a p e rw eu s e b e r k e l e yd ba n dc l u s t e rt e c h n o l o g yi ns e r v e rs y s t e ma n dt h i si sc a lc l u s t e rs e r v e r b a s e do nb e r k e l e yd b t h eb d bc l u s t e ri st h r o u g hu s i n gb e r k e l e yd bi nc l u s t e rs y s t e mt of o r ma s e r v e rs y s t e m t h eu s eo fc l u s t e rt e c h n o l o g yc a l l g e ts t a b l e ,r e l i a b l e ,e x p a n d a b l e s e r v e rs y s t e m , a n dt h eu s eo fb e r k e l e yd bd a t a b a s es y s t e mc a ng e tm o r ee f f e c t i v e d a t ap r o c e s s i n gs y s t e m 。g e tt h e s ec h a r a c t e r i s t i c st o g e t h e r t h eb d bc l u s t e r s y s t e m i sr e l i a b l e ,s t a b l e ,e x p a n d a b l e ,l o w e ri nc o s ta n de f f e c t i v e t h i sp a p e rf i r s ti n t r o d u c e dt h ec u r r e n td e v e l o p i n gs i t u a t i o na n dt h em e a n i n go f w e bs e r v e r 。t h e ns t u d i e dt h es y s t e ms t r u c t c r ,t h ew o r k i n gp r i n c i p l e ,t h ew o r k i n gw a y s o ft h eb d bc l u s t e rs e r v e r i nt h i sp a p e rw ed i s c u s s e df u n c t i o na n dd e s i g nm e t h o do f e a c hp a r t l a s t l y w ei n t r o d u c e dt e s t i n gr e s u l t so fb d bc l u s t e rs e r v e r i nt h i sp a p e rw ew r o t es o m ea p a c h ee x t e n s i b l em o d u l e st oa c h i e v es o m e f u n c t i o n sa n dt h e nl o a d e dt h e mi n t oa p a c h es e r v e ru n d e rr u n t i m e 。a tt h es a m et i m e d e l e t e ds o m ea p a c h em o d u l e st h a ta r en o tn e e d e d s ot h es y s t e mw o u l dn o tg e ta n y s y s t e mr e s o u r c ef o rt h i sm o d u l e sw h e na p a c h es e r v e rw a ss t a r t e d 。i nt h i sw a ys o m e s y s t e mr e s o u r c ew e r es a v e d i nt h i sp a p e r , b e r k e l e yd b sr e p l i c a r i o nt e c h n o l o g y , r e c o v e r ym e c h a n i s m , l o c km e c h a n i s m ,m e m o r ys h a r i n gm e c h a n i s ma r eu s e di nt h i s s y s t e m t h eu s eo ft h e s et e c h n o l o g i e sc a l lk e pt h ei n t e g r a l i t ya n dt h e s e c u r i t yo fd a t a i ns y s t e m , a tt h es a m et i m ei m p r o v i n gt h ee f f i c i e n c yo fd a t ao p e r a t i n g i nt h i sp a p e rw e w r o t ec o m m u n i c a t i n gp r o g r a mb e t w e e ns e r v e r sb a s e do nt c 彰豫f r i t hc ,s i m p l i f y i n g f o r m a t so fc o m m u n i c a t i n gd a t ab e t w e e nc a ne f f e c t i v e l yi m p r o v et h ec o m m u n i c a t i o n e f f i c i e n c yb e t w e e ns e r v e r s i nt h i sp a p e r , w eu s e dl i n u x sm u t i t h r e a dt od e s i g ns e r v i n gp r o g r a m sw o r k i n g o ns e r v e r s ,w r o t es h e l lp r o g r a mt om o n i t e rs e r v i n gp r o g r a m , w r o t em a k e f i l et oc o m p i l e p r o g r a m , u s e da bt e s t i n gt o o la n dt e s t i n gp r o g r a m t ot e s tt h ew h o l e s y s t e m k e yw o r d s :c l u s t e r b e r k e l e yd b m a s t e rs l a v e r e p l i c a t i o n 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作和取得的 研究成果,除了文中特别加以标注和致谢之处外,论文中不包含其他人已经发表 或撰写过的研究成果,也不包含为获得蠢壅盘茎葳其箍教育机稳的学位或涯书 而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均己在论文中作 了明确的说明并表示了谢意。 学位论文作者签名;蚤l 诗啤 签字日期: a 劲1 年多月7 君匿 学位论文版权使用授权书 本学位论文作者完全了解蕉茎盘茎有关保鼹、使用学位论文黪规定。特 授权基生盘茎可以将学位论文的全部或部分内容编入有关数据库进行检索,并 采用影印、缩印或扫摧等复制手段保存、汇编以供查阅和借阕。同意学校向国家 有关部门或机构送交论文的复印件和磁盘。 ( 保密的学位论文在解密后适用本授权说明) 学位论文作者签名:捌瓣 签字爵期:二必1 年占月 g 圈 导师签名:台垒 签字日期:知1 年月j 穸因 第一章绪论 第一章绪论 1 1 基于集群技术的服务器研究的意义 当今互联网的各类应用不断丰富,服务端特别是w e b 服务端工作量迅速增 大。为了顺应这静应用需求,对w e b 服务器的性熊要求越来越高,蔼单枫服务 器的性能增长总是有限度的,所以现在访问量很大的网站一般都使用集群技术。 与单机服务器相比,集群技术可以提供更加稳定、可靠、高效的服务。 大部分网蛞都需要提供每天2 4 小时、每星期7 天的服务,对电子商务等网 站尤为突出,任何服务中断或关键性的数据丢失都会造成直接的商业损失。所以, 这对网络服务的可靠性提出了越来越高的要求。 集群技术目前在国内外的应用非常广泛,在很多大的网站上都使用了集群技 术来为用户提供服务,而其中最成功的就是g o o g l 至! 了,如果算上机器翻译, g o o g l e 的w e b 索弓| 就将变得极为巨大,共包括6 0 亿个文件、图像和条目,同样, 它的计算资源也将变得极大。目前,g o o g l e 正以拥有数千个l i n u x 服务器组成的 集群,这也是全邀界最大的l i n u x 服务器集群之一两闻名。 c l u s t e r 集群技术是指一组相互独立的服务器在网络中表现为单一的系统,并 以单一系统的模式加以管理。此单一系统为客户工作站提供高可靠性的服务。大 多数模式下,集群中所有的计算机拥有一个共同的名称,集群内任一系统上运行 的服务可被所有的网络客户所使用n 刳。c l u s t e r 必须可以协调管理各分离的组件的 错误和失效,并可透瞬地向c l u s t e r 中加入组件。c l u s t e r l 勾各节点服务器通过内部 局域网相互通讯。当一台节点服务器发生故障时,这台服务器上所运行的应用程 序将在另一节点服务器上被自动接管。当一个应用服务发生故障时,斑罔照务将 被重新启动或被另一台服务器接管。当以上的任一故障发生时,客户都将能很快 连接到新的应用服务上。 由于很多大公司集群技术的实现细节并没有对外公开,使得其他公司的研究 都要从头做起,极大的浪费了资源。而且随着用户的不断增加,用户请求会成指 数增长,这会慰集群系统豹性能提出薪的挑战。 集群系统是一种提高服务器性能的有效方法。通过将集群技术和b d b 数据 库系统楣结合来设计服务器系统世界范孱内现在g o o g l e 实现了比较全面的功 能。 第一章缝论 b e r k e l e yd b 作为一种嵌入式数据库系统在许多方面有着独特的优势。首先, 由于其应用程序和数据库管理系统运行在相同的进程空间当中,进行数据操作时 可以避免繁琐的进程间通信包括建立s o c k e t 连接等,因此耗费在通信上的开销自 然也就降低到了极低程度。其次,b e r k e l e yd b 使用篱单的瀚数调用按日来完成 所有的数据库操作,而不是在数据库系统中经常用到的s q l 语言。这样就避免 了对结构化查询语言进行解析和处理所需的开销。 通过该系统的设计,可以解决实际应用中,随着用户请求不断增加服务器性 能不能满足要求的问题。本设计所采用的方法是随着集群技术的不断发展,而提 出的一种提高殿务器性能的新方法。通过使用集群技术不但熊够实现稳定,可靠, 可伸缩的服务器系统,而且显著降低了服务器系统的构造成本。 1 2 本文章节安排及主要工作 本论文章节安排如下: 第一章对本设计的意义以及具体的工作做了概述。 第二章从整体上对系统的架构、工作原理、工作方式等方面对整个系统傲了 介绍。 第三章到第五章是按照整个设计的组成部分分成了三个大的部分蒸分裂进 行介绍。 第三章介绍了l i n u x 操作系统、a p a c h e 服务器软件、h 鞭p 协议、自己编写 的a p a c h e 扩展模块以及在设计中的应用。其中详细介绍了自己编写的a p a c h e 扩展模块的功能的加载方法。 第四章介绍了b d b 数据库系统的性麓以及在设计中的佟用,其中详细介绍 了b d b 的使用方法以及设计中使用的b d b 数据库系统中r e p l i c a t i o n 特性。 第五章主要分绍了m a s t e r 与s l a v e 之润的通行方式和通信程序。详缨分绍了 通信程序的工作原理、通过t c p i p 进行服务器间通信的具体过程、多线程在设 计中的使用。 第六章从整个系统的具体实现来介绍整个设计。其体介绍了整个设计的系统 组成、主要的程序块、将这些组成部分有机的结合起来使之高效的工作的具体方 法。 本论文首先介绍了w e b 发展现状以及研究的意义,然后研究了b d b 集群 系统的构架、系统结构、工作原理、工作方式。论文详细讨论了每一都分功能以 及设计方法。最后介绍了b d b 集群服务器的系统调试结果。 本文在a p a c h e 的基础上编写实现特定功能的扩展模块,并将其加载到 2 第一章绪论 a p a c h e 上,网时去掉一些在设计中并不需要的功能模块。使用扩展模块可以实 现论文中需要的功能,去掉某些模块在a p a c h e 窟动的时候就不会为这些模块分 配系统资源了,达到节约系统资源的目的。本文将b e r k e l e yd b 的复制技术、数 据恢复机制、锁机制秘内存共享桃制应用剃这个系统中,保证了系统数据的完整 性、安全性,同时提高了数据操作的效率。本文通过c 语言编写基于t c p i p 协 议的服务器闻通信程序,筒化服务器间通信数据的格式,有效的提高了服务器闻 的通信效率。 本论文通过具体分析以及性能的比较,最终决定使用l i n u x 操作系统、 a p a c h e 服务器软件、自己编写的a p a c h e 扩展模块来实现设计中煞功能、b d b 数据库系统、使用多线程来实行并发处理。主要作是整个系统的架构,定制 a p a c h e 模块,编写a p a c h e 扩展模块,m a s t e r 服务器端主要编写了服务程序 m a s t e r c ,检测程序m o n i t o rm a s t e r p l ,编译m a s t e r c 的m a k e f i l e 。s l a v e 服务器端 主要编写服务程序s l a v e - c ,检测程序m o n i t o rf l a v e p l ,编译f l a v e e 的m a k e f i l e 。 另外还要编写m a s t e r 与s l a v e 之闻的通信程序。 第二搴b d b 集黎羧务器系统鞫造 第二章b d b 集群服务器系统构造 2 1b d b 集群服务器系统架构 2 1 1 系统设计思想 在网络不断发展的今天,考虑到一个大型的网站,每天的访闻量是非常大的, 所以网站的服务器处理的客户请求也是非常大的,而以前这些数据是通过很多个 独立的文件存储在各个服务器孛,当用户向服务器发出请求的时候,例如用户访 问某个网页的时候就会对给网页所在的服务器发出访问请求,请求通过网络传输 到相应的服务器上,服务器接收请求,然后对请求进行处理,并在服务器上读数 请求所要得到的数据,以h t t p 格式发送到客户端。然后在服务器的每个访问前端 加上段c a c h e ( 这个c a c h e 中的数据有效性是有时间限制的,超过这个时间限 制就被从c a c h e 中删除) ,这个c a c h e 用米缓存最近段时阀内服务器对客户请 求的应答数据。一旦其他客户有相同的请求时,服务器就会检测c a c h e ,如果c a c h e 孛缓存的数据有新客户请求所要得到的数据,那么服务爨可以壹接从c a c h e 中取 数据,而不用弭去读服务器上相应的文件,这样就缩短了服务器对用户请求的响 应对闯,因为读缓冲区的速度远远大于读文件的速度。这对提高服务器的性能很 有帮助。通过c a c h e 这种方法来减轻i o 愿力,尽管可以起到一定的作用,但是 操作系统的i o 资源是有限的,随着用户请求的增加,需要读的文件也就增多了, 同对打开的文件描述符瞧不断增加,容易造成打开文件猛述符过多,霹随着打秀 的文件描述符的增多服务器的反应会变慢,严重时会使服务器瘫痪。 本论文可以解决实际虚用中,随着用户请求不断增加对服务器性能不能满足 要求的问题。随着集群技术的不断发展,丽提出的一种新的方法来提高服务器性 能。集群技术的应用不但获得了稳定的,可靠的,可伸缩的服务器系统,而且使 整个服务器系统的成本变的非常低。 一 使用集群技术可以使服务器提供更加可靠和稳定的服务,使用b d b 数据库 可以提供更加快速的数据访问和查谗速度,通过将集群技术和b d b 数据结合霹 以便服务器更加稳定和高效。基于集群技术的服务器能够处理形式为:k e y - - v a l u e 的数据请求,可以被应用在那些数据格式比较简单的客户请求方面。由于使用了 集群技术,集群中的个别服务器瀣现故障的时候服务并不会终止,丽出于b d b 4 第二章b d b 集群服务器系统构造 数据库的一些特性使得读取存储在b d b 数据库中数据比读取文件中数据快很 多,尤其是读取大量数据的时候。 2 1 。2b d b 集群服务器系统结构 i i a s t e r 上的知a c h a 接收多游数据 接受请求与返回应答 豳2 - 1b d b 集婺服务器系统绦梭鋈 图2 - 1 所示的系统结构中,m a s t e r 和s l a v e 都是服务器,只是m a s t e r 和s l a v e 所完成的任务不同。在所有的服务器上都安装了a p a c h e 服务器软件、b d b 数据 5 第二牵b d b 集嚣服务器系统构造 库软件、以及服务程序。其中交换机是用来将来自客户的所有请求均缴的分配绘 所有的s l a v e 来处理,强的是防止某一台s l a v e 的蘧力过大。 2 1 3b d b 集群服务器系统工作方式 如上图2 1 所示,整个系统就像黑匣子一样,只留出了两个接口,其中一个 接嚣是诖m a s t e r 接收从外部酶其它服务器p o s t 劐m a s t e r 豹数据,m a s t e r 会通过 b d b 数据库的r e p l i c a t i o n 特性将接收的数据同步到右边的所有s l a v e 上的b d b 数据库中,同时m a s t e r 也会将接收到的数据存储到自身的b d b 数据麾中。 客户请求会首先通过右边的交换机,交换机会计算分配给每一个s l a v e 的请 求数,然后将这个请求分配给含有请求数最少的那个s l a v e 。s l a v e 对请求进行处 理,然后将处理结果返瞬给客户。所有的s l a v e 都是并发工作的。 2 2b d b 集群系统工作原理 在系统的测试中使耀了十台服务器。舞以现在就以十台力铡。 十台服务器,其中台是作为m a s t e r ,而剩下的九台是作为s l a v e 。 九台s l a v e 服务器可以通过本机的a p a c h e 来处理用户请求,有一台交换机 通过轮询的方式来给这九台服务器分配用户请求,九台服务器是并行工作的。这 九台s l a v e 服务器中的b d b 数据库中存储的数据是相同的,而且它们具有相同的 处毽功麓,所以来自客户的请求可以被分酝到这九台s l a v e 巾的任意一台进行处 理。而这台交换机可以通过九台服务器上处理请求队列中排列的请求的多少,来 决定新来的请求分配绘哪个服务器,从而达到了平衡负载的作用。 十台服务器所存储的数据是相同的,在这十台服务器中选一台性能较好的服 务器作为m a s t e r ,这些服务器分放在两个不同的机房,通过内部专线连接,这样 在一个机房发生灾难时,它们畿互为备份。 m a s t e r 的作用是接收外界写入的数据,然后将数据存入本机的b e k e r l e yd b 数据库中,同时透过b e k e f l e yd b 的r e p l i c a t i o n 机制将数据传输给所有的s l a v e , 达到更新数据的目的,m a s t e r 虽然也可以像s l a v e 那样来处理客户请求,但为了 减轻向多台s l a v e 同步数据的压力,并不打算让它来处理客户请求。需要说明的 是只有m a s t e r 可以接收外界数据来更新数据库,s l a v e 只能复制来自m a s t e r 数据, s l a v e 并不能接收来自外部传来的数据,也不能修改m a s t e r 传给它们的数据,所 以s l a v e 孛酶数据只是瘸来被读取来响应震户请求翡。也就是说m a s t e r 是可写的 而s l a v e 是只读的。 6 第二章b d b 集群歉务器系统构造 通过这种方式,如果十台服务器中有个别的服务器发生故障,丽其他的服务 器还在运行,那么服务就不会中断,也就是说只要不是所有的服务器同时出敌障, 服务就不会停止。这就提高了服务器的稳定性和可靠性。 这种结构可以很容易进行扩展,如果用户请求进一步增加了,使得现有的服 务器系统不能满足要求的时候,只要将相应的应用软件装到台服务器上,然后 把这个服务器连到这个系统中就可以成为这个系统中的一个成员了,从面与原来 的那些服务器并发的工作,来处理用户请求,这就是该系统的可扩展性,而且这 种扩展并不需要改变原有的服务器系统,所以具有很好的可扩展性。 2 3 本章小结 本章主要从介绍了这个系统的设计思想,系统结构,工作原理,以及工作方 式凡个方面对系统的整体进行了说鹱。在接下来的章节会详缀说明各主要功能模 块的实现细节。 在整个系统中,如果有个别的s l a v e 出现故障的时候,那些没有出现故障的 s l a v e 可以继续提供服务,所以服务并不会中断。但是如果m a s t e r 出现故障的话, 那么就无法接收其他服务器p o s t 过来的数据,那么s l a v e 上的数据就无法更新 了。 b d b 数据库有竞选这一特性,这里解释一下竞选的概念,由于m a s t e r 和s l a v e 在这个系统中所起的作用是不同的,面m a s t e r 爨| j 具有更关键的作用,因为只宥 一台m a s t e r ,一旦m a s t e r 瘫痪了,那么整个系统就无法从外界接收到数据了, 也就无法更新系统中所有的服务器了。所以必须采取一种措施来保证任何时候到 必须有m a s t e r 的存在。 理论上,通过b d b 的竞选特性,九台s l a v e 会定期的检测是否m a t e r 可以 歪常工作,一羼检测到m a s t e r 不能正常工作,那么九台s l a v e 就会在它们之孛选 择一个性能比较好的作为m a s t e r 继续工作。 在实际的测试中,将b d b 的竞选机制用到这个系统中的时候,照说可以进 行竞选,但是并不能稳定执行,在多次测试中,系统有时会表现出无法选择新 m a s t e r 。多次查找始终没有发现问题所在,所以在该系统去掉了竞选这一机制, 通过编写一些监测程序来定期检查m a s t e r 服务程序,一旦m a s t e r 服务程序出现 问题,那就重新启动服务程序,这个检测程序在后面的章节中会详细介绍。 7 第三章a p a c h e 模块编写 第三章a p a c h e 模块编写 本章主要介绍a p a c h e 服务器软件在b d b 集群中的用途。由于具体设计的需 要,一些功能a p a c h e 模块无法实现,所以在设计中添加了自己设计的a p a c h e 模块,这一章中会介绍a p a c h e 模块的编写过程和如何将编写好的模块加载到 a p a c h e 服务器软件上。 开发b d b 集群服务器系统使用了l i n u x 操作系统和a p a c h e 服务器软件,下 面分别介绍一下l i n u x 操作系统和a p a c h e 。 3 1l i n u 操作系统 3 1 1l i n u x 操作系统简介 l i n u x 是一种开放源代码的,免费的,能够运行在大部分p c 机上的操作系 统。它能够在p c 机上实现u n i x 的全部特性,具有多用户,多任务的能力。这 个系统是可以皇皇簧播的,圭全世界无数个程序设诗者进行设计和实现,并基 l i n u x 的开发以及它的源代码是在g n u ( g e n e r a lp u b l i cl i c e n s e 一般公共许可) 的 保护下的,符合p o s i x 标准的操作系统。它们对每个人都是完全免费的,可以 根据自己的需要对操作系统进行必要的修改。 l i n u x 用途广泛,包括网络,软件开发,用户平台等等,被认为是一种高性能,低 成本豹可以替换其他昂贵操作系统的系统。 3 。1 2l i n u x 的特点 l i n u x 操作系统在短短的几年之内得到了非常迅猛的发展,这与l i n u x 具有 翡良好特性是分不开的。l i n u x 毽含了u n i x 的全部功能和特性。简单的说,l i n u x 具有以下主要特性: l 开放性 开放性是指系统遵循世界标准规范,特别是遵循开放系统互连( o s i ) 国际 标准。凡遵循国际标准所开发的硬件和软件,都能彼此兼容,可方便地实现互连。 2 多震户 s 第三章a p a c h e 模块编写 多用户是指系统资源可以被不同用户各自拥有使用,即每个用户对自己的资 源( 例如:文件,设备 有特定的权限,匿不影响。l i n u x 和u n i x 都其有多用 户的特性。 3 多任务 多任务是现代计算机的最主要的一个特点。它是指计算机同时执行多个程 序,焉且各个程序的运行互相独立。l i n u x 系统调度每一个进程平等地访阀微处 理器。由于c p u 的处理速度非常快,其结果是,肩动的应用程序看起来好像在 并行运行。事实上,从处理器执行一个应用程序中的一组指令到l i n u x 调度微处 理器褥次运行这个程序之阀只有很短的时间延迟,用户是感觉不塞来髓。 4 良好的用户界面 l i n u x 良用户提供了两赞界西:翔户界蘧和系统调用。l i n u x 的传统震户界 面是基于文本的命令行界面,即s h e l l ,它既可以联机使用,又可存在文件上脱 机使用。s h e l l 有很强的程序设计能力,用户可方便地用它编制程序,从而为用 户扩充系统功能提供了更高级的手段。可编程s h e l l 是指将多条命令组合在一起, 形成一个s h e l l 程序,这个程序可以单独运行,也可以与其他程序同时运行。 系统调用给用户提供编程时使用的爨面。震户可以在编程时直接使用系统提 供的系统调用命令。系统通过这个界面为用户程序提供低级、高效率的服务。 5 设备独立性 设备独立性是指操作系统把所有外部设备统一当作成文件来看待,只要安装 它们的驱动程序,任何用户都可以像使用文件一样,操纵、使用这些设备,而不 必知道它们的具体存在形式。 l i n u x 是具有设备独立性的操作系统,它的内核具有高度适应能力,随着熙 多昭程序员加入l i n u x 编程,会宥更多硬件设备加入到各种l i n u x 内核和发行版 本中。另外,由于用户可以免费得到l i n u x 的内核源代码,因此,用户可以修改 内核源代码,以便适应新增加的外部设备。 6 供了丰富的网络功能 完善的内置网络是l i n u x 的一大特点。l i n u x 在通信和网络功能方面优于其 他操作系统。其德操作系统不包含如此紧密遗和悫核结合在起的连接网络的能 力,也没有内置这些联网特性的灵活性。而l i n u x 为用户提供了完善的、强大的 网络功能。 7 可靠的系统安全 l i n u x 采取了许多安全技术措施,包括对读、写进行权限控制、带保护的予 系统、窜计跟踪、核心授权等,这为网络多用户琢境中的用户提供7 必要的安全 保障。 。 9 第三搴a p a c h e 模块编雩 8 良好的可移植性 可移植性是指将操作系统跌个平台转移到勇一个平台使它仍然能按其囱 身的方式运行的能力。 l i n u x 是种虿移植昀操作系统,麓够在歇微型计算机到大型计算机的饪何 环境中和任何平台上运行。可移植性为运行l i n u x 的不同计算机平台与其他任何 机器进行准确丽有效的通信提供了手段,不需要另终增加特殊的和昂贵的通信接 口。 3 2a p a c h e 勇爱务器软件 a p a c h e 愚一种开敖源代码的嚣疆pw e b 服务器,可以运行在大部分计算机 操作系统中,快速、可靠并且可通过简单的a p i 来进行扩展,由于其多平台和较 高的安全性焉被广泛馒耀。在b d b 集群串就是通过a p a c h e 的一些a p i 来编写扩 展模块的。 a p a c h e 是由世界各地的爱好者共同开发的,而由于其源代码开放,可以根 据自己的需要来修改源代码以实现特定的功能。a p a c h e 的特点是简单、速度快、 性能稳定,并可做代理服务器来使用。 a p a c h e 的主要特征是:可以运行在所有计算机平台,支持最薪盼 疆疆l ,1 协议,简单而强有力的基于文件的配置;支持通用网关接口c g i ,支持虚拟主 机,支持h t t p 认证,集成p e r l 脚本编程语言,集成的代理服务器,具有可定制 的服务器日志,支持服务器端包含命令( s s i ) ,支持安全s o c k e t 层( s s l ) , 用户会话过程的跟踪能力,支持f a s t c g i ,支持j a v as e r v l e t s 。 a p a c h e 有非常好的跨平台性,它完成了许多基本的功麓,如i 0 、肉存分配 等,这些接口都是与具体平台无关的,因此,只要对现有的a p a c h ew e b 服务器 进行较少豹开发帮配置互作,就能够构建一个可 率缩系统;同时,a p a c h e 尽可熊 使用简单的结构和算法,这不仅使对它的理解和维护相对容易,还提高了系统稳 定性瞻 。在所有的操作系统中,a p a c h e 服务器软件对l i n u x 支持是相当完美的。 3 3 编写a p a c h e 模块 3 3 1h t t p 协议 h t t p ( h y p e rt e x tt r a n s f e r p r o t o c 0 1 ) 是w e b 应用的基础协议,w e b 应用通过该 协议传送某种类别的信息,其中包括文本、声音、图像和视频等各种多媒体文件。 l o 第三毒a p a c h e 模块编写 为了保证服务的可靠,尽管h t r p 规范没有明确的规定,但现在的w 曲服务器 均采用可靠的t c p 作为h t t p 的承载协议。 h t t p 规定协议双方采用客户服务器模式工作,每个w e b 网站运行h t t p 缀务器( 也称w e b 服务器) ,它通常监听t c p 的8 0 号瑞墨,接收来自客户端( 也 称浏览器) 的连接请求。一旦监听到连接建立请求并建立t c p 连接之盾,浏览器 就向服务器发避浏览某个页面的请求,服务器接着返回所请求的页面作为响应。 最后,t c p 连接就被释放。 h t t p 是个面向事务( t r a n s a c t i o n od e n t e d ) 的客户服务器协议。虽然h t t p 使 用了t c p ,毽h t p 协议怒无状态的( s t a t e l e s s ) 。每个攀务独立进行处理,事务开始 前建立t c p 连接,事务完成后立即释放t c p 连接。缀然使用了面向连接的t c p 的 服务,但是h t t p 本身是无连接的【3 l 。 3 3 2a p a c h e 工作原理 f 口f l 【融l 【 圈3 - 1a p a c h e 工作原理图 a p a c h e 憝一种k 霸滢服务器软件,当a p a c h e 被启动戬藤,它会在后台打开 一个守护进程( d a e m o n ) ,这个进程用来监听( 1 i s t e n ) 来自客户端浏览器的t c p i p 连接,如果有连接的话,它就对这个连接传输过来的u r l s 进行识别,如果是会 法的话,那么a p a c h e 会分析请求参数,然后根据这些参数给客户端返回客户想 第三耄a p a c h e 模块编写 要褥到的数据。a p a c h e 可以提供很多服务,所以它会同时打开好几个守护进程。 a p a c h e 的工作原理图如图3 - 1 所示。 图3 - 1 中的每一个r e q u e s tl o o p 都对廒了一个守护进程,而每一个守护进稷 又对应了一个其体豹服务。每一个客户请求被a p a c h e 服务器软件接收后都要先 做一些必要的验证,然后决定将请求交给哪个守护进程去处理,经过进程处理请 求,最后返回结果。 图3 戈a p a c h e 处理请求过程 挪a c h e 服务器的体系结构麴最大特点是高度模块讫。它的大部分功麓都羧 模块化。模块化的最大优势就是用户可以根据自己的实际需要进行添加和裁减。 因为却a c h e 可以提供比较多的功能,露有些功能东自己的设计中用不到,这些 用不到的功能就可以去掉,方法是通过安装a p a c h e 的时候去掉一些模块来实现。 1 2 第三章a p a c h e 模块编写 去掉不用的模块后,a p a c h e 在扇动的时候就不用加载那些模块了,也不用为那 些功能分配系统资源了,这样a p a c h e 就可以更高效的完成任务了。 具体过程如图3 2 所示。 3 3 3a p a c h e 模块化的体系结构 标准昀a p a c h e 服务器由a p a c h e 内核代码和在缺省配置下被编译到服务器软 件中的标准代码模块组成。如果需要删除这些标准模块的其中一个,可以通过编 译配盖文件,从配置文转中测除( 注释掉) 相应的行帮可。一旦重新编译了a p a c h e 服务器,该模块就不在可执行文件中了。如果想重新加载该模块,可在配置文件 中重新加上被删除或注释掉的相应行,重新编译a p a c h e 服务器就可以了。 a p a c h e 提供了应用程序编程接墨( a p d ,它允许开发人员建立用予插入 a p a c h e 服务器的各种模块,以添加新的功能。按照功能的不同,可以把a p a c h e 分为三类:最耩简的a p a c h e 、标准蕊a p a c h e 和定铡的a p a c h e ,其中最精简的 a p a c h e 仅由内核和标准模块的最小集合组成;标准的a p a c h e 由内核和缺省配置 下的标准模块组成:定制的a p a c h e 由内核、缺省配置下的标准模块和第三方提供 的模块组成。如下图所示: 内核 标准模块的 最小集合 a 最精绱的a p a c h e b 标准的细a c 酝 e 定制的a p a c h e 图3 - 3a p a c h e 模块化体系结构 根据需要可以将a p a c h e 配黉成上述三种中的任意一种。如采不需要它的莱 些功能,可以停用其相应的一些模块,也就是将其配置为最精简的a p a c h e ,默 第三掌a p a c h e 模块编写 认情况下安装的a p a c h e 为标准a p a c h e 。在a p a c h e 标准发行版中添加第三方提 供或自己开发的模块,则为定制的a p a c h e 。 本设计中就是通过使用自己开发的第三方模块来实现特定的功能,同时去掉 了标准模块孛些再设计中没有用裂的模块。 3 3 4 模块接口结构 a p a c h e 服务器为了功能扩充的方便采用了一种模块结构,来组织成a p a c h e 的各个功能部分。在该结构体系巾,每个模块必须遵从如下的标准接n ( a p d : 1 每个模块均有一个m o d u l e 结构类型的接口控制模块,其中按规定次序定 义了些数据结构和旬柄,有主程序在适当的时候访问和调用。 2 每个模块均有若干配置信息块存放在主程序的相应配置信怠链表里,以保 存与本模块相关的配置信息。配置信息块是与特定环境相关联的,针对特定虚拟 照务器或特定罄录。 3 每个模块均有一个单元类型为c o m m a n dr e c 结构的配置命令列表,其中存 放本模块可处理的配置命令以及相应的处理方法旬柄。 4 。每个模块均有一个单元类型为h a n d l e rr e c 结构的返回响应处理旬柄列表, 给出本模块可在指定的情况下使用相应处理方法句柄返回请求的响应。 以上霆者之间的关系是:m o d u l e 结构为总控,包括配置命令歹l 表结拘昀指针、 返回响应处理句柄列表结构的指针和对配置信息块进行初始化的方法的句柄( 调 用该方法即可完成配置块的创建,返回该块的指针) 。配置命令列表绘出的处理 方法完成对实际定义的相应配置命令的处理,即把有关信息存到配置信息块的特 定位置。返回响应处理实际上只是a p a c h e 处理请求的一个阶段,其他阶段的处 理旬柄都直接定义在m o d u l e 结构中,但在本阶段,某个模块可能要针对不同的 情况定义多个处理句柄,故单独将其拿出来,并设置一个列表存储。 在a p a c h e 主程序读取配置文件之 ;蓍酋先要进行初始化,由所有基本模块孛接 口控制块的c r e a t es e r v e r 和 方法分别完成本模c o n f i gc r e a t e d e f a u l tp e r d i r p o n f i g 块的针对服务器和针对强录的配置信息块的初始化。在配置文件中指定动态装入 的模块贝| j 用a p a c h e 主程序中的a p 方法来完成单个模块信惠 的配置信息块初始化。而模块自身s 的i n g 初l e 始m o 化d u 由l e c o n f i g m o d u l e 结构中的i n i t 句柄来完成。 各模块的接弱控制块连成链,由主程序在处理请求时进霉亍遍历。遍历的星的是查 找备模块中登记的“
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 湖北省武汉市历史初二下学期期末复习难点精析
- 北京市高考语文备考重点解析
- 2026秋统编版(新)小学道德与法治二年级上册《我们都是中国人》同步练习及答案
- 2026年软件资格考试系统分析师(高级)(综合知识、案例分析、论文)合卷应考难点精析
- (正式版)DB3502∕T 045.10-2021 《厦门特色美食制作规程 第10部分:韭菜盒》
- 县结核病分级诊疗和综合防治服务模式试点工作实施方案
- 委托代理合同锦集15篇
- 太谷区中考二模道德与法治试题(含答案)
- 内容分发平台内容合作运营管理协议
- 股权激励实施办法合同2026修订版
- 胃肿瘤相关课件
- 交通基础设施智能化基础课件 第三章 大数据概述
- 2026年静脉导管常见并发症临床护理实践指南
- 机房基本运维知识培训课件
- 天津市事业单位招聘考试教师招聘物理学科专业知识试卷(物理教学案例分析)
- 浙江省六校联盟2025-2026学年高一上学期10月月考物理试题(含答案)
- 《统计学-基于R》(第6版)课件 第10章 回归分析
- 多旋翼无人机原理课件
- 五升六数学《30天暑假作业》每日一练
- 无形资产评估报告范文
- 油气田采出水电化学法同步提取锂溴及溴化锂制备技术研究
评论
0/150
提交评论