论文部分内容阅读
CDN的全称是Content Delivery Network,即内容分发网络。CDN通过在现有的Internet中增加一层新的构架,将网站的内容发布到离用户最近的网络节点。通过这种方法提高用户访问网站的响应速度,同时减轻大量的远距离访问对骨干网造成的传输压力。用户访问某个网络服务时,通过访问URL或者IP地址连接到一台接入服务器,然后由接入服务器根据访问者的地理位置、其所属的ISP以及服务器的部署情况将此用户的访问重定向到另一台合适的服务器,由这台服务器对用户进行服务。具体重定向到哪台服务器需要遵循两个基本的调度原则,它们是负载均衡与就近服务。在实际的CDN负载均衡系统中,往往是先根据各种统计数据及服务器部署情况产生一份负载均衡策略数据,然后根据这份数据来进行调度。负载均衡策略数据可以被看成是一份从“地区&ISP”到服务器地址列表的映射表,服务器地址列表由若干个资源服务器地址组成,每个地址具有概率。当一个访问来到时,接入服务器查询该用户访问来自的地区和ISP。这个地区和ISP在负载均衡策略数据中映射到若干个服务器IP地址,然后根据这些IP地址的概率选择出一个服务器地址,最终由这台服务器来对此请求服务。传统的CDN负载均衡系统所采用的负载均衡策略数据来自于手工填写。手工填写的负载均衡策略可以基本满足系统的需求,但具有许多的缺点,如调度效率不是最优、或者当某台资源服务器崩溃时需要重新填写数据等。通过程序生成负载均衡策略数据可以规避这些缺点。本文将要阐述的负载均衡调度系统主要分为数据生成和调度两个部分,其中数据生成部分使用网络流算法生成出负载均衡策略数据,而调度部分根据这份负载均衡策略数据来进行调度。负载均衡策略数据生成的质量直接决定了调度的效果。生成负载均衡策略数据以负载均衡和就近访问为原则。当然,除了负载均衡策略数据生成部分和调度部分外,还需要其它的辅助性部分,如访问数量统计和用户管理部分。