体系结构提交详细设计_第1页
体系结构提交详细设计_第2页
体系结构提交详细设计_第3页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1cluster 模块详细设计1.1 概述模块需求:该模块负责数据中的服务器负载均衡,用于解决了分布式中的服务器负载均衡问题,提供提高的服务器端的效率和反应速度,以及服务器的可靠性。由于作业要求设计的搜索引擎需要随着业务量的提高,量和数据流量的快速增长,系统在此情况下处理能力和计算性能不该下降太多。此外要求当服务器出现故障时,应不会影响正常的且应该能够及时的发现问题,因此使得单一的服务器根本无法承担。所以针对此情况,采用多台服务器来接收用户的请求。在使用多台服务器来保证多用户的同时就需要使用该模块来扩展现有网络设备和服务器的带宽、增加吞吏量、加强网络数据处理能力、提高网络的灵活性和可用性。本模

2、块使用负载均衡技术来应对同时有多用户,合理分配请求给每一个服务器,保证每个服务器都在工作,不会出现叧有一个服务器在不断处理用户请求而其他服务器闲置的状况。同时本模块也用来将重负载的工作(检索)分配到多台服务器上并行处理,提高处理性能。涉及需求:高效性搜索要求系统反应及时,要能够在 10 秒内给出查询结果服务器出现故障时要能够及时发现,并且不能影响R2R17服务器可靠性性能系统要能够大容量数据,能够分布式使用多台机器的存R19储设备R20并发R21并发性应该能够多机器同时并发进行,要求至少 3 个以上处理器安全性进行可能的检测和R22可拓展性R23易用性系统要有可修改性,对资源分配方式要能够修改

3、系统要具有高易用性,能够自动检测相关资源当某一服务器数据出错时,可以使用其他服务器上的备份数据容错性R24说明:用户通过对该模块发生请求,该模块对通过对服务器的检测,选择合适的服务器处理用户请求。用户不会直接看到服务器,而只能通过该模块来请求服务。可能会发生的修改实现资源分配方法资源检测方法服务器检测方法分配职责1) 该模块能够获取各子服务器的开启情况,用于分布式服务器中每个服务器的运行情况,表示当前服务器的信息,用于选择运行服务器。2) 该模块能够获取各个服务器的运行情况,用于分布式服务器中每个服务器的情况,用以选择一个合适的服务器进行。3) 该模块能够获取服务器情况选择合适服务器提供服务,

4、用于根据分布式服务器的情况选择当前合适的服务器提供服务。对外接口:接口:search(SearchRequest str);功能:当系统有大量用户,有该模块进行负载均衡,用于平衡各服务器负担,对资源进行合理的分配和利用,避免发生请求回应不及时,用户等待时间过久等现象。可以将大量的并发数据分担到多个服务器上分别处理,将单个重负载的运算分担多个服务器上进行并发处理,并将结果汇总后返回给用户参数说明:SearchRequest sr:是用户请求,用户使用系统时以参数形式将请求传入,包括用户信息,搜索词等,服务器根据该参数进行选择将具体任务分配给服务器。返回值说明:无使用方法:每当一个用户使用系统的时

5、候,系统自动调用该模块,并且对各个服务器进行检查,查询其状态,并根据用户的请求选择合适的服务器进行处理,如果没有可用资源,用户则将进入等待队列。并且如果服务器发生故障,该模块可以检测,并重新为用户请求分配服务器。前置条件:应用服务器传来众多的查询请求对象,其中包含搜索。后置条件内容处理 manager 收到搜索请求根据从服务器获取内容。设计方案分析模块在接收到用户请求以后,系统自动调用模块。首先,模块检查系统现在情况,包括服务器运行情况,资源分配情况,并且根据检测的结果来判定资源是否可用。如果有空闲资源,则将资源分配给该用户,如果没有空闲资源,则将用户请求加入到等待队列中,并且在有空余资源的时

6、候,将等待队列中的请求进行处理。在服务器处理后将结果返回给用户。一旦服务器的负载发生变化,会通知改变模块中维持的服务器状态表进行更新,进而根据请求时的服务器状态表选择恰当的服务器提供该模块的服务。2 类图静态结构详细设计类图和类图说明:设计说明:该模块由三个部分组成:分别是用户请求类,请求转发类,服务器类。由服务器作为观察者,观察用户请求,用户请求类。当用户请求发生时,请求被发给转发类,并且由该类决定是否将请求发给服务器,发给哪个服务器,其中的判断依据是资源池中是否有空闲的服务器能够接受请求3 类描述类方法(重要方法要给出前置与后置条件)与重要数据结构描述类说明UserResquestSubU

7、serResquest用户请求类的子类,是具体的实现SubServer服务器类的子类,是具体的实习DispatchRequestServool服务器资源池,用来控务器资源,并对其进行管理。其中有serverList 用来管理服务器。UserResquestServerHandleRequest处理用户请求DispatchRequestDispatchFindserver找到合适的服务器Servool转发请求用户请求类,封装了用户参数和关键字detectServerSe得到当前服务器状态Update因为请求更新,所以同时要处理Notify通知用户请求到达请求转发类,通过对资源的检查决定将请求发给

8、哪个服务器Server服务器类,服务器通过,在 Servool 类观察请求RegisterServer在服务器资源池中新服务器重要的数据结构描述资源列表ServerList:用来服务器状态,并且可以通过对该数据结构进行操作从而获取资源用户请求UserRequest:其中有用户信息,请求参数用户请求列表UserResquestList:用来用户请求,并在有空闲服务器时进行处理4 重要协作顺序图RemoveServer在服务器资源池中移除服务器说明:用户发生请求,然后传递消息,userRequest 调用 notify 方法通知,然后通过现有资源情况将请求转发,同时,服务器资源池中的资源是转发的依

9、据。状态图5 使用的设计模式1) Facade pattern:模块只有一个对外的接口用来处理外界的数据的请求,对于内部的一系列负载均衡的实现均对外隐藏,实现了 facade pattern。场景:用户使用的时候,资源分配方式目的:由于处理的方法较多,处理比较复杂,故利用外观模式抽象出一个统一的接口,隐藏底层的复杂实现细节,提供给外部调用。2) Iterator pattern:采用 iterator patter 可以有效的管理和使用里的元素,其中有 server 和 request。场景:对 server 和 request 处理的时候,将其用迭代器处理目的:分离了集合对象的遍历行为,抽象出一个迭代器类来负责,既不集合的结构,又可让外部代码透明地方问集合的数据。3)Observattern:在负载均衡模块中,有一个控刢器将负责将用户的请求转发给空闲的服务器。因此使用观察者模式,将状态为空闲的服务器在控刢器上,观察是否有用户请求。若有,则控刢器将用户请求发送给已经的空闲服务器队列中的一个。场景:请求的处理和服务器接收目的:这样为服务器节省资源,并且能够及时处理请求

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论