




已阅读5页,还剩72页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
密级: 硕士学位论文一种数据交换服务器集群系统的设计与实现作者姓名:柳丽 指导教师:叶丹 副研究员 软件研究所 学位类别:工程硕士 学科专业:软件工程 培养单位:软件研究所 2014 年 4 月Design and Implementation of a Data Exchange Server ClusterA Dissertation Submitted to University of Chinese Academy of SciencesIn partial fulfillment of the requirement For the degree ofMaster of Software EngineeringApril, 2014独创性声明本人声明所呈交的论文是我个人在导师指导下进行的研究工作 及取得的研究成果。尽我所知,除了文中特别加以标注和致谢的地方 外,论文中不包含其他人已经发表或撰写过的研究成果。与我一同工 作的同志对本研究所做的任何贡献均已在论文中作了明确的说明。签名: 日期: 关于论文使用授权的说明本人完全了解软件研究所有关保留、使用学位论文的 规定,即:软件研究所有权保留送交论文的复印件,允许 论文被查阅和借阅;软件研究所可以公布论文的全部或部 分内容,可以采用影印、缩印或其它复制手段保存论文。(保密的论文在解密后应遵守此规定)签名: 导师签名: 日期: 摘要一种 数据交换 服务器 集群系统的 设计 与实现 摘要 随着信息化建设的不断发展,大中型企业和机构纷纷建立起庞大而复杂的信息系统。这些系统通常缺乏统一的规划和标准,难以实现信息的共享和数据一致 性的保证。因此,如何在各个信息系统之间建立统一、规范的接口,实现对分布、 独立、异构数据的交换和共享,消除信息孤岛,已经成为新型信息化应用的研究 热点。数据交换平台正是针对上述需求而产生的。数据交换平台是一种提供高效、 安全的数据交换服务的平台,不同的业务系统通过统一规范的接口接入数据交换 平台可以实现数据的交换。在使用数据交换平台的过程中,业务系统将抽取、转换的数据,按照统一的 格式封装成消息,交给数据交换服务器,由数据交换服务器将消息传输到目的业 务系统的数据交换服务器,由目的业务系统取出。企业的总部作为数据交换的中 心,其数据交换服务器面临着巨大的压力,容易成为数据交换的瓶颈。现有的 OnceDeep 数据交换平台采取在中心部署多台 OnceDeep 数据交换服务器的方案 来突破这一瓶颈,但如何管理这些服务器是一个挑战。为了满足数据交换中心的高性能、高可靠性需求,本文基于现有的 OnceDeep 数据交换平台,使用 Java 集群框架 Shoal,构建了 OnceDeep 数据交换服务器集 群系统。本文提出了 OnceDeep 数据交换服务器集群系统的架构,设计了集群环境下 新的数据交换过程;在集群节点管理方面,扩展了 Shoal 框架的集群节点状态, 增加了对节点加入和退出集群的控制;在负载方面,通过分析和实验得出内存占 用是负载最关键的指标,针对不同类型的任务进行建模,预测负载信息采集周期 内某时刻的内存负载,设定负载的阈值,有效防止节点因负载过重而崩溃,保证 了服务质量;在负载均衡方面,针对数据交换任务的特点设计了负载均衡算法, 提高对集群资源的利用率;为提高系统可靠性,对因网络故障、节点失效等原因 引起的数据交换任务的中断提供任务的失效恢复功能;基于 OnceDeep 服务器提 供的 WebService 接口,为应用程序提供统一的 API,保证集群拓扑对应用的透 明性。最后,本文给出了 OnceDeep 数据交换服务器集群系统的详细设计和系统实 现,测试表明该集群系统具有很好的性能和扩展能力。关键词:数据交换平台,集群,负载均衡,失效恢复IAbstractDesign and Implementation of a Data ExchangeServer ClusterXiao Yan (Software Engineering) Directed by Ye DanAbstractWith the rapid development of information construction, large scale information systems have been adopted by more and more enterprises and institutions. Due to the lack of planning and standards, it is difficult to achieve information sharing and data consistency guarantee among these systems. Therefore, establishing uniform interface among these systems has become critical work. Data exchange platform, based on the unified middleware, is efficient and secure, meeting the above requirements.In the process of using a data exchange platform, data extracted and transformed from business system will be enclosed into a message in accordance with the format, and transmitted to the data exchange server, by which the message will be transmitted to the target business systems data exchange server. Data exchange server in the center faces much pressure and has become the bottleneck of data exchanging. Existing OnceDeep data exchange platform uses more than one servers to eliminate the bottleneck. But how to manage these servers is a very important issue.OnceDeep is an existing data exchange platform. This article aims at the cluster version of OnceDeep. To satisfy the demands on throughput, performance and reliability of data exchange center, this article takes the best benefits of Shoal, which is one kind of Java clustering frameworks.This paper proposes cluster architecture of OnceDeep and demonstrates a new data exchange process under the cluster. In cluster node management, this paper expands the Shoals node status model, adding the control of joining and exiting the cluster. In the aspect of load balance, this paper finds that memory is the most critical load indicator through the analysis and experiments. By modeling different types of tasks, this paper forecasts loads within a load collecting cycle. Then by setting a load threshold, this paper effectively prevents node collapse and ensures the quality of service. In the aspect of load balance, it improves the cluster resource utilization through a load balance algorithm. To improve system reliability, it provides failure recovery mechanism. The system provides a unified API for applications, using a web service interface to ensure the transparence of cluster topology for applications.The design and implementation of the system is given. And finally, experiments are carried out to verify the systems performance.Keywords: Data Exchange Platform, Cluster, Load balance, Failure recoveryIII目录目 录7摘要IABSTRACTIII目 录V第一章 绪论11.1 研究背景11.2 论文的主要工作21.3 论文内容的组织3第二章 数据交换与集群相关技术52.1 数据交换与共享解决方案52.1.1 基于点对点的接口应用52.1.2 数据转移工具52.1.3 联邦数据库52.1.4 基于统一的中间件62.2 集群相关技术72.2.1 集群管理82.2.2 Shoal 框架82.3 数据交换服务器集群系统研究现状92.4 OnceDeep 数据交换平台102.4.1 OnceDeep 系统架构102.4.2 OnceDeep 的数据交换过程112.4.3 OnceDeep 问题分析112.5 本章小结12第三章 OnceDeep 数据交换集群系统架构133.1 OnceDeep 数据交换集群系统拓扑结构133.2 OnceDeep 数据交换集群系统整体架构143.2.1 数据交换集群系统整体结构143.2.2 整体软件架构143.2.3 主节点和子节点架构153.3 集群系统数据交换过程173.3.1 客户端与服务器建立连接173.3.2 集群与集群的数据交换173.3.3 集群与单机的数据交换183.4 优点与不足193.5 本章小结20第四章 OnceDeep 数据交换集群系统关键技术研究214.1 OnceDeep 数据交换集群节点管理214.1.1 集群节点管理问题分析214.1.2 扩展的节点状态模型224.1.3 集群信息维护234.1.4 集群节点部署流程244.2 数据交换服务器负载预测254.2.1 负载信息收集与管理254.2.2 数据交换任务资源消耗建模254.2.3 数据交换服务器负载预测264.2.4 数据交换任务的准入控制274.3 集群节点的负载均衡274.3.1 负载信息建模274.3.2 负载均衡算法284.3.3 负载均衡流程284.4 数据交换任务的失效恢复284.4.1 失效分类与检测284.4.2 连接失效的任务恢复策略304.4.3 节点失效的任务恢复策略324.4.4 垃圾数据清理334.5 本章小结34第五章 OnceDeep 数据交换集群系统实现与测试355.1 OnceDeep 集群系统的整体框架355.2 主节点管理器的实现375.2.1 主节点的实现385.2.2 监听器的实现385.2.3 信息维护395.2.4 负载预测与负载均衡40VI5.3 子节点管理器的实现405.4 集群节点管理器的实现435.5 失效恢复的实现455.5.1 相关类图455.5.2 失效恢复时序图455.6 客户端 API 的实现485.7 系统测试505.7.1 测试环境505.7.2 单机与集群性能对比测试505.7.3 集群扩展能力测试515.7.4 算法性能对比测试525.8 本章小结53第六章 结束语546.1 论文工作总结546.2 未来的工作55参考文献57致谢61目录VII第一章 绪论第一章 绪论1.1 研究背景随着信息化建设的不断发展,大中型企业和机构纷纷建立起庞大而复杂的信 息系统。这些系统缺乏统一的规划和标准,难以实现信息的共享、保证数据的一 致性,形成了大量孤岛式的业务应用系统1。因此,如何在各个信息系统之间建 立统一、规范的接口,实现对分布、独立、异构数据的交换和共享,已经成为新 型信息化应用的工作重点。为此,工业界与学术界提出了多种数据交换与共享解 决方案。数据交换与共享的解决方案主要分为以下四种:基于点对点的应用接口、数 据转移工具、使用联邦数据库和基于统一中间件的方案。数据交换平台是一种基 于统一中间件的数据交换与共享方案。数据交换平台在政务2、金融3、医疗4、电力5、电子商务6、物流7、广 电8、交通9等领域有广泛的应用,发挥着越来越重要的作用。数据交换平台是 一个分布式系统,由分布在各个机构、单位、子机构、子单位内部的数据交换服 务器构成。它负责数据的交换,包括数据的传输、数据的路由、数据的查询、数 据的 ETL(抽取、转换、加载)等。在使用数据交换平台过程中,首先,由业务 系统将抽取、转换的数据,按照格式封装成消息,交给数据交换服务器;然后, 由数据交换服务器将消息传输到目的业务系统的数据交换服务器;最后,由目的 业务系统取出消息。数据交换平台的中心节点负载压力大。企事业单位的总部作为数据交换的中 心,其数据交换服务器面临着巨大的压力,容易成为数据交换的瓶颈。例如,在 现实应用场景中,有分公司向总部汇总数据、总部向分公司分发数据,下级向上 级汇总数据、上级向下级分发数据的情况,如图 1-1、图 1-2 所示。3分公司 2分公司 3分公司 4中央电子政 务系统分公司 1总部分公司 N市电子政 务系统市电子政 务系统市电子政 务系统分公司 5省电子政 务系统省电子政 务系统省电子政 务系统市电子政务系统图 1-1 数据汇总与分发图 1-2 上下级之间数据交换 在上述应用场景中,数据交换平台服务器之间的拓扑结构呈星型或树状分布。星型的中心节点、树形的非叶子节点尤其是根节点,在数据交换中面临着巨大的负载压力。(1)数据汇总与分发需要处理的数据量大、并发连接多,要求总部的数据 交换服务器具有高性能。(2)数据的汇总和分发,往往有时间限制,要求总部的数据交换服务器具 有高性能。(3)数据交换节点需要保持 724 的连续不断的运行,求数据交换服务器 具有高可用性。受网络带宽、CPU 处理能力、内存等性能因素的限制,一个数据交换服务 器所能接受的并发连接数有限。数据交换并发量高时,只用一台数据交换服务器 显然满足不了对性能的需求;一台服务器一旦出现故障,所有正在进行的数据交 换任务都将受到影响,单台服务器性能的提高无法彻底解决问题。所以,数据交 换并发量高的总部、或者不是总部但是数据交换非常频繁的热结点,必然要有多 台数据交换服务器共同运行,提供服务。OnceDeep 数据交换平台目前采用的方案是在总部部署多台数据交换服务器, 人工设定总部的每台数据交换服务器负责与哪些分公司/下级单位的数据交换服 务器进行数据交换。这种方案具有明显的缺点:n可扩展性差 每加入或减少一台数据交换服务器,都需要重新设定对应关系,管理成本高。n负载不均衡 因为各个分公司、下级单位的数据交换量有差异,数据交换的时间也可能不一致,所以会出现某台服务器很忙但其他服务器很闲的状况,负载不均衡,不能充分利用多台服务器的资源。n可靠性低 一旦某台服务器出现故障,由这台服务器的负责的数据交换任务全部中断;而且如果该服务器不能恢复,所有中断的任务将无法恢复。构建数据交换服务器集群系统可以满足数据交换中心对性能、可靠性的需求。 数据交换平台以及数据交换任务具有自身的特点,分析其特点,结合现有的集群 技术,设计高效的负载均衡算法和失效恢复策略,是本文的主要工作。1.2 论文的主要工作论文对在数据交换负载高的节点构建 OnceDeep 数据交换服务器集群的相关 问题进行了研究。对如何提高对集群节点的管理能力、提高集群的性能和可靠性 方面进行了深入研究。论文主要完成以下工作:n提出了基于 Shoal 的 OnceDeep 数据交换集群系统的架构为了实现多台 OnceDeep 服务器的管理,需要构建 OnceDeep 服务器集群系 统。本文采用 Shoal 集群框架,基于现有 OnceDeep 数据平台,设计了 OnceDeep 集群系统的架构,并设计了集群环境下新的数据交换流程。n设计了集群节点管理策略Shoal 框架提供的集群节点管理功能无法满足数据交换平台的实际需求。本文在集群节点管理方面,扩展了 Shoal 框架的集群节点状态,增加了对节点加入、 退出集群的控制等功能。n负载预测和负载均衡 每个集群节点能够承受的负载有限,过量的负载会导致系统崩溃;各个节点之间任务分配不均衡,无法提高集群系统的资源利用率。本文在负载方面,通过分析和实验得出内存占用是负载方面最关键的指标,针对不同类型的任务进行建 模,预测负载信息采集周期内某时刻的内存负载,并设定负载阈值,有效防止节 点因负载过重而导致系统崩溃,保证了系统的服务质量;在负载均衡方面,针对 数据交换任务的特点设计了负载均衡算法,提高对集群资源的利用率。n面向数据交换任务的失效恢复机制 对因网络故障、集群节点失效等原因引起的任务的短时中断和长期、永久中断,制定了相应的恢复机制。根据客户端任务请求的类型,设计不同的连接恢复策略;根据服务器之间已经完成传输的文件大小,设计服务器间重连次数算法; 根据子节点之间是否共享存储,分别给出报告失效状态和将失效子节点的任务转 移到其他节点的机制。1.3 论文内容的组织论文的后续章节按如下方式组织: 第二章介绍了数据交换与共享解决方案、集群相关技术,重点介绍了 Shoal分布式集群框架和现有 OnceDeep 数据交换平台。分析了构建 OnceDeep 的数据 交换服务器集群系统面临的挑战。第三章提出了基于 OnceDeep 的数据交换服务器集群系统的架构。该架构分 为集群基础框架层、集群管理层、OnceDeep 层、客户端 API 四个层次。子节点、 主节点以及客户端 API 的功能相互协作实现集群环境下的新的数据交换的过程。第四章解决了构建 OnceDeep 数据交换服务器集群的关键问题。围绕集群节 点管理、负载预测、负载均衡和失效恢复四个方面展开研究。分析关键技术,给 出相应的解决方案。第五章给出了数据交换服务器集群系统的设计与实现。详细介绍了该集群主 要模块的实现,给出了系统测试及分析结果。第六章对全文进行总结,并对未来工作进行展望。第二章 数据交换与集群相关技术第二章 数据交换与集群相关技术为了实现对分布、独立、异构数据的交换和共享,工业界与学术界提出了多 种数据交换与共享解决方案,基于中间件的数据交换平台就是其中之一。集群技 术可以在付出较低成本的情况下获得性能、可靠性等方面的提升,集群节点管理、 负载均衡、失效恢复是集群技术的关键。Shoal 是一个分布式 Java 集群框架, OnceDeep 是现有的一种基于中间件的数据交换平台。2.1 数据交换与共享解决方案2.1.1 基于点对点应用接口基于点对点的接口应用,即当两个系统之间需要相互协作时,为这两个系统 开发相应的连接适配器组件(Adapter)将两者互联,如图 2-1。图 2-1 点对点应用接口结构 其缺点是任何一个系统的升级或改动都可能影响到其它与之相关的应用系统;同时,将一个新的应用系统纳入整个应用集成体系的工作非常复杂。2.1.2 数据转移工具很多数据库管理系统都提供了将外部文件中的数据存入到数据库的工具。常 见的有 ORACLE 导入导出工具10、SQL Server 的 DTS11工具等。使用上述的工 具虽然可以完成一些数据交换的任务,但是这些工具有很大的缺点:DBMS 访问 的机制单一、固定,通用性差。它只解决了关系数据库等结构化数据的共享和交 换的问题,没有涉及其他类型的数据(例如文件系统中的非结构化文件、业务系 统中的消息),在实际生产环境中表现出了明显的局限性。2.1.3 联邦数据库联邦数据库12是分布式数据集成系统的一种特殊形式,它是多个互相协作 的自治数据库的集合。根据组织方式的不同,它分为紧耦合和松耦合两种。在紧 耦合的联邦数据库中,管理和操作针对整个联邦;而在松耦合的联邦数据库中, 组件数据库有某种程度的管理独立性。在联邦数据库中,根据用户的需求可以构55建多个联邦模式,每个联邦模式仅覆盖有限的局部模式,与使用统一的全局模式 相比,降低了模式构建的复杂性。联邦数据库将各个应用系统中的异构数据库联 合在一起,对外提供一个统一的数据访问模式。2.1.4 基于中间件数据交换中间件是在各应用间起到桥梁作用的平台。它实际上起到了一个 Application Hub 的作用,如图 2-2 所示。它克服了传统点对点模式的缺点,采用 了 Enterprise Service Bus (ESB,企业服务总线)的模块架构13。ESB 的前身是 EAI(Enterprise Application Integration,企业应用集成)。企业服务总线(ESB)的 出现改变了传统的软件架构,可以提供比传统中间件产品更为廉价的解决方案, 同时它还可以消除不同应用之间的技术差异,让不同的应用服务器协调运作,实 现了不同服务之间的通信与整合。图 2-2 数据交换中间件结构模型 数据交换平台是基于这样一类中间件构造的提供数据交换服务的平台。它通过提供客户接入端软件部署在应用系统上,根据事先达成的协议,用统一的方式实现各系统间不同结构和格式的数据的相互转换,并由协调引擎来协调各个业务 系统间的数据传输和消息通信。这种方式实现了数据抽取、数据清洗、转换、数 据路由、数据可靠传输和存储等工作,在保证了业务系统的有效协同的同时,又 能保证各应用系统的相互独立性和低耦合性,从整体上提高了系统运作效率和安 全性。目前,数据交换平台在电力、物流、政务、医疗等众多领域得到了广泛的应 用。在工业界,国内外很多厂商都提出了自己的数据交换平台解决方案。例如国 外的 IBM Message Broker+WebSphere MQ 数据交换平台解决方案、Chainbuilder 基于 Chainbuilder Connect 的数据交换平台解决方案、Talend。国内的英创思数据 交换平台、中科软数据交换平台、金蝶数据交换平台、软件研究所软 件工程技术研究开发中心的 OnceDeep 数据交换平台等。nIBM 的数据交换平台方案IBM 的数据交换平台方案使用 IBM 公司的 WebSphere MQ 和 Message Broker 通讯中间件14。该解决方案中,数据汇总的中心使用高性能的服务器,服务器 进行双机热备份,运行 Message Broker。其他数据交换节点使用 PC 机,安装WebSphere MQ Server,MQ Server 之间可以通过自身的群集功能,实现负载均衡。MQMQMessage BrokerMQMQMQ图 2-3 Message Broker 通信结构n ChainBuilder Connect 数据交换平台方案ChainBuilder Connect 是一个遵从 Java Business Integration (JBI,Java 业务集 成) 的 ESB 平台,是面向服务架构(SOA)的企业服务总线(ESB)的产品实现。 各组织机构的前置机(数据交换的基础部分,设立在各交换部门内部,存放由提 供方业务系统提供的数据和接收方业务系统接收的数据)作为交换节点,构成数 据交换体系15。数据交换中心提供数据的采集分发服务,实现交换节点之间的 数据的映射转换和路由功能。n中科软数据交换平台 由企业服务器总线、数据交换处理部件(包括适配器和桥接子系统)、运行支撑环境、规则库、管理组件(包括管理服务器和管理工具)等组成16。n金蝶数据交换平台使用 Apusic ESB、Apusic JavaEE 应用服务器、Apusic pusic 消息中间件, 提供面向 SOA 的基础架构。数据交换将从分支业务系统中前置交换数据库获取 数据封装成统一的数据模型方式发送到中心,在中心完成数据清洗、汇总等操作 写入到数据中心的统一数据库17。分支运行 Apusic ESB Client,中心运行 Apusic ESB Server。通过将运行 Apusic ESB Server 的服务器进行双机热备份来保证系统 的可靠性。n OnceDeep 数据交换平台OnceDeep 数据交换平台基于消息传输中间件 OnceFileTans,本章 2.4 节将对 其进行详细介绍。2.2 集群相关技术集群技术将多个系统连接到一起,使多台服务器能够像一台机器那样工作或 者看起来好像一台机器。通过集群技术,可以在付出较低成本的情况下获得在性 能、可靠性、灵活性方面的相对较高的收益18。2.2.1 集群管理集群按功能和结构可以分为以下几类:高可用性集群、负载均衡集群、高性 能计算集群、网格计算19。高可用集群是指当集群系统中的一台服务器出现故 障时,相应的管理软件快速地做出应对,将该服务器的任务切换到其它正常运行 的服务器上执行,保证系统持续可用。它的主要功能就是向外界用户提供尽可能 连续不断的服务。负载均衡集群是使各个节点尽可能“均衡”地处理负载,充分 利用各服务器的处理能力,使任务处理的效率得到提高,尽可能地达到“均衡” 的目的。高性能计算集群是以提高科学计算性能为目的服务器集群系统。主要用 于处理大规模的科学计算问题20。本文设计和实现的数据交换服务器集群,既 属于高可用性集群,也属于负载均衡集群。一方面,当一个节点失效时,其他节 点能够接管它的工作;另一方面,要根据数据交换任务的特点和集群中节点的性 能信息调度任务,使各个节点负载均衡。在高可用性集群方面,目前的高可用集群系统按照组成结构可以分为:双机 热备高可用集群和多机高可用服务器集群等。例如,NEC ExpressCluster18就是 一款提供双机热备高可用集群功能的软件,也支持 N+1 和 N+M 等多节点集群备 份模式。在负载均衡方面,负载均衡算法一般分为静态负载均衡算法和动态负载均衡 算法。静态负载均衡算法(例如轮询法、优先权法)根据系统的先验知识做出决 策,运行时负载不能重新分配,其好处是易于分析和实现,但其不足是在进行负 载均衡时没有考虑节点负载的变化情况,故可能造成整个系统的利用率低、性能 较差,可用性不高。动态负载均衡算法(例如最少的连接法21、动态性能分配 法)根据各服务器当前的实际负载情况动态分发用户请求,能够适应系统负载变 化情况,比静态算法更灵活、有效。但是由于它必须收集、储存并分析服务器状 态信息,动态算法会产生比静态算法更多的系统开销,所以并非得到越多的信息 就越好22。学术界提出了大量针对不同应用场景的负载均衡算法,例如基于内 容分类的集群负载均衡算法23、基于动态反馈的负载均衡算法24、基于公平调 度策略的负载均衡算法25、基于遗传算法的负载均衡算法26、自适应负载均衡 算法等等。在开源集群框架方面,常用的有 Terracotta、OpenRDS、OpenAIS/Corosync、 Pacemaker、Apache Helix、Shoal 等。其中,Terracotta 是 JVM 级别的集群框架, 而数据交换任务基于 IP,因此 Terracotta 不符合需求;OpenRDS 项目没有系统维 护和升级,稳定性不够;OpenAIS 是基于 SA Forum 标准的集群框架的应用程序 接口规范(Corosync 是从 OpenAIS 分离的子项目),使用 C/C+开发,不能跨平 台,不适合使用 Java 在 Windows 平台开发的 OnceDeep;Pacemaker 基于 OpenAIS, 因此也不适合。2.2.2 Shoal 框架Shoal 是 Glassfish 的子项目,是一个基于 Java 的可扩展的分布式动态集群框 架,能够为构建容错、可靠和可用的 Java EE 应用服务器提供基础架构支持。它 还可以插入到需要集群和分布式系统支持的任何 java 应用中。Shoal 是 GlassFish(v2 及后续版本)和 JonAS 应用服务器的集群引擎。Shoal 很好地抽象了集群的两个最重要功能:群集节点管理和共享状态数据。而且,这些功能是作为一个类库提供,可以嵌入到任意的 Java 应用中。集群的 目标无外乎伸缩性与高可靠性,实现无外乎 Load Balancer 与 Failover,而 Shoal 对这两点实现提供了很好的支持27。Shoal 的第一个概念是 group,它是集群节点的虚拟组合。每个 group 由 member 组成,member 由 member token(是一个 GUID)定义。一个 member 可 以是 spectator 角色或 core 角色。二者区别在于当 core 角色的 member 宕机,其 他 member 都会收到这个消息;相反,一个 spectator 角色的 member 宕机只有 core 会收到消息。Shoal 第二个重要的概念是 Group Management Service(GMS) 。它 通过保持跟踪集群内 member 的状态,来管理网络中的 group,协调 member 之 间的合作和通信。第三个概念是 Signal。Signal 是组生存周期中很重要的概念, 包括节点的加入和退出等。Shoal 有两个重要部分组成:GMS Client API 和 GMS Service Provider Interface (SPI)。应用与 API 交互,API 使用 SPI 与底层的组通讯协议对话。SPI 默认使用 JXTA 提供的组服务。下图显示了 Shoal 层、我们的应用层,以及底层 网络的关系。图 2-4 Shoal 框架的体系结构使用 Shoal 可以产生集群信号(例如加入、失败、关闭),实现集群节点动 态管理;可以向整个组的节点发送消息,实现集群节点通信;可以通过实现 CallBack 对象处理来自组中任何节点的信号,实现发出请求和对请求进行响应。 以上功能基本满足构建 OnceDeep 数据交换集群系统的需求,而且 Shoal 框架是 一个已有广泛商业应用的成熟的集群框架,因此本文采用 Java 集群框架 Shoal 来构建 OnceDeep 数据交换服务器集群系统。2.3 数据交换服务器集群系统研究现状工业界对数据交换平台中心节点高性能、高可靠需求,部分没有给出解决 方案;部分给出中心节点采用高性能计算机、并对其进行双机热备份的解决方 案,例如 IBM 的数据交换平台方案和金蝶数据交换平台方案。但高性能计算 造价昂贵,提高了构建数据交换平台的成本。在学术界,集群技术在 Web 集群、数据库集群等方面得到广泛应用。学 术界围绕数据交换平台的研究主要集中在平台基本框架28、安全性29、数据 转换30、报文封装格式31、路由转发等方面。但是,数据交换服务器集群方 面研究相对较少。在数据交换平台的负载均衡方面,文献32提出根据系统硬件资源状况和 任务到达情况对并发任务(抽取、加载、转换三种任务)数进行控制,避免系 统因任务过多导致系统负载过大,但只针对单台数据交换服务器上的任务的调 度,没有给出多台服务器情况下的调度策略。文献33应用了负载优化划分和 公平调度算法及其改进算法对数据交换任务在多台服务器之间的调度给出了 方案,该研究中,使用 CICSPlex SM 将多台服务器进行统一的资源管理和运 行管理,但没有提供数据交换任务的恢复功能。文献34通过一个服务中心控 制服务请求方和提供方的连接,服务中心根据当前负载和任务情况使用公平任 务调度算法对任务进行调度,在服务请求方和合适的服务提供方节点之间建立 连接,但服务提供方节点的加入、退出不能由系统自动管理,而且利用 CPU 指标进行负载均衡并不适用于 OnceDeep。文献35提出在数据中心使用虚拟 机集群技术,但并未结合数据交换平台构建集群,没有对负载均衡进行研究。总之,目前对数据交换平台性能方面的研究,主要集中在多个节点的负载 均衡方面,对数据交换服务器节点的动态管理,以及失效任务恢复方面的研究 相对较少。而在负载均衡方面的研究,一般是针对某个特定的数据交换平台系 统,不一定适用于本文所使用的 OnceDeep 数据交换平台。本文将对数据交换 服务器集群系统的节点动态管理、 失效任务处理机制,以及针对 OnceDeep 数据交换服务器集群的负载均衡算法等进行研究。2.4 OnceDeep 数据交换平台OnceDeep 数据交换平台是由软件研究所软件工程技术研究开发 中心开发的基于消息中间件的数据交换平台。OnceDeep 为上层应用提供了数据 交换、数据查询、数据路由等服务。本文将基于 OnceDeep 构建数据交换服务器 集群系统。2.4.1 OnceDeep 系统架构图 2-5 展示了 OnceDeep 数据交换平台架构。应用通过客户端 API 接口使用 OnceDeep 数据交换平台提供的服务。应用发 送数据时,将待发送数据、目的端等信息,封装成消息,调用接口发送。应用程 序接收数据时,将从接口获得的消息解析,即可得到数据文件、数据发送方等信 息。OnceDeep 提供队列管理、数据路由、用户管理、平台管理功能。其中队列 管理实现了消息的发送、接收、查询等。这些功能被封装成 WebService 接口, 供客户端 API 调用。OnceDeep 底层是数据传输中间件,实现服务器之间的数据通信。数据传输 中间件使用 Socket 通信,利用加密、压缩、分块传输、断点续传等技术,实现 文件的可靠和高效传输。图 2-5 OnceDeep 架构2.4.2 OnceDeep 的数据交换过程图 2-6 展示了使用 OnceDeep 数据交换平台发送和接收数据的过程。A 单位局域网内的应用 A 向 B 单位局域网内的应用 B 发送时:1. 应用 A 将数据封装成消息,调用 API 接口发送给 OnceDeep 数据交换服 务器 A2. 数据交换服务器 A 从消息中解析出 OnceDeep 数据交换服务器 B 的地址, 将消息发送给 OnceDeep 数据交换服务器 B3. 应用 B 定期查询未读消息,当发现发送给它的新消息时,从 OnceDeep数据交换服务器 B 获取该新消息(或者根据消息 ID 获取消息)。OnceDeep数据交换平台1.向服务器 A发送数据应用A 客户端APIOnceDeep数据交换服 务器AOnceDeep数据交换服 务器B3.从服务器B获 取数据应用B 客户端APIWEB平台数据Ser管理vi队列管理传输ce中间接口路由件用户 管理数据平台WEBSer管理传输队列管理中间vi件路由ce接口用户 管理2.A向B发送数据A单位局 域网B单位局 域网图 2-6 OnceDeep 数据交换过程2.4.3 OnceDeep 问题分析企事业单位的总部作为数据交换的中心,其数据交换服务器面临着巨大的压 力,会成为数据交换的瓶颈。受网络带宽、CPU 处理能力、内存等性能因素的 限制,一个数据交换服务器所能接受的并发连接数有限。所以,数据交换并发量 高的总部、或者其他数据交换非常频繁的热结点,必然要有多台数据交换服务器 共同运行。OnceDeep 数据交换平台目前在解决高并发问题上采用的方法是在总部部署 多台数据交换服务器,人工设定总部的每台数据交换服务器负责与哪几个分公司/下级单位的数据交换服务器进行数据交换。这个方法具有很大的缺点:(1)扩展困难。每加入和减少一台数据交换服务器,都需要重新设定对应关 系,管理成本很高。(2)不能充分利用系统资源。因为各个分公司、各个下级单位的数据交换量 有差异,数据交换的时间也可能不一致,所以可能出现某些台服务器负载很高但 其他服务器负载很低的状况,不能充分利用多台服务器的资源。(3)可靠性低。一旦某台服务器出现故障,这台服务器的数据交换任务完全 中断。本文使用集群技术解决上述问题。构建数据交换平台服务器集群系统,在大 幅提高交换平台的性能的同时,能够实现数据交换服务器动态加入和退出集群、 实现节点间的负载均衡,并能处理单台数据交换服务器出现故障所引起的数据交 换的中断的问题,提高系统的可靠性。构建数据交换平台系统的挑战有:(1)如何实现现有数据交换平台和集群技术的结合。现有的数据交换平台能 够实现数据交换,基于现有数据交换平台构建数据交换平台集群系统,可以充分 利用现有的系统资源。但目前服务器集群技术种类很多,如何选择合适的集群框 架构建基于现有数据交换服务器,实现集群节点的动态管理和通信,是首先要解 决的问题。(2)数据交换服务器的负载均衡。数据交换任务以及现有的数据交换平台具 有自身的特点,静态负载均衡算法以及针对 Web 应用或者其他类型的应用而设 计的负载均衡算法在数据交换服务器集群中的无法取得很好的效果。(3)失效的处理。数据交换平台集群系统能够提高可靠性,主要是当一个节 点出现故障时,这个节点的任务能够切换到其他节点完成,针对数据交换任务的 特点制定失效恢复策略也是一个重要问题。总之,基于可扩展性、性能、可靠性的需求,构建数据交换服务器集群系统 势在必行。但数据交换平台以及数据交换任务具有自身的特点,分析其特点,结 合现有的集群技术,设计高效的负载均衡算法和失效恢复策略,具有实用价值和 研究价值。2.5 本章小结本章首先介绍了包括数据交换平台在内的多种数据交换与共享解决方案,然 后对集群技术进行了介绍,指出节点管理、负载均衡、失效恢复是构建集群的关 键技术,并重点介绍了 Java 集群框架 Shoal。接着,论文对与数据交换服务器集群系统相关的研究现状进行分析,提出使 用 Shoal 框架构建 OnceDeep 数据交换集群系统具有实用性和创新性。最后,介绍了现有的数据交换平台 OnceDeep 的架构和使用 OnceDeep 进行 数据交换的过程,并对现有的 OnceDeep 存在的问题进行了分析。第三章 OnceDeep 数据交换集群系统架构第三章 OnceDeep 数据交换集群系统架构OnceDeep 是一个已有的数据交换平台,Shoal 是一个开源的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 冬季防火知识培训评价课件
- 2025年中国环保型模块化建筑材料行业市场分析及投资价值评估前景预测报告
- 2025福建泉州石牛山景区招聘5人考前自测高频考点模拟试题及答案详解(典优)
- 2025广东中山大学附属第五医院各岗位人才招聘(第二批)考前自测高频考点模拟试题及完整答案详解
- 2025年中国化妆品用天然维生素E行业市场分析及投资价值评估前景预测报告
- 2025年中国化学洗涤剂行业市场分析及投资价值评估前景预测报告
- 2025杭州市临安区部分医疗卫生事业单位招聘35人考前自测高频考点模拟试题及答案详解(全优)
- 2025年东营市“英才进广饶”(教师类)事业单位引进人才招聘(31人)考前自测高频考点模拟试题及答案详解一套
- 2025贵州医科大学附属口腔医院引进高层次人才模拟试卷及参考答案详解一套
- 2025江苏苏州国家历史文化名城保护区、苏州市姑苏区区属国资集团副总裁招聘2人考前自测高频考点模拟试题及完整答案详解一套
- 2025年长春吉润净月医院社会招聘模拟试卷(含答案详解)
- 2025年下半年宝山区国有企业员工招聘笔试备考试题及答案解析
- 2024-2025学年广东省深圳市梅山中学九年级上学期开学考英语试题及答案
- 2025年贵州省遵义市辅警招聘考试题题库(含参考答案)
- 2025年国网宁夏电力有限公司高校毕业生提前批招聘校园宣讲安排笔试参考题库附带答案详解
- 2025初级注册安全工程师题库合集(+答案)
- 2025年武汉东西湖分局招聘警务辅助人员招聘73人考试参考试题及答案解析
- 池黄高铁安全培训课件
- 单相光伏并网反激式微逆变器:拓扑结构、控制策略与性能优化研究
- 学堂在线 中国传统艺术-篆刻、书法、水墨画体验与欣赏 章节测试答案
- 2025年山西省教师职称考试(理论知识)复习题及答案(新课标)-山西教师
评论
0/150
提交评论