漫谈大规模交易系统架构设计--Core
??? 交易的核心是什么?很多时候大家都说不到点子上。其实最最核心东西的就是把钱(或证券等)从账户A移到账户B的操作;任何交易系统,都脱不开这个操作。这个操作的相关东东就是整个交易系统的核心。
??? 核心相关的东东有些什么?
??? 首先是帐务系统。把钱(或证券等)从A账户移到B账户,你得知道A账户的情况,你得知道B账户的情况;账户管理必须得有。帐务信息要存储到数据库里。
??? 其次是钱转移的过程,也就是把钱从账户A里拿出来,把钱放到B账户里去。所以移钱一般有两个数据库操作:A账户减钱,B账户加钱。这就涉及到事务一致性的问题。钱从A账户扣掉后,必须保证钱能加到B账户里去。关于事务一致性的处理,后面再详细说。
?? 因为交易系统通常都涉及到钱(或有价值的物)的交换,不能出差错;出了差错,必须及时纠正。这就需要进行每天对账。你账户一天进账多少,出账多少,账户余额昨天是多少,今天是多少。这些信息必须能对得上,否则就一定是出了问题。所以对账清算系统也是比较核心的东西。
?? 有了以上三个东西,你的交易系统基本上就工作了。其它的东西都是外围的,都是围绕着这三个方面转的。做大规模交易系统架构设计,首先要把握好这三个东西。你系统设计得好还是不好,是牛X还是狗屎,主要就是看这三个东西你是如何实现的。
?
?