服务器选择-----介绍服务器选择的几种架构可以研究的问题•算法–随机–轮询–网络距离–负载情况•架构(√)–基于客户端–基于DNS–基于分配器–基于服务器端各种架构的衡量标准•结果的正确性•开销大小•是否透明基于分配器•特点:在URL层次上处理,分配器有一个虚拟地址(IP_SVA)•各种路由算法:–包地址重写(Magicrouter,LocalDirector)–包转发–http重定向包地址重写包转发http重定向基于服务器•特点:两层选择机制,DNS选择和重定向的组合;服务器间自动调整。•两种重定向方法:–http(thescalableserverWorldWideWeb)–Packet(DistributedPacketRewriting)基于DNS•特点:由权威DNS服务器选择当前较好的服务器。•实例:–XX系统DNS选择的优点•速度快,代价小•方便统一的管理DNS和服务器选择模块•有效的利用资源,DNS服务器负载小,性能要求不高•可靠性高•实现简单DNS选择的缺点•DNS缓存可能会影响解析结果。–解决方案:动态TTL•DNS服务器可能成为分布式系统的单一集中点。基于客户端•特点:客户端需要维护一张服务器列表以及软件上的支持(浏览器插件,代理…)。•实例:–燕捷系统1客户端选择流程UserClient(4,5)ServerNServer1(2)3Step1:AddressRequest(URL)Step2:GetCurrentLoadStep3:ReturnCurrentLoadStep4:SleepsometimeStep5:WakeupFirstisBest我们采用的算法•服务器负载(设置各个级别的阈值)–CPU–内存–硬盘空间–等待队列的任务个数•服务进程运行情况–是否开启–在线人数•网络距离客户端选择的优缺点•优点:–完全消除了分布式系统中的集中成分–实现针对服务类型选择服务器–速度较快•缺点–给系统带来了额外的网络开销–需要用户安装客户端(比如燕捷系统里的BHO插件)–在我们的实现方案中还没完全实现透明多服务器并发上载(续)•实现方案:–客户端探测,选择1-3台最优的服务器–把用户要上载的文件放进任务队列–调度器把任务分发给空闲的服务器–上载操作如果被中断,把任务交还任务队列,重新调度