一种多web服务器的负载均衡方案_第1页
一种多web服务器的负载均衡方案_第2页
一种多web服务器的负载均衡方案_第3页
全文预览已结束

下载本文档

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

文档简介

一种多web服务器的负载均衡方案

随着电子商务、银行等网络业务的快速发展,许多用户同时访问web服务器。当用户访问量达到一定阈值时,单Web服务结构已无法进行正常的响应,于是多服务器网络负载均衡成为技术发展的新方向。本文主要讲述一种采用动态分布式负载均衡技术以实现网格中多Web服务器的负载均衡方案。负载均衡器针对Web服务器集群中负载动态变化特性,运用基于参数的线性加权负载分布算法,根据CPU利用率、内存利用率等参数计算服务器的负载权值,将服务器自身的处理能力与当前的负载结合起来。通过运用DNS的工作理论,结合网格MDS(MonitoringandDiscoveryService,监控和发现服务)技术,用户输入域名请求,请求被负载均衡器捕获,解析出DNS数据的HEADER,QUESTION数据段,利用MDS得到Web服务器的状态,将性能最好的Web服务器的IP封装到DNS响应包,返回用户。该方案克服了轮循静态算法无法区分服务器差异,以致无法给性能较好的Web服务器分发更多请求以提高访问效率的缺陷。一、系统总体架构该方案基于DNS原理和网格信息服务技术,在网格环境下实现多服务器的动态负载均衡。一个域名映射多个Web服务器IP,用户对域名的请求被分发到多个Web服务器,大量请求任务由不同的Web服务器承担,从而实现负载均衡。该方案不仅克服了DNS的轮循静态负载均衡算法无法区分服务器差异的缺陷,而且把原来的集中式调度,即负载均衡器收集所有节点负载信息的工作,改进为分布式调度即各节点的网格MDS提供本节点负载信息。这样负载均衡器不必去主动收集各节点的负载信息,从而降低了由于收集负载信息而增加的额外开销,减轻了负载均衡器的负担,减低了负载均衡器成为系统瓶颈的风险。存储网格系统总体架构如图1所示,用户(Client)发起某域名请求到达一级主DNS,主DNS将域名查询请求转发到负载均衡器,负载均衡器接收主DNS转发过来的DNS查询包,执行动态的负载均衡算法来调度负载量最轻的Web服务器来响应用户请求。用户得到响应,与Web服务器建立连接,访问该网站,进行业务处理。整个过程中,负载均衡器需要实现以下功能:(1)捕获主DNS转发的域名查询请求,并解析DNS查询包的HEADER,QUESTION数据段;(2)调用监测器MDS的DefaultIndexServiceEntry获取系统中的每一台Web服务器的资源信息;(3)在资源信息的基础上,利用参数化线性加权负载均衡算法得到性能最好的一个Web服务器;(4)将这个Web服务器的IP封装到DNS响应包,返回用户。从请求发出到被响应的执行过程如图2所示。用户在浏览器输入域名请求,DNS客户端将请求发送到本地DNS,本地DNS根据数据库文件中指定的子域地址,将请求交给子域服务器(本文中的负载均衡器)处理。负载均衡器将动态调度Web服务器来响应用户请求。二、线性参数化的线性负荷矩阵的平衡1.动态调度模块设计静态负载分配算法是利用事先设定好的服务器的信息分配的,决策过程的依据都是事先设定好的,因而不能动态反映服务器的负载情况。用户访问服务器时,由于网络服务的服务时间不同,服务所需的资源千差万别,静态负载分配算法不能反映后端的服务器的负载情况,无法保证系统内的服务器真正的实现均衡。动态算法较静态算法相比具有一定的优越性。动态负载算法根据系统当前的负载情况动态分发请求。但是动态调度需要监测和确定每台服务器的当前负载状态,进行信息汇集和综合分析,并且实时做出分配决策。因此,如何准确地评估服务器上的工作负载并且分发新的请求任务到每台服务器成为服务器系统取得均衡的关键。动态调度模块的设计如图3所示。图中,LB表示负载均衡器,F表示负载量调节模块,F根据服务器的真实负载情况依据算法公式计算出服务器负载量,负载均衡器根据服务器新的负载量分发用户的请求。动态调度主要有两种:集中式调度策略和分布式调度策略。实现分布式策略的节点结构如图4所示。通过运用网格技术,设置负载均衡器作为上游节点,Web服务器为下游节点,下游节点之间不能通信。上游节点作为下游节点的管理节点,与下游节点可以通信,上游节点可以通过容器(Container)收集下游Web服务器节点的资源信息。通过运用MDS,把原来的集中式调度即负载均衡器收集所有节点负载信息的工作,改进为分布式调度即各节点的MDS提供本节点负载信息。这样负载均衡器不必去主动收集各节点的负载信息,从而降低了由于收集负载信息而增加的额外开销,减轻了负载均衡器的负担,减低负载均衡器成为系统瓶颈的风险。2.负载状态的影响对于实际系统,任何一项资源(CPU、内存、网络等)超过一定的使用率(比如90%),系统都不再有能力接入新的请求。这些指标与负载水平均成正比,因此各项指标与负载状态的影响方向是一致的。参数化线性加权负载均衡算法主要采用参数的线性加权和作为负载分配的依据。这些参数包括:CPU利用率、内存利用率、网络利用率等反映Web服务器的处理能力的因素。任何一个指标都可能成为服务器的处理瓶颈。为了体现各项指标对负载状态的影响程度,为每一项指标赋予一个系数,系数越大,影响越大。三、ds性能监控模块该设计方案的总体流程如图5所示。请求处理模块先初始化UDP套接字DatagramSocket(数据报套接字),然后设置DatagramSocket(数据报包)监听DNS的保留端口(即53端口),如没有请求,则一直处于监听,如果出现请求,则创建一个DatagramPacket接收请求数据,并交给线程处理。负载评估模块调用服务,得到每一台服务器的性能数据。负载评估模块根据算法和性能数据,评估出负载量最小的服务器。整合响应数据模块将负载量最小的服务器IP数据,和请求数据整合,封装成DNS响应包返回用户,工作完成,线程正常结束。端口通信流程如图6所示,用户的域名请求经由随机端口1026发送到一级主DNS的53端口,主DNS经由1031端口将域名请求转发送到负载均衡器,从而实现了捕获域名请求。DNS响应则由负载

温馨提示

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

评论

0/150

提交评论