• 快捷搜索
  • 全站搜索

银行核心系统如何应用分布式架构

2017-05-22 15:19:08作者:中国建设银行信息技术管理部总经理 金磐石编辑:金融咨询网
相对于主机集中式架构,以X86 和云计算为基础、以数据切分为特征的现代分布式架构在扩展性、低成本、降低运行风险等方面的优势明显,已经成为主流的联机交易系统架构方案。

相对于主机集中式架构,以X86 和云计算为基础、以数据切分为特征的现代分布式架构在扩展性、低成本、降低运行风险等方面的优势明显,已经成为主流的联机交易系统架构方案。本文针对分布式架构在银行核心业务系统中的应用,分享了分库分表、读写分离、数据共享和访问性能优化、高效运维等关键技术方案设计要点。

图片1.jpg
中国建设银行信息技术管理部总经理 金磐石

分布式架构概念

        各大型国有商业银行经过十多年的发展,都已经实现了数据集中,而且,随着客户服务的不断发展和提升,各家银行核心业务系统的账户量和交易量都已经达到了超大规模,系统的处理能力和性能以及可用性、可靠性、数据一致性、业务连续性等要求极高。在这个过程中,集中式架构发挥了重要作用,各家银行的核心系统基本都构建在集中式架构之上,尤其以大型主机架构为代表。集中式架构下,一般采用纵向扩展的方式即通过增加单机的资源配置来提升系统的处理能力。通过硬件设备和基础软件的集群机制来提升系统的可用性。

        本文谈及的分布式架构是指近年来兴起于互联网公司的一种现代分布式架构。分布式架构以X86和云计算为基础、以数据切分(Sharding)、读写分离为特征,采用横向扩展的方式,通过增加服务器的数量,提升系统的处理能力,每个节点都是一个可独立运行的单元,失效时也不会影响应用整体的可用性。另外,系统可以分散到多个节点运行,降低了对单节点的处理能力和可靠性要求,给使用X86服务器替代高性能的主机和小型机服务器创造了条件,可大大降低基础设施的投入成本。

        长期以来,银行核心业务系统一直是安全、稳定、可靠的典范。但采用集中式架构的核心业务系统建设费用和运营成本昂贵,随着银行业竞争的加剧,特别是面对采用了低成本分布式架构技术的互联网公司向金融领域的渗透,各大银行都在探索主机迁移方案以节约成本。更大的挑战是随着银行经营转型和业务拓展,核心业务系统的规模急剧扩大,支持的交易模式也更加复杂,核心业务系统处理能力的瓶颈逐渐凸显,需要采取有效措施降低主机负荷,控制运行风险。因此,将分布式架构应用于核心业务系统必然成为各大银行应对上述双重压力的一种选择。

困难和挑战

        由于分布式架构采用了单体处理能力较小、可靠性较低的常规服务器,与主机或小型机相比存在一些弱点,要将分布式架构应用到银行核心业务系统中,将面临以下困难和挑战。

        1.并发处理能力。采用分布式架构的银行核心业务系统一般采用两层结构,即应用服务器层和数据库服务器层,按照SOA的设计原则,部署在应用服务器层的业务逻辑采取服务化和无状态的处理,易于实现横向扩展。而数据库服务器层采取分库分表、读写分离的策略实现处理能力的扩展,如何提高数据库服务器层的并发处理能力是分布式架构在银行核心业务系统应用面临的最大挑战。

        2.可用性水平。高可用性是银行核心业务系统最重要的运行指标。各大银行之所以仍然采用主机集中式架构构建核心业务系统,最主要的原因是开放平台比主机的可靠性要低。分布式架构下使用的X86服务器可靠性更低,由于应用服务器层采取了负载均衡及高可用设计,其总体可用性可以达到更高标准。而数据库层采用分库分表和读写分离技术后,也更有利于提高数据库总体可用性,但基础设施包括云平台及网络、存储以及复制、同步软件的可用性将成为主要挑战。   
 
        3.交易一致性。交易一致性是银行核心业务系统的基本要求,核心业务系统交易一致性要求远高于电商平台和其他互联网应用。交易一致性指的是数据库事务管理必须满足ACID(原子性Atomic、一致性Consistency、隔离性Isolation、持久性Durability)要求,否则将会发生交易一致性问题。由于分布式架构采取分库分表策略,导致跨库跨表的事务增多,如果采用二阶段提交(Two Phase Commit)机制来进行事务管理,则会引起性能和可用性问题,成为了影响分布式架构在银行核心业务应用的最大障碍。另一个交易一致性问题是由于分布式架构下数据采取读写分离的策略造成的。根据CAP理论:一个系统不能同时满足一致性、可用性和分区容忍性这三个要求。数据库读写分离实际上是要满足分区容忍性,所以可用性和一致性不可能同时得到满足。如何调和因读写分离带来的可用性和一致性矛盾,也是分布式架构设计必须解决的问题。

        4.运维复杂度。分布式架构下,采用大量的X86服务器来实现主机或小型机才有的处理能力和高可用性,使得系统的服务器数量急剧膨胀,应用结构和关联关系更为复杂,给运维工作带来巨大挑战。

解决方案

        分布式架构的核心在于“分”,难点在于“既要能分,也要能合”。下面是分布式架构中几个关键技术方案的设计要点。

     图片2.jpg  
 图1 分库分表概念模型

        1.分库分表策略。常见的分库分表策略包括垂直切分和水平切分。垂直切分是指从业务分析入手,将系统按照不同的业务功能,划分为一些相对独立的子系统或模块。水平切分是指按照一定的逻辑,将数据表按照分区键值进行切分,实现数据的分布式存储。

        多数场景下都需要将垂直切分和水平切分联合使用,先对数据进行垂直切分,再针对场景下数据访问特征选择性地进行水平切分(如图1所示)。

 1 2 3 下一页 尾页

扫码即可手机
阅读转发此文

本文评论

相关文章