银行核心系统是否分布式架构?

银行核心系统能否采用分布式架构?分布式架构下如何保障数据的一致性?

参与10

3同行回答

tangguobingtangguobing系统架构师IBM
不同的应用架构需求,衍生不同的数据系统架构1.银行对信息的实时单一真实性要求决定了核心业务系统数据逻辑集中,共享式集群架构(基于关系型数据库,支持OLTP历史悠久)这种架构支持跨多个业务线的紧耦合的大联机交易量的处理,它能够保证信息的实时的单一真实性;无需通过应用层跨...显示全部

不同的应用架构需求,衍生不同的数据系统架构
1.银行对信息的实时单一真实性要求决定了核心业务系统数据逻辑集中,共享式集群架构(基于关系型数据库,支持OLTP历史悠久)
这种架构支持跨多个业务线的紧耦合的大联机交易量的处理,它能够保证信息的实时的单一真实性;无需通过应用层跨系统的集成开销来保证数据和交易的一致性;由于紧耦合的数据可提供整个耦合的单一逻辑形象,可以说是做到了分享一切。应用不需要考虑跨不同数据库的完整性、恢复性等等,因此对于应用的开发人员来讲节省了许多集成层面和管理层面的烦恼。
这种全共享式数据集中的紧耦合集群架构是一种既有SCALE OUT横向扩展能力也有SCALE UP纵向扩展能力的系统架构。
集中式的DB2,Unix平台的DB2 pureScale, Oracle是这种架构。因此大型银行采用集中式的DB2,中小型银行采用Unix平台的DB2 pureScale 或 Oracle。
2.互联网交易系统基于数据物理分区,无共享分布式架构
互联网业务对数据不一致性及耦合程度要求低,可以使用无共享分布式计算架构。这种架构中的每一个节点( node)都是独立、自给的,而且整个系统中没有单点竞争。无共享分布式架构在Web 应用开发中尤其受到欢迎,究其原因是这种方案提供的灵活的可扩展性。Google在这个方面做了很好的示范。 无共享分布式架构通常需要将他的数据分布在多个节点的不同数据库或文件中(不同的计算机处理不同的用户和查询)或者要求每个节点通过使用某些协调协议来保留它自己的应用程序数据备份,这通常被成为数据库Sharding。
数据强完整性被限制在极小的数据库实例范围内,跨数据库使用复杂的应用进行补偿式的完整性确认与保障。
以淘宝为例,淘宝的交易数据架构原来也是共享式集群架构,其无法满足应用的需求而使其转而使用无共享模式。

3.无共享分布式数据架构下通过数据分裂来保证可用性和扩展性,但数据一致性无法保障
a.纵向分区
理论上存在对于纵向完美分区的可能性,但实践中去难以完成,比如对于帐户信息而已,纵向分区考虑把需要一起操作的数据的放在一起,但现实上难以做到。非完美的切割造成复杂的应用逻辑。
b.横向分区
横向分区的方法是对于数据使用键值的哈希或者范围进行切割,和纵向分区相比,只是数据的切割方向不同,本质没有发生变化。对于应用的影响类似。比如淘宝使用的方法,限制应用的SQL连接及排序。
通常使用复制的方法来保证数据的“单点真实性”,同时多点的复制引入新的数据真实性的问题。
c.读写分离
使用数据复制来形成多份数据拷贝,在只读数据上启用查询交易。业务对数据延时及一致性需要单独考虑
d.主要的缺陷
事务的有限支持。支持基于单库的事务,但不支持跨库进行事务。一旦业务需要跨库的事务处理,要么使用复杂的数据模型和应用逻辑来保障,要么使用昂贵的系统方法(降低其扩展能力)。
无法处理局部热点。局部热点不会随着数据拆分而消失,另外拆分的数据平衡也是极其复杂的问题。
开发的低效性 。数据”分区”是非标准化的解决方案,只支持很基本的SQL操作.使用该方法将造成程序员开发的低效性和提高应用逻辑的复杂度。
架构的独特性。独特的架构引入了维护与监控以及和其他商业软件的互联互通等一系列独有的问题.
以支付宝为例,为了保证其扩展性和可用性,牺牲数据一致性,每笔支付需要500条SQL和80个数据库事务通过近500个系统来完成。而工行的支付不超过50条SQL的单一个数据库事务。传统银行的架构是最高效简单安全处理该类负载的。

4.分布式系统与集中式系统相比,对可靠性的诠释有着不同的平衡思想
a.分布式的思想是把鸡蛋放到多个篮子,篮子之间是软连接,集中式的思想是有限的篮子,但篮子间的连接相对强度较高.很重要的问题是要放几个鸡蛋。集中式系统在不断提高篮子的强度的同时通过GDPS AA/未来数据库等技术来规避鸡蛋放到同一个篮子的风险。
分布式的设计思路是基于多种外部因素的可恢复,恢复复杂冗长.集中式设计的思路是内生的快速恢复的思路.比如系统升级。
b.集中式系统与互联网分布式系统相比,有着各个层次全面高效丰富的业务连续性保障手段和方案,减少整个解决方案在技术实现层面的偶发性错误。
集中式硬件使用全面的冗余设计来保证其可靠性,互联网分布系统硬件的设计思路是减少成本,无硬件冗余。
集中式系统及配套设备在硬件的冗余基础上,通过Sysplex/PPRC/GDPS 等技术做到外部的多重自动冗余保护。做到无宕机,无数据丢失。互联网分布系统无本层保护措施。
基于集中式系统的软件,特别是数据库软件,充分利用集群技术,做到数据全共享。互联网分布系统基于单机系统。
基于软件复制的GDPS AA技术,确保整个核心业务系统能够快速在异地接管,保障业务的连续性。互联网分布系统有类似的做法,在平衡恢复时间与数据丢失上,互联网应用的天平指向恢复时间,并无其他选择。
基于上述多层冗余保护体系架构的数据中心,其运维管理做到最简化。而对于互联网分布系统而言,大量的维护工作增加了数据中心的运行风险。

收起
硬件生产 · 2018-06-29
浏览4778
Jerry.DunaJerry.Duna主管江苏江南农村商业银行
就目前我参与的核心系统的建设,应用采用分布式的是一个趋势。因为从容错、性能、吞吐量、扩展性来说都有明显的优势。目前有厂商的Java版的核心系统就是采用分布式架构的新一代核心系统。数据库的话还是采用RAC+DG的方式,因为银行的核心系统的数据库大部分还是Oracle、DB2...显示全部

就目前我参与的核心系统的建设,应用采用分布式的是一个趋势。因为从容错、性能、吞吐量、扩展性来说都有明显的优势。目前有厂商的Java版的核心系统就是采用分布式架构的新一代核心系统。数据库的话还是采用RAC+DG的方式,因为银行的核心系统的数据库大部分还是Oracle、DB2这些传统的关系型数据库。分布式数据库是通过两阶段提交协议来保证事务的一致性。

收起
银行 · 2018-06-28
浏览2846
haizdlhaizdl技术经理大连
分布式数据库?我觉得可能性很小。核心系统的数据库不可能实现NOSQL,也没有必要。关系型数据库就是最适合其业务的数据库,既然选择了关系型数据库就不可能纯粹的分布式,只能在分库分表以及纵向的架构处理能力及稳定性上面去做一些文章。个人见解...显示全部

分布式数据库?我觉得可能性很小。核心系统的数据库不可能实现NOSQL,也没有必要。关系型数据库就是最适合其业务的数据库,既然选择了关系型数据库就不可能纯粹的分布式,只能在分库分表以及纵向的架构处理能力及稳定性上面去做一些文章。个人见解

收起
银行 · 2018-06-28
浏览2921

提问者

李军华
系统工程师四川银行商业银行
擅长领域: 存储灾备双活

问题来自

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2018-06-26
  • 关注会员:4 人
  • 问题浏览:6358
  • 最近回答:2018-06-29
  • X社区推广