返回tangguobing的回答

tangguobingtangguobing系统架构师IBM

不同的应用架构需求,衍生不同的数据系统架构,这里仅以互联网金融支付宝和传统银行进行对比:
一,分布式与集中式数据库的分野?
在业务体系上,支付宝和银行在业务逻辑、监管方式、数据要求上完全不同;业务决定技术,这也造成了不同的技术路径。需要强调的是,尽管两种不同的技术路径,但技术原理却是相同的。分布式和集中式数据库各有优缺点,也就各有不同的适用环境。
2002年,麻省理工学院MIT的教授在数学上证明了CAP理论。在分布式计算(存储)的架构里,由于网络引起的时延是必然的(Partition Network Toleration),因此对于一个操作在数据一致性(C=Consistency)和数据可用性(A=Availability)方面必须取舍一个。许多互联网的业务类型(电商、搜索引擎等等),可以接受最终的数据弱一致性,因此分布式计算模式加数据可用的高扩展架构成为Web2.0公司的平台基础。而对于金融业需要数据实时强一致性的业务,采用关系型商业数据库来满足ACID(代表Atomicity原子性、Consistency一致性、Isolation隔离性、Durability持久性,是实现实时强一致性的基础)也是历史的正确选择。
分布式计算、集中式计算不是谁替代谁,而是各有不同的用点。适合不同的业务场景需求。互联网应用确实将分布式计算带到了新的台阶,但是并没有突破计算机科学的CAP基本原理。因此有时候需要牺牲数据一致性换得处理能力的线形可扩展性。而银行业务需要注重数据的实时强一致性采用集中处理,在一个统一的唯一数据视图上进行横向和竖向的扩展来满足业务的吞吐量要求。所以银行的架构是集中和分布的综合体。选择完整性/可用性(C/A)保证数据的强一致性事务处理交易,是银行在过去的三十几年的业务发展过程中要求遵循的基本架构及编程原则。采用数据库、交易管理中间件从系统级提供的数据强一致性,简化业务应用的编程使其致力于业务功能的实现是银行过去的最佳实践。因此,集中式计算体系依然至关重要。 在支付宝交易中,这种保持数据弱一致性非事务处理交易,采用分布式计算则是最经济的选择。同理,与银行核心交易无关的外围业务也可以采用分布式架构,未来银行的架构一定是一种集中式和分布式混合体系。

二,平台型轻应用和纵向重度应用,支付宝和银行的本质
从两者本质上看,阿里有着互联网企业的重要特征:业务逻辑是平台型的轻应用,即商家卖货,消费者买货,阿里本身不涉及货;支付宝也是消费者和商家之间的买卖并行交易,支付宝本质是交易工具,本身不靠资金的多少生存。
而以商业银行为代表的金融体系则是靠资金来生存发展的,它的业务逻辑则是典型的重应用:比如银行业务从资产负债表的构成就主要分为三类:存款、借款、债券等负债业务,储备、 投资、信贷、放款等资产业务,以及支付结算、基金托管、银行卡、担保、理财等中间业务。因此,银行一定要做集中式处理,这不是简单的金额加减问题,要涉及到客户账,分户账,会计总账等系列后台逻辑数据的变更,所有的账务系统要有相应的规则统一管理。借和贷必须在一个逻辑处理事务单元实时完成并保证ACID。而阿里的支付借和贷之间是脱钩的,个人支付宝帐户的扣款和商户的支付异步进行。支付往往滞后帐户扣款。因此仅仅是银行交易的一半途径且不遵循复杂的会计体系原则。
因此,两者的业务应用场景在本质是有区别的:支付宝只是做了支付这一步,而银行在支付的背后,需要有整个帐务逻辑和金融风险管控。后者要求每一步操作,不论是查询还是交易都必须有可跟踪的、有时间戳的日志。如果在银行帐务系统的处理上采用网上购物这种数据弱一致性非事务处理交易架构,错账、乱帐的风险会提高,由此产生金融风险、法律纠纷的风险提高。记得在银行未实现数据大集中之前,银行业务对帐的时间就很长,帐务出现差错,要追帐,查帐,纠错的压力也就相应而来。

硬件生产 · 2018-06-29
浏览2106

回答者

tangguobing
系统架构师IBM
擅长领域: 存储服务器灾备

tangguobing 最近回答过的问题

回答状态

  • 发布时间:2018-06-29
  • 关注会员:2 人
  • 回答浏览:2106
  • X社区推广