(计算机应用技术专业论文)ejb容器集群关键技术的研究与设计.pdf_第1页
(计算机应用技术专业论文)ejb容器集群关键技术的研究与设计.pdf_第2页
(计算机应用技术专业论文)ejb容器集群关键技术的研究与设计.pdf_第3页
(计算机应用技术专业论文)ejb容器集群关键技术的研究与设计.pdf_第4页
(计算机应用技术专业论文)ejb容器集群关键技术的研究与设计.pdf_第5页
已阅读5页,还剩71页未读 继续免费阅读

(计算机应用技术专业论文)ejb容器集群关键技术的研究与设计.pdf.pdf 免费下载

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

文档简介

e j b 容器集群关键技术的研究与设计中义摘要 中文摘要 集群的动态负载均衡是网络计算的关键技术,如何提高动态负载均 衡的性能,一直是网络计算人员研究的一个热点。本文研究的e j b 容器 集群负载均衡问题,其目的就是在互联网用户数和网络流量成几何级数 增长的情况下,j 2 e e 应用服务器仍然能提供高可用性、高扩展性的服务。 本文首先介绍了集群技术、负载均衡技术、e j b 组件框架,然后分 析了e j b 容器集群体系结构,研究了常用系统设计方法及负载均衡策略, 根据现有系统的不足,提出了基于软件p r o x y 的e j b 容器集群总体框架, 以及将负载预测与负载均衡技术相结合的思想。然后设计出基于b p 神经 网络的负载预测模型,实现其动态负载均衡算法。测试结果表明其性能 优于传统e j b 集群算法。论文最后对e j b 集群系统的研究与设计做了总 结,并提出今后需要进一步研究的内容。 本文在e j b 容器集群技术上作了一些探索,如负载均衡技术,e j b 容器体系结构,基于b p 神经网络的负载均衡策略等。这些内容有一定的 价值,可以为同类集群研究提供参考,具有一定的借鉴意义。 关键字:e j b 容器,集群,j 2 e e ,负载均衡,b p 神经网络 作者:方巍 指导教师:孙涌 a b s t r a c t a st h ed y n a m i cl o a db a l a n c i n gi st h ec r u c i a lt e c h n o l o g yi nt h en e t w o r k c o m p u t i n g ,h o wt oi m p r o v et h ep e r f o r m a n c eo fd y n a m i cl o a db a l a n c i n gi s o n eo ft h ef o c u sa r e a st oi t sr e s e a r c h e r s f o rt h ei n t e r n e tu s e r sa n dt h en e t f l o wf o l l o wt h eg e o m e t r i cs e r i e si n c r e a s e ,i tr e q u i r e st h a tj 2 e ea p p l i c a t i o n s e r v e r ss h o u l dh a v eh i g hs c a l a b i l i t ya n dh i g ha v a i l a b i l i t y i ti st h ep u r p o s eo f t h i sp a p e rt of i n ds o m ew a yt os o l v et h e s ep r o b l e m s f i r s t l y ,t h ep a p e ri n t r o d u c e st h ec l u s t e rt e c h n o l o g y ,l o a db a l a n c i n g t e c h n o l o g ya n de j bc o m p o n e n t s e c o n d l y ,t h ep a p e ra n a l y z e st h ea r c h i t e c t u r e o fe j bc o n t a i n e rc l u s t e r i n g ,s t u d y i n gt h ee x i s t e dd e s i g nm e t h o d so fe j b c l u s t e ra n dt h e i rl o a db a l a n c i n gp o l i c y u p o nt h e i rs h o r t a g e so fd e s i g n m e t h o d sa n dl o a dp o l i c y ,w eo f f e ran e wd e s i g nm e t h o do fe j bc l u s t e r s y s t e mb yt h ep r o x y ,a n dt h ep a t t e mw h i c he f f e c t i v e l yc o m b i n e st h el o a d p r e d i c t i o nw i t hl o a db a l a n c i n ga l g o r i t h m t h i r d l y ,t h ep a p e rp r e s e n t s a d y n a m i cl o a db a l a n c i n ga l g o r i t h mb a s e do nt h eb a c kp r o p a g a t i o nn e u r a l n e t w o r k t h e nc o m p a r e dt ot r a d i t i o n a ls t a t i c a l g o r i t h m s o fe j bl o a d b a l a n c i n g ,t h en e u r a ln e t w o r ka l g o r i t h mp r o d u c e dh i g h e rp e r f o r m a n c ei nt h e t e s tc a s e s a tl a s t ,t h ep a p e rd r a w sac o n c l u s i o no fe j bc l u s t e rs y s t e m r e s e a r c ha n dd e s i g n ,p u t t i n gt h ef u r t h e rw o r ki nt h ef u t u r e t h em a i nc o n t r i b u t i o no ft h ep a p e ri st oe x p l o r et h ec l u s t e rt e c h n o l o g y o f e j bc o n t a i n e r ,s u c ha sl o a db a l a n c i n gt e c h n o l o g y ,t h ea r c h i t e c t u r eo f e j b c o n t a i n e r c l u s t e r i n g ,l o a db a l a n c i n ga l g o r i t h m b a s e do nb pn e u r a l n e t w o r k e t c i ti sw o r t h w h i l et h a tt h e s et e c h n o l o g i e s a r e h e l p f u l t ot h e d e v e l o p e r si nt h eh o m o g e n e o u s c l u s t e rf i e l d k e y w o r d s :e j bc o n t a i n e r ,c l u s t e r ,j 2 e e ,l o a db a l a n c i n g , b pn e u r a ln e t w o r k w r i t t e nb yf a n gw e i s u p e r v i s e db ys u ny o n g y9 5 6 3 2 8 苏州大学学位论文独创性声明及使用授权的声明 学位论文独创性声明 本人郑重声明:所提交的学位论文是本人在导师的指导下,独立进 行研究工作所取得的成果。除文中已经注明引用的内容外,本论文不含 其他个人或集体已经发表或撰写过的研究成果,也不含为获得苏州大学 或其它教育机构的学位证书而使用过的材料。对本文的研究作出重要贡 献的个人和集体,均已在文中以明确方式标明。本人承担本声明的法律 责任。 研究生签名: 日期:笪型:篮乡 学位论文使用授权声明 苏州大学、中国科学技术信息研究所、国家图书馆、清华大学论文 合作部、中国社科院文献信息情报中心有权保留本人所送交学位论文的 复印件和电子文档,可以采用影印、缩印或其他复制手段保存论文。本 人电子文档的内容和纸质论文的内容相一致。除在保密期内的保密论文 外,允许论文被查阅和借阅,可以公布( 包括刊登) 论文的全部或部分 内容。论文的公布( 包括刊登) 授权苏州大学学位办办理。 研究生签名: 导师签名: 劣褫 抄 日期:如。红沙 日期:咎 i 业以 e j b 容器集群关键技术的研究与墩计 1 1 研究背景 第一章绪论 如今i n t e m e t 已经渗透到人们生产和生活的各个角落。计算机网络 技术已被广泛地应用在企事业单位的各个业务环节,网络的信息量与访 问量成几何级数增长,网络拥塞和服务超载日益成为网络及其服务器必 须面对的严峻问题。而且,大部分网站都需要提供7 2 4 小时的持续服 务,尤其是电子商务和金融领域等网站,任何服务的中断和关键性数据 丢失都会造成直接的商业损失。例如在1 9 9 9 年6 月份,e b a y 公司的服 务停止了2 2 小时,导致大约2 3 0 万的拍卖被中断,e b a y 的股票也随之 下降了9 2 个百分点,这对网络服务的可靠性提出了越来越高的要求。 为保证及时处理用户的请求,提高网络服务质量,目前普遍采用基于并 行分布计算的服务器集群( c l u s t e r ) 技术,它提供了一种高性能、高可 靠性的服务器解决方案,因此以其扩展性好、处理能力强、易于管理等 优点受到了国内外研究机构的关注和广泛应用。 目前,大多数企业采用j 2 e e 应用服务器来满足架构企业级应用的 需求。随着客户访问量的急剧增加,企业对于j 2 e e 系统的可伸缩性和 高可用性要求越来越高。如何设计和构建一个具有高可伸缩性、高可用 性的j 2 e e 集群应用服务器,成为j 2 e e 应用服务器设计必须考虑的问题。 但j 2 e e 应用服务器的集群是基于e j b 组件的集群,与普通w e bs e r v e r 集群技术有很大的不同,实现的方法也不尽相同。 其中的关键就是负载均衡技术4 】【6 l 【7 】a 负载均衡服务能够平衡所有的 服务器和应用之间的通信负载,根据实时响应时间进行判断,按照一定 算法将任务交由负载最轻的服务器来处理,以实现真正的智能通信管理 和最佳的服务集群性能。e j b 集群技术作为一种新的集群技术逐渐在大 型分布式j 2 e e 系统中得到更广泛的应用。 e j b 容器集群关键技术的研究与设计 1 1 1 传统中间件技术 在传统的客户机服务器( c s ) 模式企业应用中,业务逻辑在客户 端和服务器端都有分布。随着企业应用环境逐渐向i n t e m e t 环境转移, 应用的需求规模不断扩大,两层c s 计算模式暴露出种种缺陷,如客户 端和服务器负担过重、重用程度低、应用逻辑的改变缺乏灵活性、系统 移植性差、软件部署开销太多和升级困难等。于是,多层( 三层或以上) 结构应运而生。所谓“多层”,就是在原有的“两层结构”( 客户端和服 务器端) 之间增加了多种服判2 1 。在多层部署中,各层之间相互独立。 另外,应用服务器可以做集群的配置。 客户机 中问层 服务 | j 数据库 服务_ | 图1 1 三层客户端服务器模式 以i n t e m e t 为基础的企业分布应用不仅要求在分布式环境下实现信 息的采集、管理、发布、交换和处理,而且要求能快速开发和构建企业 应用,具有易扩展性、互操作性、高可靠性、可伸缩性以及高安全性等。 三层客户n 务器计算模式满足了基于i n t e m e t 企业应用的新的要求。一 个典型的三层如图1 1 所示,第一层是集中处理业务表示逻辑的表示层 ( p r e s e n t a t i o nt i e r ) ,第二层是中间层( m i d d l et i e r ) ,亦称为业务逻辑 层( b u s i n e s sl o g i ct i e r ) ,主要实现应用业务逻辑。业务逻辑层随着应 用的复杂度可分为一层或多层:第三层是数据层( d a t a t i e r ) ,主要描述 应用所需的数据源,包括后端的数据库、企业应用数据等系统数据。 负载均衡服务【2 4 】主要包括网络级、操作系统级和基于中间件这三 种。目前一味提高单机或多机硬件运行性能的思维方式已经不能很好地 满足系统要求,开发一个基于e j b 的分布式系统无需开发者过多关心分 e j b 容器集群关键技术的研究。o 吐汁 第一章绪论 布式计算的具体实现,有利于进一步提高系统的高可用性和高可靠性。 j 2 e e 平台提供了一个基于组件的方法,用来设计、开发、装配及 部署企业应用程序,近年来在企业系统中得到了大量使用。而e j b 技 术作为s u n 公司j 2 e e 企业平台多层结构的主要实现技术在一段时间 内成为多层结构的开发标准之一f 3 0 1 。 1 1 2 j 2 e e 应用服务器和e j b 容器 应用服务器是一个将用户接口、业务逻辑和后端服务分离,为业务 逻辑的实现提供支持,为用户创建、部署、运行、集成和维护多层分布 式企业级应用的平台【8 j 。j 2 e e 应用服务器可以看作一个装有若干个服 务的容器,其中最重要的服务包括j n d i 、j d b c 、j m s 、j t s 等。目前, 基于j 2 e e 规范实现的应用服务器在市场上具有非常重要的地位,主要 产品包括i b m 公司的w e b s p h e r e 、b e a 公司的w e b l o g i c 和开放源码的 j b o s s 等。 容器是为一个或多个组件提供应用的上下文并且为组件提供管理 和控制服务。它可以是客户端的,也可以是服务器端的。像浏览器中的 用于执行a p p e t 的j a v a 虚拟机就是客户端容器;在j 2 e e 平台中,服务 器端容器主要是s e r v l e t 容器和e j b 容器。也就是说e j b 容器是整个j 2 e e 应用服务器的核心部分。它为e j b 组件提供部署和运行环境,并且在 e j b 容器中提供了分布式计算环境中部件需要的所有服务,例如容器为 部署在其中的企业b e a n 提供了下列服务:分布式对象协议、进程管理、 事务、安全性、状态管理、资源共享、数据访问、系统管理支持、故障 恢复( f a i l u r er e c o v e r y ) 、高可用性和集群【9 。部署者可以根据企业b e a n 的部署描述符中的信息,指定容器添加给方法调用的服务。 e j b 容器支持四种类型的e j b 组件:无状态会话b e a n ,有状态会 话b e a n ,实体b e a n 和消息驱动b e a n 2 1 。它支持e j b 组件以编程和申明 两种方式控制事务。 e j b 容器集群关键技术的研究与改计 1 2 国内外研究现状 s u n 公司在2 0 0 5 年6 月2 7 日至3 0 日举办的j a v ao n e 开发者大会 上,将j 2 e e 集群技术作为该次会议中重要内容之一。可见j 2 e e 集群作 为是目前比较流行的一种提供高可用性和可伸缩性容错服务的技术,被 越来越多业界人士重视和应用。但对于e j b 容器集群的研究与对j 2 e e 平台中间件研发不同,基于j 2 e e 平台的中间件都有明确的规范,因此 主要工作在于实现细节的不同和性能差别;而对于e j b 容器的集群研究 则不同,因为没有任何规范定义了集群的需求,所以单从集群要达到的 最终效果而言,各个容器提供者理解都不同。另外,我们虽然拥有一系 列动态负载均衡算法,但是我们不能准确地对负载进行度量,这就使负 载均衡失去了基础,动态负载均衡成为空中楼阁;我们不能对系统的负 载进行有效的预测,这就限制了系统性能的提高。另外,负载均衡本身 属于n p 难问题【3 1 ,寻找高效、快速的均衡算法将是提高系统性能的一 条有效途径。 文献 1 2 1 2 8 2 9 q h 提到了e j b 集群技术,提出了分布式环境下 的负载均衡问题,并对负载均衡策略进行分析研究。可见e j b 集群技术 已经日益受到关注。 作为e j b 容器集群,现在大部分主流的j 2 e e 应用服务器都提供了 该功能,如i b m 的w e b s p h e r e 和b e a 的w e b l o g i c 等。如果单从技术角 度而言,他们的技术属于比较成熟技术。但是,商品化产品功能内部集 群实现是不透明的,很少有开放源码的容器实现支持集群功能,国内中 间件公司在研发时没有可借鉴的参考实现。目前国内的j 2 e e 应用服务 器集群,大多是在w e b 服务器或w e b 容器层上,利用w e b 服务器扩展 来实现的,不是真正意义上的e j b 容器集群。商品化的j 2 e e 产品的内 部集群实现,也是不透明的,而且他们采用的负载均衡算法大多采用轮 转法等静态算法,实现比较简单,负载均衡的粒度只能达到h o m e 接口 级别,负载均衡灵活性不足且效率不高。所以,本课题研究的主要内容 就是提出一种具有自适应、自学习、并发控制能力的动态负载均衡算法, e j b 容器集群关键技术的究2 j l 啦| 十 并应用于开源的j 2 e e 应用服务器中。 1 3 课题内容和重点 本文工作主要围绕j 2 e e 平台的核心部件e j b 容器负载均衡技术展 开研究,目的就是解决很多大规模高负载系统所面临的问题,在业务量 巨大的分布式系统中提供一个廉价有效、高可用性、高伸缩性、快速响 应的容错服务功能的应用环境。 本论文研究的主要内容包括: 1 ) 负载预测与负载均衡相结合的设计思想 对预测主机负载行为的理论进行研究,并在此基础上提出基于b p 神经网络的预测方法和负载均衡系统逻辑结构。 2 ) 基于软件p r o x y 的e j b 容器集群结构设计 分析常用的应用服务器集群技术的设计方法特点与不足,结合e j b 集群的特点,设计了基于软件p r o x y 方法的e j b 集群模型。 3 ) 基于b p 神经网络的动态负载均衡算法 针对现有j 2 e e 应用服务器静态负载算法的低效和不足,本文采用 基于b p 神经网络的动态负载均衡算法,使用m a t l a b 工具对样本进 行反复训练和仿真实现。 4 ) e j b 容器负载均衡策略的实现 结合设计模式思想,在开源的j b o s s 应用服务器上实现了e j b 容器 集群的关键技术负载均衡策略,并结合负载压力测试工具来验证本策略 的性能和优劣。 本课题的研究方法: 采用理论联系实验的方式进行研究。首先运用数学、统计学、人工 智能学等多学科的知识,设计预测主机负载的预测模型和基于神经网络 的负载均衡系统逻辑结构;然后在基于j 2 e e 规范的j b o s s 应用服务器 上实现e j b 容器集群技术中负载均衡策略;最后,通过实验测试来评价 负载均衡算法的性能。 e j b 容器集群关键技术的研,与改计 1 4 本文组织结构 本文共分六章,具体内容按如下方式进行组织: 第一章:绪论,对论文内容作了整体性的介绍,主要内容包括课题 背景、内容、意义和研究重点。 第二章:研究e j b 容器集群相关技术,包括:集群技术概念,负载 均衡技术,负载均衡算法,e j b 组件框架,以及j a v a 命名和目录接口等。 第三章:阐述了e j b 容器集群服务的系统结构,常用e j b 容器集 群实现的方法,以及集群在j - b o s s 应用服务器上实现的具体过程。 第四章:分析e j b 容器集群的负载均衡策略研究与设计过程。研究 了常用负载均衡算法,提出基于b p 神经网络的预测模型和负载均衡系 统逻辑结构。 第五章:提出了其于软件p r o x y 的e j b 集群系统的设计模型,实现 了其中的关键技术负载均衡策略,然后通过实验来验证其性能的优劣。 第六章:对全文进行总结,并对进一步研究提出展望。 e j b 容器集群关键技术的研究j 砹汁 第一帝集群技术ie j b 技术研究 第二章集群技术与e j b 技术研究 本章研究了集群技术和e j b 组件模型的相关知识。阐述了集群的发 展情况与分类,以及集群中的关键技术负载均衡策略,最后介绍了j 2 e e 应用服务器集群服务中的j n d i 技术。 2 1 集群技术 集群 3 1 ( c l u s t e r ) 是指一群松散结合同构或异构的服务器组合,形 成一个虚拟的服务器,对外提供透明的服务,从而协同地完成特定的任 务。集群是一系列结点的集合。结点可以是集群内的单台服务器,也可 以是服务器中运行的实例。集群系统一般具有高可用性、可伸缩性、负 载均衡、故障恢复和可维护性等特殊性能。 2 1 1 集群概述 早在二十世纪七八十年代,美国d e c 公司和t a n d e m 计算机公司就 开始了集群的研究工作,开发了基于v m s 操作系统的v m s c l u s t e r 集群 系统,但它仅限于在d e c 的x 系列与a l p h a 系列服务器上使用。随 着互联网络技术的发展与应用,各种不同构架的集群相继出现,并得到 了广泛的应用。集群是一种并行或者分布处理系统,它由一组互连的单 机组成,这些单机协调工作提供一个单一的、完整的计算资源【3 j 。集群 是一种分布存储的并行系统,各结点通信主要使用消息传递方式。集群 的典型结构如图2 1 所示【3 】。 网络接口硬件充当一个通信处理器并且负责在集群各节点之间通 过网络或者交换机收发数据包。 通信软件在集群各节点以及集群和外界之间提供了一个快捷、可靠 的数据通信手段。具有特殊网络或者交换机的集群经常采用主动消息以 便在节点间实现快速通信。它们实际上绕过了操作系统,去掉了很多通 信开销,从而给用户提供了到网络的直接访问接口。 7 第二章集群技术与e j b 技术研究 e j b 容器集群关键技术的研究与设计 集群节点既可以作为一个完整计算资源中的组成部分,也可以作为 单独的计算机使用。集群中间件负责提供单一系统镜像的虚拟环境,完 成互连功能,提供一个可用的独立计算机集合。 编程环境能够给应用程序的开发提供可移植的、高效的和易用的工 具,通常包括消息传递库、调试器和描述文档。集群既可以运行串行程 序也可以运行并行程序。 2 1 2 集群的分类 图2 1 集群的典型结构图 根据所要完成任务的不同,目前应用最为广泛的集群计算技术可分 三大类:高可用集群( h i g ha v a i l a b i l i t yc l u s t e r ,简称h ac l u s t e r ) 、负 载均衡( l o a db a l a n c e ) 集群及高性能集群( h i 曲p e r f o r m a n c ec l u s t e r , 简称珊c ) 1 3 1 。 1 ) 高可用集群是指以减少服务中断( 宕机) 时间为目的集群技术。 集群系统的每个服务都有主服务器与( 一台或多台) 备用服务器, 服务由主服务器处理,而备用服务器处于等待状态;集群内各服务器都 运行心跳监听( h e a r t b e a t ) 程序,使用以太网、串口、共享存储等方式 相互发送信息,以检测其它服务器的运行状况;当备用服务器发现主服 务器不能正常工作时,它会自动接管主服务器的服务继续对外服务;当 r e j b 容器集群关键技术的研究1 0 殴| 十 第一章集群技术je j b 挫术f f 究 主服务器恢复正常时,备用服务器又可把服务自动交还主服务器处理; 集群的服务仅在服务器切换过程中可能有短暂中断。 2 ) 负载均衡集群又叫高可扩展性集群,是带有负载均衡策略( 算 法) 的服务器集群。 负载均衡集群在多个节点之间按照一定的策略( 算法) 分发客户请 求或计算任务,从而处理负载。这样系统非常适合运行同一组应用程序 的大量用户,每个节点都可以处理一部分负载,并且可在节点之间动态 分配负载,以实现平衡。负载均衡建立在现有网络结构之上,提供了一 种廉价有效的方法来扩展服务器带宽,增加吞吐量,提高数据处理能力, 同时又可以避免单个节点故障引起的单点失效问题。还可以根据每个节 点上不同的可用资源或网络的特殊环境来进行优化。 服务器l服务器2服务器3 图2 2 负载均衡集群一般框架 该系统使负载在集群中尽可能平均地分摊处理,充分利用集群内各 节点机的处理能力,提高对任务的处理效率。在这种集群中,同一任务 或服务由多个节点共同承担,集群的处理能力是这些节点机处理能力之 和。由于集群内有多个节点可完成同一任务,当某一节点发生故障时, 其它节点仍可继续工作,从而保证了服务的连续性,所以这种集群也有 一定的高可用性。负载均衡集群的一般框架结构如图2 2 所示。 3 ) 高性能集群是指以提高科学计算能力为目标的计算机集群技术。 高性能集群是一种并行计算集群的实现方法。并行计算是指将个 大的普通问题根据一定的规则分为许多小的子问题,在集群内的不同节 第二= 章集群技术与e j b 技术研究 e j b 容器集群关键技术的研究与设计 点上进行计算,而这些小问题的处理结果,经过处理可合并为原问题的 最终结果。可以并行执行的部分指定到多个处理器上执行的方法。目前 很多计算机系统可以支持对称多处理器( s m p ) 架构并通过进程调度机 制进行并行处理。主要用于处理复杂的计算问题,应用在需要大规模科 学计算的环境中,如天气预报、石油勘探与核实验模拟、基因测序等。 如著名的“深蓝”计算机系统就是并行计算机集群的一种实现。 2 1 3 幂等性 幂等性( i d e m p o t e n t ) 指使用相同的参数反复调用而且得到相同的 结剁。数学定义如下: 如果f ( x ) - - y ,那么f ( f ( x ) ) = v 。 分布式系统中的幂等性方法不会影响系统状态的方法。它可以反复 调用而不用担心改变了系统,导致不可用或提供错误结果。一般来说, 任何会改变一个持续存储的方法都不是幂等性的,因为同样的方法调用 两次就会改变持续存储两次。 2 2 负载均衡技术 2 2 1 负载均衡概述 为了改善系统的性能,通过多台计算机之间的合理分配负载,使各 台计算机的负载基本均衡,这种计算能力共享的形式,通常被称为负载 均衡或负载共享。负载均衡的目标是:提供最短的平均任务响应时间; 能适应变化的负载;是可靠的负载均衡机制。 负载均衡是集群系统中的一个重要技术。集群的最大特征是多个节 点的并行和共同工作完成任务,在硬件数目比较多的情况下,即使每个 硬件的m t i t 时间比较长,整体的m 下r f 却会非常低。为了让系统 体现出较好的可靠性,如何让所有硬件承受的负荷平均,不出现局部过 大负载或过轻负载的情况,是负载平衡的重要目的。如果出现局部过大 e j b 容器集群关键技术的研究0 敬计 第一审集群技术与e j b 技术研究 负载,必然导致硬件压力比较大,老化和损坏的可能性比较大:如果出 现局部过轻负载,设备资源被搁置浪费,不符合成本最低原则。 负载均衡包括两种:一种是静态负载均衡;一种是动态负载均衡。 静态的负载均衡,也就是作业的初始放置问题,已经得到了广泛的研究, 可是由于在一给定时刻获取全局状态的精确信息是不可能的,而且根据 该不精确信息做出的调度又不能更改,因而其效果有限。研究表明,大 多数情况下,动态负载均衡要比静态负载均衡性能提高大约3 0 【4 1 。动 态负载均衡【3 l 】【3 2 】【”】,也就是根据处理结点的负载情况动态地改变分配给 他的作业量策略,希望能最好地解决各个节点之间的均衡。 2 2 2 负载均衡器 通常,j 2 e e 服务器集群系统中有一个前端节点,称为分配器或均 衡器( d i s p a t c h e r ) 5 1 ,它是整个集群系统的入口,来自客户端的请求首 先到达均衡器,由均衡器按照一定的分配策略将请求分配到后端的某台 服务器上,服务器根据请求内容提供相应的静态或动态文档。均衡器拥 有集群系统的虚拟i p 地址,也称i p s v a ( s y s t e mv i r t u a la d d r e s s ) f 6 1 , 为集群系统提供单一的系统映像。均衡器主要完成接收请求、请求分配 和请求转发等工作。 接收和转发请求时,根据不同实现方法,均衡器可能接收转发数 据报,也分别与客户端和后端服务器建立t c p 连接,在客户端和服务 器之间充当代理( p r o x y ) 的作用。请求分配是分配器的核心功能,它 直接决定了系统负载在服务器上的分配形式,同时对系统的性能指标有 着非常重要的影响。通过均衡器如何组织集群系统以及分配策略方面有 很多值得研究的内容。 负载均衡器基于硬件、也可以是基于软件的。可以是一个s e r v l e t , 也可以是一个插件( 例如l i n u x 上的i p c h a i n s ) 。绝大多数的应用程序体 系结构往往在缓存层前或w e b 服务器层前采用硬件负载均衡器,这主 要是因为硬件负载均衡器能够在i p 堆栈的4 到7 层中切换请求,从而 提供较高的性能。基于软件的负载均衡器可以作为独立的组件运行,也 第二二章集群技术与e j b 技术研究 e j b 容器集群关键技术的研究与醚计 可以被构建在服务器中。大多数供应商将负载均衡逻辑构建到他们的产 品中。例如,b e a 的w e b l o g i cs e r v e r 有内置的负载均衡器;o r a c l e 9 i a s h t r ps e r v e r 中内建的负载均衡器用于平衡从w e b 服务器层到应用服 务器层的请求。 2 2 3 负载均衡算法 负载均衡是集群中的一种关键技术,它通过负载均衡器将输入的大 量请求任务分发到多个节点来完成,以免让一个节点负载过重。负载均 衡是一种动态均衡,它通过一些算法和工具实时分析数据,把任务合理 分配出去,从而获得系统的高可用性和高性能。 目前,常见的策略( 算法) 有:中心任务调度策略、梯度模型策略、 发送者启动策略和接收者启动策略川【3 4 1 。 1 ) 中心任务调度策略 中心任务调度策略是让一个特定的处理节点担任计算任务分配器 的角色,我们称之为调度节点,而把其它完成计算任务的处理节点称作 计算节点。调度节点为了掌握任务分布情况,需要维护一个任务分布表。 在任务启动时,调度节点装入任务的预分布情况表,而计算节点则 开始完成分配给它的计算任务。在执行过程中,计算节点按照一定的周 期向调度节点提交计算任务完成情况,由调度节点根据这些信息判断处 理节点的处理能力,发出任务迁移指令,控制任务从重负载节点向轻负 载节点流动,同时还要随之更新调度节点上的任务分布表。 2 ) 梯度模型策略 中心任务调度策略中,计算节点越多,冲突就越多。为了减少冲突, 适应大量处理节点的需要。梯度模型策略、发送者启动策略和接收者启 动策略都不设置专用的调度节点,而且每个节点只与一部分节点进行交 互,以减少由负载平衡导致的冲突。 梯度模型策略中,所有处理节点仅与直接相邻的节点进行交互,并 引入两个阈值:m 和m 。在运行过程中,我们将所在节点划分成三类: 设一个节点的剩余任务量为t ,如果t m ,则称之为轻负载节点;如果 l e j b 容器集群关键技术的研究,驶汁 第一帝集群披术,。,e j b 技术研究 ml m 的节点都被称为重负载 节点,t m 的节点被称为轻负载节点。发送者启动策略还需要为每个 节点定义一个相关域,节点只与它的相关域中的节点进行交互和任务传 递。可以将所有与之相邻的节点作为相关域。 在启动时,所有节点开始执行计算任务。在执行一段时间之后,节 点就开始检查其自身是否是重负载节点。如果是重负载节点,则它就试 图在相关域中均匀地分布任务。具体地:设该重负载节点的负载为l 。, 相关域中有k 个节点,其负载分别为1 ,i k ,则平均负载l 。为: 第二章集群投术与e j b 技术研究e j b 容器集群关键技术的研究。j 世计 k 2 志+ p ( 2 1 ) 为了达到均匀分布,应求得重负载节点应该传递给每个相关域中节 点的负载量m k 。首先引入h k 以避免负载被迁移到相关域中负载最重的 重负载节点。如果l 。i k ,则h k = 1 ,否则h k = 0 。n z , m k 为 主_ ,豫一( 易一厶l 譬) 缸矗 ( 2 2 ) i = l 随后该节点就可以按照m 。向各个相关节点发送任务了。我们研究 设计的e j b 容器集群技术就采用这种发送者启动策略。 4 ) 接收者启动策略 接收者启动策略与发送者启动策略除了是由轻负载节点启动,要求 其它节点把任务发送给它之外,其它基本相同。 接收者启动策略同样引入m 以区分轻、重负载节点,引入相关域 以确定交互范围。在启动时,所有节点开始执行计算任务,经过一段时 间之后,一旦某个节点发现自身成为轻负载节点,就试图在它的相关域 中均匀地分布负载。具体地:设该轻负载节点的负载为l 。,相关域中 有k 个节点,其负载分别为l l ,l k ,则平均负载l 。,。为: k 2 志( 易+ 擎) ( 2 3 ) 为了达到均匀分布,应求得相关域中节点应该传递给轻负载节点的 负载量m 。首先引入权h 。以避免负载从负载更轻的相关域中的节点被 迁移到该节点。如果l 。 l k ,则h k = 1 ,否则h k = 0 。那么m k 为 上 m , k = ( 上哪一易) 觑曩 ( 2 4 ) 随后该节点就可以按照m 。发出接受任务的请求了。 2 2 4 静态注册和动态注册 负载均衡通常决定哪个服务器接受一个特定的客户请求。在一个多 层的应用程序中,可以对每层进行负载均衡,而负载均衡器不一定是一 e j b 容器集群关键技术的研究。j 垃汁 个独立的组件。例如,j b o s s 中的负载均衡器,是一个插入式模块。比 如,要进行负载均衡的服务器必须以某种方式向负载均衡器进行注册。 这种注册可以是静态的,也可以是动态的。在静态注册中,管理员 负责服务器的注册,这意味着每次添加或删除服务器时,必须手动编辑 负载均衡器的配置。相反,在动态注册中,负载均衡器和服务器在启动 时动态地发现彼此,负载均衡器通过查询其中的一个服务器获取关于其 他所有服务器的信息来对这些服务器进行注册,或通过发送一个多点传 送的请求,请求每个服务器自己注册。 2 3 e j b 组件模型 2 3 1e , i b 的概述 e n t e r p r i s ej a v a b e a n ( e j b ) 是一个关于用j a v a 语言开发的可部署的服 务器端组件。这个在客户端和服务器端的协议能使组件运行于任何应用 服务器中。e j b 组件是可部署的,它们可被导入到作为组件主机的应用 服务器中1 9 j 。这样,e j b 组件开发人员可以集中精力实现业务逻辑,把 大量资源管理工作留给容器。同时简化开发、配置与部署e j b 的步骤。 标准x m l 部署描述项定义e j b 如何在e j b 容器中工作。 2 3 2e j b 体系结构 e j b 体系结构的客户端包含e j b 接口,用于调用e j b 上的业务特定 方法,以及处理服务器端对象句柄。可以用r m i i i o p 映射作为接口机 制。e j b 基本体系结构【1 0 1 如图2 3 所示。 e j b 体系结构中主要应用程序特定元素有: e j b 客户机:e j b 客户机应用程序使用j n d i ( j a v an a m ea n d d i r e c t o r yi n t e r f a c e ) 查找本地接口,以便按分布式或在同一容器进程中 与e j b 服务器功能通信。 e j b 主接口( 与s t u b ) :对客户机提供分布式操作,生成、删除、 第二章集 洋技术与e j b 技术研究 e j b 容器集群关键技术的研究与设汁 查找e j b 远程接口对象句柄提供相应的操作。s t u b 负责处理主接口请求 和拆装主接口响应。 e j b 远程接口( 与s t u b ) :提供对特定e j b 定义的业务客户机接口 方法。相应的s t u b 负责处理远程接口请求和拆装远程接口的响应。 e j b 实现:由开发人员实现的实际e j b 应用程序组件,提供任何应 用程序特定业务方法的调用、创建、删除、查找、激活、钝化、数据库 存储和数据库加载逻辑。 容器e j b 实现( s k e l e t o n 与代理) :容器管理分布通信s k e l e t o n ,编 组与拆装客户机收发的数据。容器还可以存储e j b 实现实例,并且使用 代理在调用发送给e j b 实现实例之前,执行与特定e j b 有关的服务 管理操作。 2 3 3e j b 的分类 图2 3e j b 基本体系结构 e j b 2 0 定义了三种不同的企业级b e a n 9 】: 会话b e a n ( s e s s i o nb e a n ) :会话b e a n 模拟商务过程对象。代表与 e b 容器集群关键技术的研究i i 驶汁 第一币集群技术,e j b 技术小究 客户的一个对话,并为客户执行动作。 实体b e a n ( e n t i t yb e a n ) :实体模拟商务数据。实体b e a n 是事务型 的,并且只要数据库中的数据存在,则实体b e a n 就存在。 消息驱动b e a n ( m e s s a g ed r i v e nb e a n ) :消息驱动b e a n 是个异步 e j b ,允许j 2 e e 应用程序异步处理消息。 2 4 j a v a 命名和目录接口( j n d i ) j n d i 阿1 0 1 ( j a v an a m i n ga n dd i r e c t o r yi n t e r f a c e ) 是一些标准a p i 接 口,j a v a 程序通过这些a p i 可以访问命名目录服务。j n d i 的定义不依 赖于任何独立的名字目录服务提供者,对于各种名字目录服务器,都可 通过统一的j n d i 接口调用。j n d i 由两部分组成:客户端a p i 和服务技 术接口( s e r v i c ep r o v i d e ri n t e r f a c e ,s p i ) 。j n d i 体系结构如图2 4 所示。 2 5 本章小结 l 客户代码i + j n d i 客户a p i 服务技术接口 l d a p n i s 文什系统 服务技术 服务技术 服务技术 图2 4j n d i 体系结构 本章研究了e j b 容器集群的一些相关技术。其中的关键就是负载均 衡技术。e j b 组件构架是j 2 e e 平台的骨架,j 2 e e 应用程序的内核由一 个或者多个执行应用程序业务操作的企业b e a n 组成,并封装了应用程 序的业务逻辑。e j b 容器为部署在其中的企业b e a n 提供了下列服务: 分布式对象协议、线程管理和同步、进程管理、事务、资源共享、数据 访问、故障恢复、高可用性和集群等。 1 7 第三章e j b 窖器集_ 体系结构研究 e j l 3 容器集群关键技术的研究与设计 第三章e j b 容器集群体系结构研究 本章研究了e j b 容器集群的体系结构。首先阐述了e j b 容器集群 技术,然后分析了典型的e j b 容器集群体系结构、负载算法,最后提供 了在j b o s s 应用服务器上的实现方法。 3 1 概述 分布式计算环境对软件设计提出了较高的要求,软件开发者需要能 快速为不同的中间件构建具有可复用性的集群服务软件。随着大型e j b 系统的发展,引入了e j b 集群技术。e j b 集群就是在集群中的多个的 应用服务器上部署e j b ,实现负载均衡和故障恢复,提高系统的可靠性 和可用性。 3 2e j b 容器集群技术 3 2 1e j b 集群 可以设置集群逻辑( 例如负载均衡或失败转发逻辑) 的地方有:j n d i 驱动程序、容器、主根( h o m es t u b ) 和远程根( r e m o t es t u b ) 1 0 2 7 1 。 供应商可以在j n d i 驱动程序中执行负载均衡逻辑,此驱动程序通常用 于放置主对象,j n d i 驱动程序能够跨多台机器。通过容器来设置集群 逻辑,当负载减轻时,可以继续对新请求提供服务。主根是远程客户访 问的第一个对象,本地运行在客户虚拟机上。因为根代码由供应商自动 生成根内的基础逻辑应该是供应商特定的。供应商可以

温馨提示

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

评论

0/150

提交评论