国产基础软件集群平台技术与应用

978-7-115-59854-7
作者: 武汉达梦数据库股份有限公司天津神舟通用数据技术有限公司北京东方通科技股份有限公司麒麟软件有限公司
译者:
编辑: 王旭丹

图书目录:

详情

本书是国产基础软件集群的实操指南,在揭示国产基础软件集群平台本质的基础上,对国产基础软件集群进行分类介绍,按照操作系统、数据库、中间件的顺序,分别对银河麒麟高可用集群软件、达梦数据共享集群、神通数据库共享存储集群、东方通中间件应用服务器集群的概念和特点等进行了介绍,并解析了这些集群的架构,阐述了如何搭建这些集群。最后,本书从实践应用出发,列出了几个重点行业的部署实践指南,帮助读者加深对内容的理解,做到学以致用。 本书适合对基础软件行业感兴趣、想了解国产基础软件的人士,以及基础软件相关行业的从业者。

图书摘要

版权信息

书名:国产基础软件集群平台技术与应用

ISBN:978-7-115-59854-7

本书由人民邮电出版社发行数字版。版权所有,侵权必究。

您购买的人民邮电出版社电子书仅供您个人使用,未经授权,不得以任何方式复制和传播本书内容。

我们愿意相信读者具有这样的良知和觉悟,与我们共同保护知识产权。

如果购买者有侵权行为,我们可能对该用户实施包括但不限于关闭该帐号等维权措施,并可能追究法律责任。

版  权

著    武汉达梦数据库股份有限公司
       天津神舟通用数据技术有限公司
       北京东方通科技股份有限公司
       麒麟软件有限公司

责任编辑 蒋 艳

人民邮电出版社出版发行  北京市丰台区成寿寺路11号

邮编 100164  电子邮件 315@ptpress.com.cn

网址 http://www.ptpress.com.cn

读者服务热线:(010)81055410

反盗版热线:(010)81055315

内容提要

本书是国产基础软件集群的实操指南,在揭示国产基础软件集群平台本质的基础上,对国产基础软件集群进行分类介绍,按照操作系统、数据库、中间件的顺序,分别对银河麒麟高可用集群软件、达梦数据共享集群、神通数据库共享存储集群、东方通中间件应用服务器集群的概念和特点等进行了介绍,并解析了这些集群的架构,阐述了如何搭建这些集群。最后,本书从实践应用出发,列出了几个重点行业的部署实践指南,帮助读者加深对内容的理解,做到学以致用。

本书适合对基础软件行业感兴趣、想了解国产基础软件的人士,以及基础软件相关行业的从业者。

面对错综复杂的国际环境和数字化转型的时代背景,软件产业成为数字化转型赋能国民经济高质量发展的核心基石。繁荣且庞大的应用软件市场,亟须稳固可靠的数据库、操作系统、中间件等核心基础软件的支撑。我国四十年左右的信息化发展,固然已经取得了巨大的成就,但应当看到,这是以核心技术深度依赖国外信息产业为代价的,我国的行业信息化应用越繁荣,越凸显了我国在信息技术基础方面的薄弱。

“基础不牢,地动山摇”——基础薄弱带来的风险是巨大的。如果不能补齐短板,那么一旦在极端情况下被“卡脖子”,我们就可能面临数十年信息化成果付诸东流的后果。

值得欣慰的是,基础软件领域的发展得到了多方的大力支持。国内的基础软件厂商,如以达梦为代表的数据库厂商,正在逐步迎头赶上。因此,一些核心技术,如复杂SQL的优化、大规模的并行查询、数据库的读写分离等技术实现了突破,并在电子政务、电力、交通、金融、电信、制造业等重要行业落地应用,进而诞生了一批具有标杆效应的典型案例。至此,国产基础软件已经达到“能用”的水平,并正在向“好用”的目标前进。

如何做到“好用”?我认为当务之急是实现两个目标:一个是在产品技术上完全站上高端,满足高端应用市场对基础软件可靠、稳定、高性能的核心诉求;另一个是国产基础软件要相互打通,并与国产硬件、行业应用软件共同形成类似国外“Wintel(Windows+Intel)”“IOE(IBM+Oracle+EMC)”“AA(ARM+Android)”的统一生态,降低适配、迁移、运维的难度和投入成本。

我很高兴地看到,为了实现这两个目标,国内的基础软件厂商已经有意识地结为团队并开始进行攻关:达梦、神舟通用、东方通、麒麟软件向着这两个共同目标,在基础软件集群技术,特别是在数据库共享存储集群技术方面取得了重大突破;并围绕着集群化的基础软件产品,打造了统一平台的解决方案,把国产操作系统、数据库和中间件拧成一股绳,初步形成了一个经过整体适配调优的集群式平台。

数据库共享存储集群技术是企业级数据库市场最具代表性、应用最广泛的核心技术之一,不仅得到了市场的普遍认可,而且在技术难度上也具有挑战性,除了Oracle、IBM两家外,其他国内外厂商及开源数据库,以前都没有对应的技术和产品。国产数据库厂商披肝沥胆十几年,终于啃下了这块硬骨头,实现了“零的突破”,同时还与操作系统集群、中间件应用服务器集群共同打造了经过预先适配、优化,具备标准化访问接口、统一管理和运维界面的平台化解决方案,克服了不同CPU、不同操作系统环境的差异,让信息系统在国产化的软硬件环境下,也可以具有良好的性能。

本书对这一攻关过程涉及的种种问题和技术方法、原理等进行了详细介绍,让我们得以一窥长期以来困扰国人的技术难关和生态困境是以何种思路和方法得到解决的。

本书最大的特点在于既有理论性,又有实践性和可操作性,可供同行理论参考和实际应用借鉴。本书采用由总到分的逻辑结构,编排介绍集群统一平台及基础软件集群产品,主要包含概念、技术、实践等内容,以期与读者分享。

国产基础软件的发展仍然任重道远,需要国家、研发企业、应用单位同心协力、砥砺前行、自强不息。你我共勉!

中国工程院院士 

2022年5月20日

前  言

基础软件是对操作系统、数据库和中间件的统称。经过四十年左右的发展,近年来,国产基础软件的发展形势已有所好转,国家也通过战略部署、政策牵引、资金补助等多种方式全方位提升基础软件的发展速度,并在“十四五”规划中进一步强化软件产业高质量发展的要求及相关配套政策。

国产基础软件集群平台掌握和突破了基础软件集群化的相关技术,通过统一技术规范、统一管理部署等手段形成一种产品和技术的解决方案,也就是国产基础软件集群平台解决方案。该方案提出了国产基础软件在重要行业核心业务系统的国产替换可行方案,填补了国内空白,并且具有完全自主知识产权,满足了国内重要行业和领域对数据库产品高可靠、高安全的现实需求,保障了关键领域的信息安全。同时也培育了国产软件生态,减少了兼容适配内耗,完善了国产基础软件上下游产业链。

编写本书的目的是让更多的读者了解国产基础软件集群的发展,学习基础软件集群化的相关技术,从而能投身国产基础软件行业,更好地为国产基础软件的发展尽自己的一份力。

本书首先总体介绍了国产基础软件集群平台的概念、特点和架构等内容,然后概括介绍了基础软件的三大核心——操作系统、数据库和中间件;进而分别详细介绍了银河麒麟高可用集群软件、达梦数据共享集群、神通数据库共享存储集群、东方通中间件应用服务器集群的概念、技术、实践等内容;最后的附录部分提供了几个重要应用场景的部署实践指南。

本书逻辑结构清晰,先就国产基础软件集群平台进行概要介绍,帮助读者从整体上了解其概貌;再分类讲解,从基础软件集群平台各个组成部分依次说明,进而帮助读者由浅入深地了解国产基础软件集群平台的概念和技术。编写时注重内容的易读性和实用性,尽量以图表的方式让读者直观地理解三大类基础软件的设计方案和技术特点,并根据不同应用场景提供了部署实践指南,以便读者在熟悉概念后,结合实践应用,更好地了解国产基础软件集群平台的使用环境和性能优势。

本书是由武汉达梦数据库股份有限公司、天津神舟通用数据技术有限公司、北京东方通科技股份有限公司、麒麟软件有限公司联合编写的,力争让本书具有一定的参考价值。非常感谢为本书内容创作提供了全力支持的这4家公司。因编者水平有限,书中内容若有错误,还望读者不吝批评、指正(可发电子邮件至wangxudan@ptpress.com.cn)。

2022年7月

资源与支持

资源获取

本书提供思维导图等资源,要获得以上资源,扫描下方二维码,根据指引领取。

提交勘误

作者和编辑尽最大努力来确保书中内容的准确性,但难免会存在疏漏。欢迎您将发现的问题反馈给我们,帮助我们提升图书的质量。

当您发现错误时,请登录异步社区(https://www.epubit.com/),按书名搜索,进入本书页面,点击“发表勘误”,输入勘误信息,点击“提交勘误”按钮即可(见下图)。本书的作者和编辑会对您提交的勘误进行审核,确认并接受后,您将获赠异步社区的100积分。积分可用于在异步社区兑换优惠券、样书或奖品。

与我们联系

我们的联系邮箱是contact@epubit.com.cn。

如果您对本书有任何疑问或建议,请您发邮件给我们,并请在邮件标题中注明本书书名,以便我们更高效地做出反馈。

如果您有兴趣出版图书、录制教学视频,或者参与图书翻译、技术审校等工作,可以发邮件给我们。

如果您所在的学校、培训机构或企业,想批量购买本书或异步社区出版的其他图书,也可以发邮件给我们。

如果您在网上发现有针对异步社区出品图书的各种形式的盗版行为,包括对图书全部或部分内容的非授权传播,请您将怀疑有侵权行为的链接发邮件给我们。您的这一举动是对作者权益的保护,也是我们持续为您提供有价值的内容的动力之源。

关于异步社区和异步图书

“异步社区”(www.epubit.com)是由人民邮电出版社创办的IT专业图书社区,于2015年8月上线运营,致力于优质内容的出版和分享,为读者提供高品质的学习内容,为作译者提供专业的出版服务,实现作者与读者在线交流互动,以及传统出版与数字出版的融合发展。

“异步图书”是异步社区策划出版的精品IT图书的品牌,依托于人民邮电出版社在计算机图书领域30余年的发展与积淀。异步图书面向IT行业以及各行业使用IT技术的用户。

第1章 国产基础软件集群平台

国产基础软件集群平台的成功研发与应用,能够显著提升党政办公应用、重点行业应用和其他应用中的基础软件技术支撑能力,促进国产基础软件产业生态链的良性发展,使国产基础软件向中高端应用领域迈进。

1.1 基础软件与我们的生活密切相关

随着信息技术发展,信息化应用已进入我们生活中的方方面面,如线上教育、电子邮件、手机银行转账等,信息化应用建立于各类应用软件的基础之上,而各类应用软件的使用离不开基础软硬件,其中基础软件包括操作系统、数据库、中间件等。

虽然我们不能直接感受到基础软件的存在,但它们在日常生活及工作中是不可或缺的。例如:电力资源保障电力调度的不间断运行,这对于保障正常用电十分重要,数据库软件对于调度系统而言必不可缺;伴随着科技发展,人们的沟通方式已经由传统的信件转变为电话、短信、电子邮件等更为便利的方式,对于通信公司而言,计费等业务的开展均离不开操作系统等核心基础软件;在银行中办理取款、查询余额等业务时,操作系统、数据库、中间件等基础软件都扮演了重要角色。

1.2 国产基础软件集群平台概述

本节主要介绍国产基础软件集群平台的定义、架构和特点。

1.2.1 国产基础软件集群平台的定义

基础软件是操作系统、数据库、中间件、语言处理系统和办公软件的统称,其中操作系统、数据库和中间件是基础软件的核心三大件。国产基础软件集群平台则是核心三大件深度集成后的一种具有高可靠性、高性能的平台解决方案。

国产基础软件集群平台是国内相关企业掌握并突破基础软件集群化的相关技术,将研发出来的国产操作系统高可用集群、数据库共享存储集群、中间件应用服务器集群进行整合,通过上、下游的适配和优化,以及提供统一的技术规范、统一的部署与监控管理平台,进而形成的面向中高端应用的平台解决方案。

国产基础软件集群平台解决了我国大规模党政办公、重点行业应用和其他应用中存在的不安全、不可靠、性能不足、维护性差、生态复杂等问题,为国产基础软件未来的发展打下了坚实基础。

1.2.2 国产基础软件集群平台的架构

国产基础软件集群平台的架构如图1-1所示。

图1-1 基础软件集群平台架构

1.平台包括的基础软件

(1)服务器操作系统软件及服务器操作系统集群软件。此类软件为各类应用程序、数据库系统、中间件系统等提供安全、稳定的运行环境。

(2)数据库共享存储集群软件。此类软件提供高可靠性、高性能的数据库共享存储集群服务,支持存储区域网络(Storage Area Network,SAN)存储设备和分布式存储系统。

(3)中间件应用服务器集群软件。此类软件提供符合Java EE 8标准的应用服务器及高可靠分布式内存网格服务。

2.平台提供的统一技术规范

国产基础软件集群平台统一了技术规范,如操作系统、数据库、中间件、应用系统相互访问、集成必须遵守的接口标准、运维要求等,方便平台内部不同组件的适配集成,也有利于后续更多厂家的产品集成到平台中。

3.平台提供的统一管理工具

(1)统一部署工具。此类工具对操作系统及操作系统集群、数据库及数据库共享存储集群、中间件及中间件应用服务器集群提供统一的图形化部署,简化基础软件及集群的安装配置过程。

(2)统一监控工具。此类工具对已部署的主机、操作系统、数据库、中间件等软件运行状态提供统一的图形化监控,也可直接调用被管理的集群软件自身的监控界面进行深度监控。

4.平台的应用范围

(1)党政办公应用系统。本平台通过深度优化基础软件集群的组合方案,可以极大地满足不同规模党政办公应用系统中多方面的需求。

(2)重点行业应用系统。本平台拥有对标国外同类产品的高可靠性、高性能的集群兼容能力,并且在应用接口层保持与已有成熟产品(如Oracle产品)的高度兼容,能极大地减少应用系统的移植成本,给用户提供更多的产品选择空间。

(3)其他应用。

1.2.3 国产基础软件集群平台的特点

国产基础软件集群平台的特点如下。

1.生态深度集成

国产基础软件集群平台对操作系统、数据库、中间件这三大基础软件进行了深度集成。在统一技术规范的指导下,对不同国产CPU服务器环境下的各种集群软件进行适配,同时与党政办公及重点行业的典型应用系统也进行了集成验证,解决了大量之前国产基础软硬件中上下游产品之间的接口不匹配、安装不容易、运维不方便、监控不到位等方面的问题。通过深度集成,极大地降低了国产基础软硬件系统集成难度,真正实现了基础软件开箱即用的便利。

2.性能调优

国产基础软件集群平台针对不同规模的应用场景,在Intel x86服务器、各种国产CPU服务器上进行性能测试,并联合操作系统、数据库、中间件厂商技术人员进行多轮调优,给出对应的推荐部署架构和配置参数。这些架构和参数可以作为应用系统架构设计和项目调优的重要参考。

3.高可用性

国产基础软件集群平台为应用环境提供了从操作系统高可用集群、数据库共享存储集群、中间件应用服务器集群到内存网格集群等全面的解决方案,没有单点故障,给应用系统提供7×24小时的运行支撑环境,极大地提升了系统的可用性。

4.统一开发风格

国产基础软件集群平台的统一技术规范,一方面指导各集群组件之间的交互调用,另一方面也给应用系统对操作系统、数据库、中间件的各个功能调用制定了相应的技术规范,实现了统一的开发风格,如数据库连接、SQL语法、Session共享、文件访问等。采用平台推荐的统一应用接口、设计范式等,不仅有助于充分利用基础软件提供的各种功能,简化应用程序开发工作,而且也有助于应用程序设计的标准化,便于在不同基础软件之间移植。

5.统一管理

如果用传统方式管理各种操作系统高可用集群、数据库共享存储集群、中间件应用服务器集群,需要手动在不同的节点上安装不同的集群软件,并且需要仔细配置各种参数。另外,多节点之间往往还存在约束关系,安装配置工作量很大,而且一旦出错,就得返工。不同基础软件集群的运行日志位置分散,性能指标采集方法各异,增加了运维工作的复杂性。国产基础软件集群平台提供了用于统一部署、统一监控的管理工具,能够图形化统一管理各种集群,极大地简化了安装配置、运维监控等管理工作,降低出错概率,提升管理效率。

1.3 基础软件集群平台设计

本节主要介绍基础软件集群平台的组成。

1.3.1 平台组成概览

平台分为基础设施、操作系统、数据库、中间件、应用5个层次。另外,为了方便部署管理各种操作系统高可用集群、数据库共享存储集群、中间件应用服务器集群,平台提供了集群统一部署管理工具。

1.基础设施

平台需支持在Intel x86服务器和国产CPU服务器环境下的部署和运行,特别是应用较多的国产主流CPU,如飞腾、龙芯、鲲鹏、海光、申威、兆芯等。

2.操作系统

平台中提供的操作系统以Linux系列为主,其中,Intel x86服务器采用CentOS,数据库服务器、中间件服务器采用麒麟OS、统信UOS。另外,为满足部分应用场景的需要,提供麒麟OS集群,直接为应用系统提供具备高可用性的支撑。

3.数据库

平台中提供的数据库以数据库共享存储集群为主。数据库共享存储集群是一个多实例、单数据库的系统,它允许多个数据库实例同时访问、操作同一数据库,具有高可用性、高性能、负载均衡等特性。单个数据库共享存储集群支持2~8个数据库节点,且数据库共享存储集群支持SAN存储设备和分布式存储系统。数据库共享存储集群包括达梦数据共享集群和神通数据库共享存储集群。

4.中间件

平台中提供的中间件以中间件应用服务器集群为主,包括东方通中间件应用服务器集群、中创应用服务器集群、金蝶应用服务器集群。

5.应用

平台的目标就是将经过适配优化的基础软件集群产品用来支撑党政办公应用系统和一些重点行业的应用系统,提升系统的性能和可靠性,降低实施和运维的复杂性。

针对典型的党政办公应用场景、重点行业的业务特征来编制模拟测试软件,构建不同硬件平台环境、不同集群软件产品组合和配置条件的测试方案。通过不断地测试、优化,给出不同用户场景下的集群平台配置方案和测试结果,便于用户配置时参考。

6.集群统一部署管理工具

平台提供的集群统一部署管理工具实现了在Intel x86服务器、国产CPU服务器环境下,对上述各种操作系统、数据库、中间件产品的统一部署和管理。

1.3.2 操作系统高可用集群

本小节主要介绍操作系统高可用集群的概念、架构设计和特性。

1.概念

操作系统高可用集群具备低成本、高扩展和易维护的特点,能够为用户提供高性价比的可用性方案,适用于数据库、业务应用、核心后台等关键业务领域。

操作系统高可用集群通过采用资源轮询监控、节点在线拓展和节点强制隔离等多项核心技术,有效提升应用的可用性。此外,集群管理员可以通过远程管理界面管理集群,减少运维压力。

2.架构设计

操作系统高可用集群架构如图1-2所示。

图1-2 操作系统高可用集群架构

操作系统高可用集群主要由以下三大组件构成。

用户管理组件。

用户管理组件包含命令行和图形化两大功能模块,主要用于连接集群进行管理。

集群核心组件。

集群核心组件包括策略模块、资源管理模块、节点管理模块和隔离模块等。

集群通信组件。

集群通信组件包括通信模块、加解密模块,负责集群底层通信和通信加解密,是集群的基础结构。

3.特性

操作系统高可用集群的主要特性有以下几点。

(1)资源轮询监控。

操作系统高可用集群采用定时轮询的技术来监控服务资源的运行,轮询频率可以根据用户需求进行调整,平衡高可用性和性能开销。资源轮询监控不需要对应用程序进行修改。

(2)节点在线扩展。

当集群采用组播或广播模式工作时,新节点只需配置好对应的网络参数,即可通过自动协商方式加入对应集群,无须停机更新,保障了业务连续性。同样,也能够采用自动协商的方式实现离线。

(3)Split-brain保护。

脑裂(Split-brain)是指集群内节点间的心跳出现故障,无法保持集群内数据一致性,并且各节点还处于Active状态的情形。在Split-brain环境下,多个节点会同时接管服务,存在数据不一致的风险。

操作系统高可用集群针对Split-brain情形,使用如下几种技术手段来保持数据一致性。

1)集群仲裁:适用于多节点集群(对双节点集群不适用),通常采用投票方式实现。集群内每个节点持有特定票数(如给每个节点设置一票),当原集群分裂为多个子集群时,票数最多的子集群获得资源运行权,票数少的子集群被强制隔离。如果所有子集群票数都低于原集群票数的一半,那么任何子集群都无法运行资源,整个集群停止工作,保障数据安全。

2)节点强制隔离:当节点因仲裁或其他原因需要进行强制隔离时,使用远程电源开关、智能平台管理接口(Intelligent Platform Management Interface,IPMI)或远程管理控制卡等方式来切断或重置节点电源,使其无法继续工作。

3)存储强制隔离:当节点因仲裁或其他原因需要进行强制隔离时,使用光纤交换机、存储控制卡等硬件设备,断开数据访问通道,保障数据安全。

1.3.3 数据库共享存储集群

本小节主要介绍数据库共享存储集群的概念、架构设计和特性。

1.概念

数据库共享存储集群(Data Shared Cluster,DSC),允许多个数据库实例同时访问、操作同一数据库,即是一个多实例、单数据库的系统,具有高可用性、高性能、负载均衡等特性。用户可以登录集群中的任意一个数据库实例获得完整的数据库服务。此外,DSC支持故障自动切换和故障自动重加入,也就是某一个数据库实例发生故障后,仍然可以提供数据库服务。

DSC得以实现的重要基础就是共享存储,支持的共享存储有两种:裸设备和自动存储管理(Auto Storage Management,ASM)。这两种存储的区别在于后者在前者的基础上,也就是ASM文件系统。

2.架构设计

数据库共享存储集群主要由数据库和数据库实例、共享存储、本地存储、通信网络、集群同步服务(Cluster Synchronization Services,CCS)组成。下面以部署了ASM文件系统的DSC为例,展示DSC系统架构,如图1-3所示。

(1)数据库和数据库实例。

数据库是一个文件集合(包括数据文件、临时文件、重做日志文件和控制文件等),保存在物理磁盘或文件系统中。

数据库实例就是一组操作系统进程(或者是一个多线程的进程)和一些内存。通过数据库实例可以操作数据库。一般情况下,访问、修改数据库都是通过数据库实例来完成的。

(2)共享存储。

DSC中,为了实现多个实例同时访问、修改数据,要求将数据文件、控制文件、重做日志文件保存在共享存储中。DSC支持使用裸设备或ASM文件系统作为共享存储。

配置DSC所需的DM集群注册表(DM Clusterware Registry,DCR)、表决磁盘(VOTD Disk,VTD)也必须保存在共享存储上(目前仅支持裸设备存放DCR和VOTD Disk)。

图1-3 DSC的系统架构

(3)本地存储。

DSC中,本地存储用来保存配置文件(记录数据库实例配置信息的dm.ini、dmarch.ini、dmmal.ini)、本地归档日志和远程归档日志。

(4)通信网络。

DSC中,通信网络分为内部网络和公共网络两个部分。在实际应用中,一般还存在服务器到共享存储的网络。内部网络用于数据库实例之间交换信息和数据。公共网络用于对外提供数据库服务,用户使用公共网络地址登录DSC,访问数据库。

(5)集群控制。

集群控制是集群的重要组成部分。CSS就是一款集群控制软件,专门负责监控集群中各个节点的运行状态。CSS的主要功能包括管理集群的启动和关闭、处理控制节点故障,以及管理节点重加入流程。

(6)重做日志。

重做(Redo)日志是记录改变物理操作的日志。

3.特性

DSC的主要特性包括高可用性、高吞吐量和负载均衡。

(1)高可用性:只要集群中有一个活动节点,就能正常提供数据库服务。

DSC提供了一种数据库可用性极高的解决方案。当出现系统故障、硬件故障,或者人为操作失误时,CSS检测故障,并自动将故障节点踢出集群,保障数据库服务的正常提供。

故障节点的用户连接会自动切换到活动节点,这些连接上的未提交事务将被回滚,已提交事务不受影响;活动节点的用户连接不受影响,正在执行的操作将被挂起一段时间,在故障处理完成后,继续执行。

当CSS检测到故障节点恢复时,自动启动节点重加入流程,将恢复的故障节点重新加入DSC,将集群恢复到正常的运行状态。因此,通过部署DSC,可以在一定程度上避免由软、硬件故障引起的非计划停机情况的发生,减少这些意外给客户带来的损失。

与同样使用共享存储的双机热备系统相比,DSC具有更快的故障处理速度。双机热备系统故障切换时,需要重做完整的Redo 日志,所有数据都需要重新从磁盘加载,而DSC处理故障时,只需要重做故障节点的Redo日志,并且大部分数据页已经包含在处理节点的 Buffer 缓冲区中,不需要重新从磁盘加载。

(2)高吞吐量:多个节点同时提供数据库服务,有效提升集群的整体事务处理能力。

DSC中包含多个数据库实例,数据库实例访问独立的处理器、内存,数据库实例之间通过缓存交换技术提升共享数据的访问速度,且每个数据库实例都可以接收并处理用户的各种数据库请求。

与单节点数据库管理系统相比,DSC可以充分利用多台物理机器的处理能力,支撑更多的用户连接请求,提供更高的吞吐量。与双机热备系统相比,DSC不存在始终保持备用状态的节点,不会造成硬件资源的浪费。

(3)负载均衡:用户的连接请求被平均分配到集群中的各个节点,确保各个节点的负载大致平衡。

用户通过配置数据库负载均衡组件来访问DSC,可以实现节点间的自动负载均衡,用户的数据库连接请求会被自动、平均地分配到 DSC 中的各个节点,并且连接服务名支持JDBC、DPI、ODBC、DCI、.Net Provider等各种数据库接口。

1.3.4 中间件应用服务器集群

本小节主要介绍中间件应用服务器集群的概念、架构设计和特性。

1.概念

中间件应用服务器集群是介于应用系统和系统软件之间的集群软件,它使用系统软件提供的基础服务,管理计算资源和网络通信,衔接应用系统的各部分或不同应用,提供应用层不同应用之间的互操作机制,达到资源共享、功能共享的目的。中间件应用服务器集群一般提供通信支持、应用支持、公共服务等功能,满足了大量应用的需求。

2.架构设计

中间件应用服务器集群的架构包括域名系统(Domain Name Systerm,DNS)、集群负载组件、应用服务器、分布式内存网格、集群管理工具5部分,其架构设计如图1-4所示。

图1-4 中间件应用服务器集群的架构设计

中间件应用服务器集群架构设计各模块的功能如下所述。

(1)域名系统。

域名系统提供的域名对应多个IP地址或多个虚拟IP地址,拥有横向水平扩展能力。

智能解析。

一个域名对应多个IP地址,每个IP地址对应不同机房里的虚拟IP。当用户访问应用服务地址时,中间件应用服务器集群会使用轮询策略或其他策略来选择某个IP供用户访问。此方式可以实现机房间的负载均衡。

应用监测。

应用监测支持对应用的所有服务地址进行可用性监测,将不可用的IP地址从应答地址中删除,待服务正常后自动恢复应答。

(2)集群负载组件。

集群负载组件分为前端负载调度和后端服务两个部分,前端负载调度部分负责把客户端的请求按照不同的策略分配给后端服务节点,而后端服务节点是真正提供应用程序服务的部分。通过集群资源的高效利用,实现业务应用系统的高可用性和高可靠性。

集群负载组件提供负载均衡及高可用性、集群失效管理、集群会话复制、亲和模式支持、非亲和模式支持、集群通信框架、动静数据分离部署等功能。

负载均衡及高可用性。

在高并发的访问场景下,使用负载均衡技术为一个应用构建一个由多台应用服务器组成的集群,并将并发访问请求分发到多台服务器上进行处理,避免单一服务器由于负载压力过大而变得缓慢,使用户请求具有更好的快速响应体验。

负载均衡服务器是对外服务的唯一入口,处于非常重要的位置,如果负载均衡服务器宕机,后端Web服务将无法提供服务,影响极其严重。基于主备机制,结合主服务器和备份机上都运行的高可用监控程序,通过传送信息来监控对方的运行状况。当备份机不能在一定的时间内收到监听信息时,它就接管主服务器的服务IP并继续提供负载均衡服务;当备份机从主管理器收到监听信息时,它就释放服务IP,主服务器就开始再次提供负载均衡服务。

集群失效管理。

集群失效管理包括集群失效恢复、集群失效转移。

通过集群之间的状态同步或共享,确保集群中某一台服务器宕机之后,其他服务器能获得该服务器上保存的数据状态,进而确保应用系统正常使用。

集群会话复制。

访问业务应用系统的会话信息对用户的访问体验至关重要。通过内存复制、Java数据库连接(Java Database Connectivity,JDBC)复制等方式保障集群会话信息的安全。

亲和模式支持。

随着客户端并发压力的不断增大,单一服务器已经不能满足用户处理大量并发请求的需要,这时就需要多个应用服务器一起组成应用级集群,通过前端负载均衡服务器的转发来分担负载。

当某用户的请求第一次分发到某台应用服务器后,后继的请求会一直分发到此应用服务器上处理,这样的方式即为亲和模式。

非亲和模式支持。

目前,业内主流方案都是采用亲和模式的集群,虽然该方案简单有效,但是需要请求中带有特定信息才能保持亲和,比如IP绑定、应用服务器路由信息添加到SessionID中,等等。而在用户的实际线上环境中,如Ajax请求获取后台服务的一些场景下,并不能一直保证这些前提,这时就会导致应用数据由于没有正确转发到其他集群节点上而丢失数据。因此,需要开发非亲和集群功能,来满足实际线上应用多变的运行环境,并能保证应用数据在随机节点的转发下依然可以保持一致性,从而不会影响应用业务的正常运行。

非亲和集群由3部分组成:负载均衡服务器、应用服务器节点和缓存节点。

在非亲和模式下,同一用户的连续请求会产生一个固定的SessionID,在并发随机访问模式下,带有SessionID的请求会随机发送到TW1、TW2、TW3上,这时通过将用户状态数据保存到缓存集群节点内,就可以避免新转发的TW节点因为本地内存缺失数据而导致的用户状态数据丢失情况的发生。

为了保证非亲和模式下数据高度的一致性,非亲和集群还提供了完全放弃本地内存的可选方案,通过CacheClient直接读写缓存集群节点,这样可以避免由于连续请求过多而导致的本地内存数据不一致的现象出现。更严格的是,非亲和集群还提供了分布式锁机制,可以在CacheClient端完全控制分布式节点的同步并发读写,这样可以在极端Ajax并发场景下依然保证应用状态数据的高度一致性。

集群通信框架。

把若干机器组成一个集群,为了集群能协同工作,就需要加强成员之间的通信,这也是集群实现中需要解决的核心问题,即一个强大的通信协同机制是集群实现的基础。为此需要提供通过网络向集群节点成员发送和接收信息、动态检测发现其他节点的消息框架,满足集群消息等信息通信,进而确保业务应用系统的高可靠性。

动静数据分离部署。

如果要实现业务集群动态数据、静态数据分离部署,用户请求首先路由到静态资源系统中,如果目标请求资源是静态资源,那么此时直接返回,不再执行后续容器处理逻辑;如果目标请求资源是动态资源,那么静态资源系统将会直接将请求转发给动态资源系统,动态资源系统再根据实际业务操作去调用数据库或者其他外部系统资源,最终完成业务数据的处理并返回客户端。

(3)应用服务器。

应用服务器为业务应用系统运行的基石,应用服务器的能力直接影响业务系统、业务集群的运行。应用服务器提供数据源客户端集群、数据源性能优化、EJB(Enterprise Java Beans)集群、HTTP请求处理优化、线程调度框架、EJB远程调用优化、协议解析器、性能瓶颈分析功能。

数据源客户端集群。

在应用系统中,用户大并发场景下最核心的瓶颈就是数据库的操作,数据库优化有非常多的要点,比如搭建数据库集群、慢查询优化、调整业务逻辑、引入缓存等,为了不受限于数据库集群的实现机制,需要基于中间件数据源客户端来实现一套客户端集群。数据源客户端将用户业务代码中的SQL操作根据内置规则映射到某一个具体的数据库或数据库集群上,从而实现分担负载的作用。

数据源性能优化。

随着企业应用功能的逐渐强大,以及业务逻辑的日益复杂,应用服务器数据源操作数据库的瓶颈逐渐显现出来。通过分析发现,数据源的处理瓶颈主要在应用服务器进程与数据库的通信频率上,这主要是因为进程间的通信需要经过网络,而网络传输在整个业务处理链中的系统资源消耗占比较大,这是很容易形成瓶颈的环节,因此降低应用服务器与数据库的通信频率可预期优化数据源的性能。通过优化应用服务器的事务处理过程,减少网络通信过程,可达到提高数据源的处理性能的目标。

EJB集群。

EJB是基于分布式事务处理的企业级应用程序的组件,是运行在独立服务器上的组件,客户端是通过网络对EJB进行调用的。由多个EJB服务节点组成的EJB集群,能够将EJB客户端请求按照一定的策略均匀地分发到EJB集群的某个服务节点上,从而提高EJB集群的吞吐量和高可用性。

HTTP请求处理优化。

对每个应用系统来说,网络请求都必不可少。针对大量用户、高并发业务系统出现用户反应请求处理很慢、界面刷不出来、一直加载等问题,通过改进中间件应用服务器的HTTP、AJP(Apache JServ Protocol)、EJB请求处理调度模型来进行优化,提高了请求处理响应速度。

线程调度框架。

为并发请求的高速处理提供两级线程调度模型,使得前端请求可以高效并行处理,并提供线程调用超时、线程复用、线程运行时动态调节等功能。

EJB远程调用优化。

针对EJB远程调用的特点,从远程传输协议、EJB调用参数和返回结果对象的序列化,以及接收线程的并行处理等方面对EJB远程调用进行优化,从而提高复杂EJB远程调用场景的性能。

协议解析器。

针对HTTP、AJP提供协议解析功能,根据协议规范从请求header和请求body中解析出有效数据传递给后端容器进行进一步处理。

性能瓶颈分析工具。

提供分析应用系统并发处理性能瓶颈的工具,可以实现瓶颈故障代码级问题的定位。提供慢请求分析、慢SQL分析、线程分析、内存分析等多种类型的分析功能。

(4)分布式内存网格。

随着企业应用的并发访问用户越来越多,单个应用实例已经不足以支撑,这时就要求应用可以动态地横向扩展。通过增加实例个数对并发用户进行分流,集群式解决方案的常规做法是在多个应用实例前端放置负载均衡服务器,将大并发的用户请求引入不同的应用实例上进行处理。在实际的业务场景下,企业应用实例的运行往往会伴随着很多数据的产生,这些数据使得应用实例具有了状态,而当应用实例具有了状态后,横向扩展就会变得困难,因为新扩展的应用实例需要同步已有应用实例的状态,这样才能进行协作并保持业务数据的一致性,因此需要通过分布式内存网格系统来解决这个问题。

(5)集群管理工具。

集群管理工具为集群运行、管理、监视、运维管控的核心依托,是确保集群化业务应用系统高可用性的基础保障。

集群管理工具提供服务器管理、节点管理、资源配置、应用管理、集群配置、Java命名和目录接口(Java Naming and Directory Interface,JNDI)管理、统一部署管理、用户管理、集群监视、集群诊断、集群日志、弹性伸缩、智能路由等功能。

服务器管理。

服务器为集群的基础设施,集群管理工具须提供服务器的实例管理功能,包括实例增加、删除、复制、启动、停止、查看。

节点管理。

节点管理对集群环境下的应用服务器节点进行动态管理。

资源配置。

资源配置包括对JDBC、Java连接器架构(Java Connector Architecture,JCA)、EJB等资源进行配置管理。

应用管理。

应用管理提供应用的部署、启动、停止、解部署、重部署等功能。

集群配置。

集群配置针对集群的服务器配置、Session复制、负载均衡服务器等信息进行配置管理,支持对集群节点的公共类路径 jar 包或class 文件的推送。

JNDI管理。

JNDI管理提供 JNDI 树,便于用户对管理的所有服务器进行 JNDI 信息的查询,包括对远程EJB域、本地EJB域、应用global域、应用域内的JNDI进行显示。

统一部署管理。

统一部署管理提供集群环境下,同一服务器上多套应用服务器的统一部署,提高部署效率。

用户管理。

用户管理对集群环境下应用服务器管理的相关用户进行创建、编辑、删除、查询等管理,确保应用服务器安全运行。

集群监视。

集群监视提供对所管集群内实例的监视功能。

集群诊断。

集群诊断提供完善的监控诊断和快照分析,在出现问题或有潜在隐患时会自动生成内容详细的快照,并提供快照回放功能,将快照信息与监控诊断系统提供的监控持久化数据相结合,就可以分析出之前发生问题的原因。

集群日志。

集群日志提供日志级别、日志配置、异步日志等功能,也提供连接池诊断和SQL分析等功能。

弹性伸缩。

弹性伸缩能够自动、及时地根据业务量规模的变化对集群节点进行增减,并且不影响业务的连续运行,从而可以达到提高资源利用率、随时从容应对变化的大并发压力的目标。

智能路由。

由于集群节点众多、环境复杂,为此需要提供能够自动、及时地根据业务量规模的变化而对集群节点调整的路由,并且不影响业务的连续运行。

3.特性

(1)高性能。

中间件应用服务器集群采用高性能负载均衡服务器进行请求分发。负载均衡服务器可将用户请求通过轮询、比例因子、权重、随机等多种分发策略快速分发给应用服务器,确保用户请求可以快速得到响应。同时,负载均衡服务器还提供了动静数据分离功能,可进一步提升系统的响应能力。中间件应用服务器集群利用分布式内存网格保存会话数据,分布式内存网格具有极高的读写速度,同时配合异步写操作,使请求响应时间几乎不受影响,保证了大压力下的高吞吐量。

(2)高可用性。

中间件应用服务器集群可提供大并发用户对应用的访问能力,支持应用请求控制、分发,以及会话复制等功能,确保登录用户在遇到服务器宕机、网络故障等问题时,实现无感应用访问切换,且不会丢失会话信息。应用服务器、分布式内存网格均可由多台服务器组成集群,负载均衡服务器可将用户请求按不同策略分发给应用服务器。应用服务器分布式内存网格是用来保存会话数据的内存缓存服务器,可以配置多台服务器组成缓存集群,缓存集群之间可以自动复制数据,不存在单点问题,提供了极高的可靠性。

(3)可扩展性。

中间件应用服务器集群在不影响原业务系统正常运转的情况下,可实现服务器的动态增加。应用服务器、分布式内存网格均可支持动态扩展功能,新加入的应用服务器、缓存服务器可立刻参与分担用户的访问请求,从而降低整个集群的压力。

(4)兼容性。

中间件应用服务器集群支持市场上国外主流硬件及国产安全、可靠的硬件平台,也支持国外主流及国产的操作系统、数据库。

1.3.5 统一部署管理工具

本小节主要介绍统一部署管理工具的概念、架构设计和特性。

1.概念

统一部署管理工具是用于实现国产服务器上的操作系统、数据库、中间件等基础软件的统一部署管理,提供统一部署、交付、运维的管理界面和接口,可以提高系统上线部署效率,降低各种集群软件安装配置的复杂度。

2.架构设计

统一部署管理工具的架构如图1-5所示。

图1-5 统一部署管理工具的架构

主机管理。

主机管理对用于部署的服务器进行统一登记,保证其处于受控状态,即可以用相应的技术手段对其执行管理任务。例如,进行标识、开关机、重启、部署系统等工作。

安装配置。

当部署服务器处于受控状态后,可以对目标服务器进行远程预启动执行环境(Preboot eXecution Environment,PXE)引导,实现基于网络操作系统的自动部署,然后基于操作系统镜像中预置的组件,拉取相应的安装包,完成数据库、中间件等软件和集群的安装部署。

安装包管理。

在部署管理机上,安装包管理存放预先适配好的不同平台、不同操作系统、不同版本的基础软件安装包,并提供典型的配置参数,供安装部署时选用。

系统管理。

系统管理用来管理本平台的用户相关信息,校验用户信息、访问功能。

交付部署控制台。

交付部署控制台提供了人机交互界面,通过图形化的部署过程简化原来大量的命令行操作,降低部署难度,提高部署效率。

3.特性

统一部署管理工具具有以下特性。

(1)基于DevOps技术提供自动化交付能力。

统一部署管理工具基于DevOps技术,实现了远端宿主机上的快速软件交付能力。标准化部署环境、测试环境、部署流程,使得操作系统、数据库、中间件软件集群产品部署交付过程经过内部严格的管道测试后,再到客户现场进行完全一致的生产部署。

(2)支持多种硬件平台和操作系统。

统一部署管理工具支持Intel x86平台和龙芯、飞腾、鲲鹏等国产硬件平台,也支持主流国产服务器操作系统,如麒麟等。系统提供Linux上的一键离线部署包,部署就绪的系统可以同时远程管理多台部署服务器。

(3)提供所见即所得的交付部署界面。

统一部署管理工具提供所见即所得的Web界面,将复杂的交付过程简化为主机管理、部署配置、部署执行等,使普通技术人员也能快速完成复杂系统的软件交付工作。整个部署执行过程同步输出部署日志,便于部署人员分析并处理可能出现的部署问题。

(4)支持多种集群软件交付。

统一部署管理工具支持多种集群软件的自动化交付工程,包括操作系统/操作系统高可用集群、数据库/数据库共享存储集群、中间件/中间件应用服务器集群等的安装和配置,极大地降低了复杂集群软件的交付运维难度,使这些平台能更好地服务于各类项目的部署交付过程。

(5)开放式架构,支持多种形式的软件部署工程。

采用开放式架构,支持多种类型、多种平台、多种操作系统上的自动化软件部署工程。所有符合标准的部署工程均可按需装载到系统中,为系统提供多种不同功能的软件部署方案。系统为每个部署工程提供了可配置参数及设置功能,便于各类部署工程定义自己的部署参数。

(6)全面支持内网环境下的全离线部署。

统一部署管理工具充分考虑了内网环境下的部署需求,操作系统及所有的部署依赖均无须上网,就可以在内网环境下离线完成操作系统部署、依赖软件部署、系统软件部署等所有工作,特别适合各种专网环境下的交付场景。

相关图书

有限元基础与COMSOL案例分析
有限元基础与COMSOL案例分析
程序员的README
程序员的README
现代控制系统(第14版)
现代控制系统(第14版)
现代软件工程:如何高效构建软件
现代软件工程:如何高效构建软件
GitLab CI/CD 从入门到实战
GitLab CI/CD 从入门到实战
科学知识图谱:工具、方法与应用
科学知识图谱:工具、方法与应用

相关文章

相关课程