“新理念外语网络教学平台”负载均衡方案研究.pdf
上传人:13****51 上传时间:2024-09-12 格式:PDF 页数:5 大小:449KB 金币:10 举报 版权申诉
预览加载中,请您耐心等待几秒...

“新理念外语网络教学平台”负载均衡方案研究.pdf

“新理念外语网络教学平台”负载均衡方案研究.pdf

预览

在线预览结束,喜欢就下载吧,查找使用更方便

10 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

“新理念外语网络教学平台”的负载均衡方案研究【摘要】本文主要就上海外语教育出版社的“新理念外语网络教学平台”的服务器负载均衡技术方案进行讨论,以此解决在高负载、高并发、大流量网络环境下出现的性能瓶颈问题。本研究具有一定的推广价值,具有成本投入少、可靠性高、易于操作维护的特点,特别适合高校核心信息管理系统的技术改造。【关键词】网络学习负载均衡英语教学新理念外语网络教学平台一、新理念外语网络教学平台“新理念外语网络教学平台”(以下称教学平台)是上海外语教育出版社根据教育部颁布的《大学英语课程教学要求》,配套《全新版大学英语综合教程》等教材而设计开发的网络教学系统。在严格遵循现代外语教学理念、充分运用先进信息技术的基础上,教学平台注重为学生营造全方位、自主式、个性化学习环境,全面培养学生的英语综合应用能力。教学平台基于微软的.net2.0技术和sqlserver2005数据库,由三个相互独立而又相互联系的模块组成:1.系统管理员模块;2.教师管理模块;3.学生网络学习模块。其中管理员和教师管理模块采用b/s(browser/server,浏览器/服务器)架构,学生学习模块采用b/s和c/s(client/server,客户端/服务器)结合的架构。学生可以通过浏览器进行在线学习和测试,由于系统功能的更新,新发布的5.5版中必须使用客户端才能参加在线测试。二、现有问题及解决方案现有大多数高校均采用单台服务器来运行本系统,集数据库、web、文件服务器于一身。这是一种低成本的方式,适合并发访问压力较小的环境使用。但其缺点也是显而易见的:系统性能会随着并发访问的增加出现直线的下滑,所有重要数据在同一个地方有安全隐患。简单直接的解决方法是增加服务器,分别用于web、database、nfs,如图一所示:图1这种方案解决了数据安全和用户上传文件独立存储的问题,但在高并发的环境下,web服务器和数据库服务器将会成为系统的瓶颈。在硬件配置确定的前提下,通过增加web服务器的数量,可以明显缓解高并发带来的服务器压力。然而,这样的结构却带来了新的问题:多台web服务器对于访问者而言相互独立,造成没有统一的网络访问入口,且各台服务器所承受的访问量可能存在巨大差异,缺乏统一协调和分配访问的机制。因此,问题的解决需要引入新的方案,实现程序自动根据服务器负责分配、引导访问者到负载最低的服务器,并且要做到对用户透明,即系统逻辑上对用户而言就是一台服务器,从而保证其获得最佳访问体验(图二)。要实现上述功能,可以购买如f5big-ip、citrixnetscaler等专业负载均衡设备,优点是可以支持动态智能分配用户访问,缺点是价格昂贵。在高性价比的解决方案中,由俄罗斯软件工程师igorsysoev开发的开源高性能http和反向代理服务器nginx可以满足这样的需求,该软件可以运行于linux和windows操作系统之上,但在生产环境中,建议采用linux作为nginx运行的平台。图2现有的教学平台使用viewstate来保存访问者的状态信息,启用nginx负载均衡后,可以实现动态智能分配用户访问,但是会出现用户状态无法保存,从而导致用户无法登陆访问的问题。在nignx中启用ip_hash后,程序根据用户的ip进行hash计算,生成唯一的访问标识,确保同一ip地址用户始终对应同一台web服务器,可以保存用户的状态,但此时的负载均衡在很大程度上就失去了作用,无法实时动态调节资源。解决方法是使用微软提供的asp.netstateservice(aspnet_state.exe)方案,sessionstate中可实现viewstate共享的方式有stateserver和sqlserver两种模式,本文主要讨论基于sqlserver数据库的方式。方案的具体实施主要将会涉及web服务器、nginx反向代理服务器、sqlserver数据库服务器的配置,关键步骤包括首先需要启用nginx中的upstream:upstreamwebservers{server192.168.0.14;server192.168.0.15;server192.168.0.16;server192.168.0.17;}在sqlserver中创建用于保存用户状态信息的数据库,可以通过执行windir\microsoft.net\framework\version文件夹中的installsqlstate.sql脚本实现。在加入集群的各台web