《余额宝技术架构及演进》阅读笔记
余额宝的技术创新
-
基金直销和 TA 清算的整合。传统的基金系统直销和清算是分开。直销系统每天要把数据以文件形式导入清算系统里去。这件事情我们做了很大的改进,这么大体量数据来说,每天导入导出这个数据不可想象,在这里做了一个直销和 TA 融合,后面我会有一个详细的介绍。
-
交易的简化,监管大的框架下,满足监管要求的基础上,我们对交易逻辑做了很大的一个简化。
-
余额宝是核心业务在云上运行的系统。这是余额宝技术方面的创新。
未来演进思考
-
从大的方面来讲是全局通盘考虑。我们要把核心和辅助系统通盘考虑,降低数据的冗余,降低数据维护成本。
-
数据方面要用多不同的存储来解决不同场景的需求,还有刚才提到计算和存储的彻底解耦,做到计算和存储的独立可扩展。
-
计算方面尽量做到业务上的拆分和轻量化,化繁为简,拆分之后把应用服务化。
1、数据驱动
我们系统的演进,数据量由单一小量向大量多类转变,同时应用种类从以交易为主到交易、分析和挖掘多种类并存。另外实时性要求也有变化,新的业务模式有时候要求实时或者准实时给用户呈现结果。
对业务来说对不同数据应用采用不同的存储:
-
比如对于在线交易,可以采用经过阿里支付宝验证过的 OB,专门用于解决金融级的分布式关系数据库的解决方案;
-
对于批量结算,可以继续沿用多年来在余额宝已经用的很娴熟的 RDS 集群。
-
对于 2T 到 PB 级的小数仓可以用 PetaData,解决以年度为单位的数据存储。
-
对于大规模的批量计算,数据仓库这块,我们直接就用 ODPS。
-
对大表存储可采用 OTS。
-
对于分析型、挖掘类需求可采用列存数据库。
2、服务化
关于拆分和服务化治理,后面考虑做的事情是充分利用阿里云的 PaaS 平台技术,把我们大应用拆分为简单的可横向扩展的小应用。
在服务的调用上,每个服务同时是服务提供方也是服务调用方,由 PaaS 平台的中间件统一管理服务。对我们来说是更多考虑如何基于中间件把业务来做好。服务化改造之后肯定会涉及到服务之间的调用。同步调用,可以直接走服务化的接口。
3、异步调用
异步调用主要靠消息中间件。金融系统对消息中间件的可靠性要求非常高,这块我们还是沿用传统思路,并不想采用开源解决方案去填那些坑,更多考虑采用成熟金融级消息中间件来做这件事情。