组通信在高可靠服务集群中的应用

来源 :计算机光盘软件与应用 | 被引量 : 0次 | 上传用户:XINGQIPING
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:组通信是构造高可靠分布式系统的重要基石。以组通信技术为基础,提出了基于Internet的多媒体考试系统平台中集群管理器的结构和设计,详细描述了实现中所采用的可靠全序组播算法、组成员管理、流量控制算法、负载平衡及失效转发算法。
  关键词:组通信;多媒体考试系统
  中图分类号:TP311.52 文献标识码:A 文章编号:1007-9599 (2012) 11-0000-02
  一、引言
  []当前,企业级的计算系统应用日益广泛,而高可用性、高容错性和高可靠性是这些企业级的关键性应用所必须具有的特性,使用集中式的服务架构将无法满足这些需求。
  近十年来,组通信(Group Communication)[1][2][3]领域的研究取得重大进展,对于可靠组播、消息排序、失效检测等关键性问题都已提出了不少解决方法。一些操作系统和数据库系统都已经使用组通信技术来构造集群系统。
  本文以我们开发的基于Internet的多媒体考试系统平台作为实例,具体描述了将组通信技术应用于构造服务集群系统的方法。
  二、系统需求和体系结构
  基于Internet的多媒体考试系统平台提供从题库系统、成卷系统、考试规划一直到计算机考试、自动阅卷、答卷信息评价的全线服务,自动化程度高,实现了考试的完全无纸化。它对于系统的性能提出了以下需求:
  高扩展性:由于可以通过Internet进行考试,考生人数不受局域网计算机数的限制,因此要求系统必须能够承受大量考生同时参加多门课程的考试,而不会产生性能瓶颈。
  高可靠性:考试信息、试题、考生答案等重要数据不能丢失。
  高可用性:当系统出现故障时,应该在限定时间内(秒级)自动恢复,不影响考试的进行。
  为了满足以上需求,我们基于组通信技术将系统设计为一个集群结构,其包含多个考试服务器,客户端通过负载平衡技术选择一个服务器进行通信,当连接的服务器失效后,客户端可以重新连接到其他服务器,继续进行相关的操作而考试不受影响,这一过程对于用户(考生)是透明的。
  每个服务器结点主要由web服务、集群管理器(Cluster Manager,CM)、考试服务器(Exam Server,ES)和数据库服务器四种服务组成,其中CM主要负责使用组通信协议和其它结点的CM进行可靠通信以实现状态复制,ES和数据库服务器进行交互,具体实现应用逻辑如登陆、交卷、查询等。
  集群管理器CM主要包括以下处理模块:
  可靠全序组播:由于一个节点的消息要发送给集群内所有其他节点,为了使节点之间进行高效的消息传输,采用组播(multicast)方式,实现一对多通信。但是其缺陷是不能保证消息的可靠传递,此外为了保证各节点的状态一致,使各个节点按照相同的顺序接收消息也很重要(即全序,Total order)。可靠全序组播模块就是要保证节点之间使用IP multicast达到消息的可靠、全序传递的目的。
  组成员管理:将集群内的服务节点有机组织起来,负责节点的加入、离开和失效的处理,保证所有生存的节点保持相同的组成员视图。
  流量控制:如果一个结点由于不能及时处理接收的消息而导致其缓冲区溢出,从而引起大量消息重传。为此采用流量控制机制控制消息的发送速率,以达到流控的目的。
  三、可靠全序组播
  每个结点都各自维护着一个本地消息计数器,作为发送的消息的顺序号,称为结点顺序号。当某个结点要向全组的结点发送消息m时,给m设置结点顺序号,然后将m发送给集群内一个称为sequencer的结点S(sequencer的产生见下一节)。S还维护着一个全局消息计数器,称为全局顺序号。S每收到一个消息,就给消息设置全局顺序号,再将消息放入它的发送队列。一个线程负责将发送队列中的消息依次按照一定速率在网络中组播。
  发送结点将消息m发送给S后,以组播形式接收,如果接收到m,则说明m已经可靠到达S,可以继续发送下一个消息;如果在一定时间内未接收到m,则认为m丢失,重新发送m直到S接收成功为止。同时,S记录着每个结点最后发送的消息的结点顺序号,从而避免接收到重复消息。
  所有接收结点对于S组播的消息采取负向应答方式。每个结点都记录着下一个预期接收的消息的全局顺序号Ne。当接收到全局顺序号为Nm的消息时,如果Ne>Nm,则说明此消息是重复消息,将其丢弃;如果Ne=Nm,则将此消息放入接收队列,并且Ne加1;如果Ne<Nm,说明有消息丢失,向S发送一个NACK应答消息,其包含全局顺序号Ne。S接收到NACK后,将从Ne到当前全局顺序号的消息放入到发送队列(去掉重复的消息)重新组播发送。由于接收者是根据新收到的消息序号来判断是否有消息丢失,当S没有消息发送时,则接收者将无法判断丢失情况。因此,当S的发送队列没有消息后,S会周期性的组播一个Declare消息,声明当前的全局顺序号,以激发丢失消息的接收者进行应答。
  四、组成员管理
  (一)结点启动和加入
  结点p启动后,首先周期性的组播一个Discover消息,以查找当前集群内的sequencer;如果在一定时间内(10秒)没有收到应答,则将自己设置为sequencer,初始化各种状态,建立集群并准备接受其它结点随后的加入。
  如果集群已经存在,则当前的sequencer S接收到Discover消息后,对p进行权限验证,如果合法,则向p发送应答,然后S将当前成员列表信息和应用状态信息(如已登陸考生信息、已交卷考生信息等)发送给p,状态传输完成后,S使用可靠组播向其它所有结点发送p加入的消息。各结点都更新自己的成员列表信息。p正式加入了集群。   由于每时刻只能有一个结点加入,如果这时S在处理其它结点的加入,S向p发送Waiting消息,p等待一段时间后重新再加入。
  如果这时恰好S失效(见下文),则集群内的结点向p发送Waiting消息,p等待一段时间后重新再加入。
  (二)结点离开
  如果结点p要离开集群,则向sequencer S发送Leave消息,S接收到后,使用可靠组播向其它所有结点发送p离开的消息。各结点都更新自己的成员列表信息。然后S向p发送应答,同意其离开,p正式离开集群。
  如果这时S恰好失效,则p将等到新的sequencer产生后再重新发送Leave消息。在p正式离开之前,它仍是集群内的成员。
  五、流量控制
  集群系统不但要保证所有成员节点具有一致的正确状态,而且要具有良好的性能。
  方法是:在sequencer发送每个消息时引入一个可变的延迟时间T。T的初值为0,这时sequencer发送消息而没有延迟;每当sequencer接收到一个NACK的应答时,T增加2ms,当T增加到30ms时,将不再增加;每当sequencer连续发送30个消息而沒有收到NACK并且T>0时,则T减小3ms(当T<0,则T=0)。这样延迟时间缓慢上升,而下降较快,以便系统尽力保持较好的性能。
  六、负载平衡和失效转发
  我们采取在客户端进行负载平衡。具体过程如下:
  首先浏览器下载ActiveX客户端后,客户端执行,其首先向下载服务器的CM发出请求,CM将当前集群内各成员结点的相关信息和一个称为视图id的值返回给客户端,然后客户端采取具体的负载平衡算法如随机法、轮流法等选择一个服务结点,请求其服务。这样不同客户端的请求可以由集群内各结点分担处理。当连接的服务结点不可用时,客户端重新选择一个服务结点就可以继续运行。
  由于集群内的结点可以动态加入、退出或者失效,因此客户端所保存的成员结点的信息可能不准确,对于这个问题我们的解决方法是:客户端初始从下载服务器的CM得到了一个视图id,以后每次客户端向服务器发出的请求都包括该视图id,服务器检查该视图id是否与自己的视图id相等,如果不等则说明客户端的成员结点的信息已经过时,于是向客户端发送目前最新的成员结点信息和新的视图id。
  七、结论
  本文详细说明了我们采用的可靠全序组播算法、组成员管理、流量控制算法、负载平衡和失效转发机制。具有较高的性能。
  参考文献:
  [1]Gregory Chockler,Idit Keidar, and Roman Vitenberg.Group communication specifications:A comprehensive study.ACM Computing Surveys,33(4):1-43,December,2001
  [2]K.P.Birman.A Review of Experiences with Reliable Multicast.Software-Practice and Experience,29(9),741-774,1999
  [3]KAASHOEK,M.F.AND TANENBAUM,A.S.An evaluation of the Amoeba group communication.system.In 16th International Conference on Distributed Computing Systems (ICDCS) (May),436-447,1996
其他文献
数学作为一门应用性比较强的学科,一直以来都是素质教育的重要内容,特别是对于初中阶段的学生来说,因此在初中数学的教学过程中,要想达到较好的教学效果,必须加强对学生数学解题思
摘要:采用微波联合酶法提取柚皮黄酮,探讨了微波功率、微波处理时间、酶解温度、酶液用量、酶解时间和缓冲液pH值对黄酮提取率的影响,并通过正交试验对提取工艺进行优化。红外光谱分析显示,提取物为典型的黄酮类化合物。正交试验结果表明,在微波功率350 W、微波处理时间10 min、酶解时间90 min、酶液用量0.9%(m/m)、酶提取温度 55 ℃ 和缓冲液pH值4.5的条件下,黄酮的提取率可达到5.9
在电信事业不断发展与变革的今天,对于通信工程这个在整个电信行业中占有重要地位的项目而言,它面临的既是挑战又是机遇。对通信工程成本进行控制,能够使得通信工程承包商抓住机
针对目前干旱半干旱区存在的土壤盐渍化问题,以新疆维吾尔自治区渭干河-库车河三角洲绿洲为研究区,对土壤样品总盐含量及其光谱反射率进行测量。经过15种数学变换,遴选出达到
明朝中期正德六年(1511年)三月初的一天。曲阜城下箭石纷飞,烟尘滚滚,杀声震天,农民起义军正在猛烈攻城……
<正> 孔学名高实粃糠 ——项橐诘孔 孔老二从维护和复辟奴隶制的政治需要从发,打肿脸充胖子,吹嘘自己是天生的“上智”,装腔做势,借以吓人;历代反动派为了维护和复辟旧制度,也把他们的祖师爷孔老二捧为“圣人”、“大学问家”,好借这块敲门砖,敲开自己的幸福之门。 《三字经》中“昔仲尼,师项橐”就是这样的例子。按照《三字经》的说法,好
摘要:研究化学抑制剂仲丁灵的抑芽机制,为西瓜省力化栽培提供科学依据。采用稀释70倍的37.3%仲丁灵乳油对西瓜腋芽进行涂抹,研究仲丁灵对西瓜腋芽细胞膜通透性、各种防御酶活性的影响。通过使用化学抑芽剂仲丁灵,西瓜腋芽的细胞膜通透性发生了改变,施药后7 d过氧化物酶(POD)活性(鲜质量)达到最大值,为 5 441.09 U/(g·min),SOD活性(鲜质量)在施药后14 d也达到峰值,为140.4
数学在我国教育体系中占有重要位置,是时间跨度比较长的一个教学科目.对于许多学生而言,数学学习一直是重点但是同时也是难点,对于教师而言数学同样是教学工作中的一个难点.提升课
作业批改对于小学语文教师来说是一项常规的工作,同时也是语文课堂延伸的有效途径。在小学语文教学中,教师可借助作业批改,指导学生正确进行语文学习,帮助学生点亮前行的道路。另外,教师也可通过科学的作业批改来检视自身的教学方法是否合理,并依据此及时调整教学方案,以达到有效教学的目的。  一、运用鼓励性评语,帮助学生树立信心  在小学语文作业批改中,教师可通过评语的方式,让学生了解到自身对语文作业完成的不足
在初中数学教学中,教师应注重学生发散思维和创造力的培养.而在解题中,挖掘错因,寻求变化,探索方法则是培养能力最直接有效的策略.