组通信在高可靠服务集群中的应用
来源:核心期刊咨询网时间:12
摘要:摘要:组通信是构造高可靠分布式系统的重要基石。以组通信技术为基础,提出了基于Internet的多媒体考试系统平台中集群管理器的结构和设计,详细描述了实现中所采用的可靠全序组播算法、组成员管理、流量控制算法、负载平衡及失效转发算法。 引言 []当前,企
摘要:组通信是构造高可靠分布式系统的重要基石。以组通信技术为基础,提出了基于Internet的多媒体考试系统平台中集群管理器的结构和设计,详细描述了实现中所采用的可靠全序组播算法、组成员管理、流量控制算法、负载平衡及失效转发算法。
引言
[]当前,企业级的计算系统应用日益广泛,而高可用性、高容错性和高可靠性是这些企业级的关键性应用所必须具有的特性,使用集中式的服务架构将无法满足这些需求。
近十年来,组通信(Group Communication)[1][2][3]领域的研究取得重大进展,对于可靠组播、消息排序、失效检测等关键性问题都已提出了不少解决方法。一些操作系统[4]和数据库系统[5]都已经使用组通信技术来构造集群系统。
本文以我们开发的基于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。
结论
本文详细说明了我们采用的可靠全序组播算法、组成员管理、流量控制算法、负载平衡和失效转发机制。具有较高的性能。
转载请注明来自:http://www.qikan2017.com/lunwen/dzi/4848.html
相关论文阅读
- 2022-09-28创新要素对涉农科技型企业发展质量的影响
- 2022-09-19“一带一路”建设框架下中非经贸合作的机遇与挑战
- 2022-07-14多媒体计算机技术在广播电视工程中的应用
- 2022-07-12高校教务管理信息化的优势及发展趋势
- 2022-07-04探讨光伏发电技术中分布式控制的有效应用
- 2022-07-02计算机通信网络安全维护措施研究
- 2022-06-30在线实训教学模式在电子商务教学中的应用研究
- 2022-06-25低代码数据接口开发架构的研究与实现
- 2022-06-24区块链技术对审计模式优化的探索
- 2022-05-28云网安全防护运维管控的研究
期刊论文问答区
- 2025-04-24英文期刊发表论文几个版面起发
- 2025-01-21论文顺利通过审稿的8个操作
- 2025-01-11管理学类30本期刊(国自然基金委员会认定)
- 2025-01-02电刺激治疗相关文章选题推荐
- 2024-12-17植物学比较热门的论文选题
- 2024-12-03人事管理方面文章选题推荐和发表期刊
- 2024-11-18金融学专业的论文选题方向推荐
- 2024-11-01教育核心期刊有哪些
- 2024-07-12学术论文初审是谁在审?审什么?审多久?
- 2024-07-02管理学cssci期刊目录(36本)
电子信息优质期刊
- 1国家级《计算机与网络》
- 2国家级《解放军理论学习》
- 3省级《工程技术研究》
- 4核心级《无线电通信技术》
- 5省级《常州工学院学报》
- 6省级《计算力学学报》
- 7核心级《电子技术与软件工程》
- 8省级《天津大学学报:自然科学与工程技术版》
- 1国家级《计算机与网络》
- 2国家级《解放军理论学习》
- 3国家级《机电元件》
- 4国家级《中国电子科学研究院学报》
- 5国家级《电子科学学刊:英文版》
- 6国家级《材料科学技术学报:英文版》
- 7国家级《电光与控制 》
- 8国家级《测绘学报》
- 1省级《工程技术研究》
- 2省级《常州工学院学报》
- 3省级《计算力学学报》
- 4省级《天津大学学报:自然科学与工程技术版》
- 5省级《福建电脑》
- 6省级《计算机技术与发展》
- 7省级《深圳大学学报:理工版》
- 8省级《测绘科学与工程》
- 1核心级《无线电通信技术》
- 2核心级《电子技术与软件工程》
- 3核心级《润滑与密封》
- 4核心级《计算机应用与软件》
- 5核心级《电讯技术》
- 6核心级《固体电子学研究与进展》
- 7核心级《自动化学报》
- 8核心级《华东电力》
最新期刊更新
- 《中国政府采购》
- 《中国政府采购》
- 《农业图书情报学刊》
- 《农业技术经济》
- 《水文地质工程地质》
- 《房地产世界》
- 《中央民族大学学报:哲》
- 《广州化学》
- 《物理学报》
- 《东方宝宝》
- 《新能源进展》
- 《热带农业科学》
- 《建筑经济》
- 《中国学校卫生》
精品推荐
- 12022-09-28创新要素对涉农科技型企业发展质量的影响
- 22022-09-19“一带一路”建设框架下中非经贸合作的机遇与挑战
- 32022-07-14多媒体计算机技术在广播电视工程中的应用
- 42022-07-12高校教务管理信息化的优势及发展趋势
- 52022-07-04探讨光伏发电技术中分布式控制的有效应用
- 62022-07-02计算机通信网络安全维护措施研究
- 72022-06-30在线实训教学模式在电子商务教学中的应用研究
- 82022-06-25低代码数据接口开发架构的研究与实现
- 12018-05-06机器人研究方向有哪些核心期刊比较好投
- 22017-09-07国内电气工程方面的普刊有哪些?
- 32018-03-02电气审稿较快的期刊
- 42022-02-26人工智能在财会领域的运用与应对策略
- 52021-11-17港口码头系统智能化应用的现状与发展
- 62022-02-26电气工程及其自动化技术在电力系统中的应用分析
- 72022-03-01数据管理视角下的内控信息化建设
- 82022-06-30在线实训教学模式在电子商务教学中的应用研究
- 12025-04-24英文期刊发表论文几个版面起发
- 22025-04-24声音与振动杂志JOURNAL OF SOUND AND VIBRATION期刊收稿方向
- 32025-02-12“互联网+”时代的农产品营销与农业经济发展
- 42025-02-12羊肉消费市场调研
- 52025-02-12文创产品营销策略
- 62025-01-21论文顺利通过审稿的8个操作
- 72025-01-15经济学英文论文好发的期刊《Energy Economics》
- 82025-01-11管理学类30本期刊(国自然基金委员会认定)
- 12021-05-24刊号字母G、G0、G1、G2、G3、G4、G8是什么意思
- 22021-05-06论文引用率不能超过多少
- 32018-09-11语法翻译法的运用以及优缺点分析
- 42020-03-08发表在期刊上的论文一般多少字
- 52020-09-21疾控中心工作怎么评职称
- 62020-01-03新北大核心什么时候更新,几年更新一次
- 72020-03-08通讯作者和二作哪个含金量比较高
- 82021-02-23发表的期刊论文见刊的时候可以在知网查到吗