余额宝技术架构及演进

html{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;line-height:1.6}body{-webkit-touch-callout:none;font-family:-apple-system-font,"Helvetica Neue","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;background-color:#f3f3f3;line-height:inherit}body.rich_media_empty_extra{background-color:#fff}body.rich_media_empty_extra .rich_media_area_primary:before{display:none}h1,h2,h3,h4,h5,h6{font-weight:400;font-size:16px}*{margin:0;padding:0}a{color:#607fa6;text-decoration:none}.rich_media_inner{font-size:16px;word-wrap:break-word;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto}.rich_media_area_primary{position:relative;padding:20px 15px 15px;background-color:#fff}.rich_media_area_primary:before{content:" ";position:absolute;left:0;top:0;width:100%;height:1px;border-top:1px solid #e5e5e5;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleY(0.5);transform:scaleY(0.5);top:auto;bottom:-2px}.rich_media_area_primary .original_img_wrp{display:inline-block;font-size:0}.rich_media_area_primary .original_img_wrp .tips_global{display:block;margin-top:.5em;font-size:14px;text-align:right;width:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-wrap:normal}.rich_media_area_extra{padding:0 15px 0}.rich_media_title{margin-bottom:10px;line-height:1.4;font-weight:400;font-size:24px}.rich_media_meta_list{margin-bottom:18px;line-height:20px;font-size:0}.rich_media_meta_list em{font-style:normal}.rich_media_meta{display:inline-block;vertical-align:middle;margin-right:8px;margin-bottom:10px;font-size:16px}.meta_original_tag{display:inline-block;vertical-align:middle;padding:1px .5em;border:1px solid #9e9e9e;color:#8c8c8c;border-top-left-radius:20% 50%;-moz-border-radius-topleft:20% 50%;-webkit-border-top-left-radius:20% 50%;border-top-right-radius:20% 50%;-moz-border-radius-topright:20% 50%;-webkit-border-top-right-radius:20% 50%;border-bottom-left-radius:20% 50%;-moz-border-radius-bottomleft:20% 50%;-webkit-border-bottom-left-radius:20% 50%;border-bottom-right-radius:20% 50%;-moz-border-radius-bottomright:20% 50%;-webkit-border-bottom-right-radius:20% 50%;font-size:15px;line-height:1.1}.meta_enterprise_tag img{width:30px;height:30px!important;display:block;position:relative;margin-top:-3px;border:0}.rich_media_meta_text{color:#8c8c8c}span.rich_media_meta_nickname{display:none}.rich_media_thumb_wrp{margin-bottom:6px}.rich_media_thumb_wrp .original_img_wrp{display:block}.rich_media_thumb{display:block;width:100%}.rich_media_content{overflow:hidden;color:#3e3e3e}.rich_media_content *{max-width:100%!important;box-sizing:border-box!important;-webkit-box-sizing:border-box!important;word-wrap:break-word!important}.rich_media_content p{clear:both;min-height:1em;white-space:pre-wrap}.rich_media_content em{font-style:italic}.rich_media_content fieldset{min-width:0}.rich_media_content .list-paddingleft-2{padding-left:30px}.rich_media_content blockquote{margin:0;padding-left:10px;border-left:3px solid #dbdbdb}img{height:auto!important}@media(min-device-width:375px) and (max-device-width:667px) and (-webkit-min-device-pixel-ratio:2){.mm_appmsg .rich_media_inner,.mm_appmsg .rich_media_meta,.mm_appmsg .discuss_list,.mm_appmsg .rich_media_extra,.mm_appmsg .title_tips .tips{font-size:17px}.mm_appmsg .meta_original_tag{font-size:15px}}@media(min-device-width:414px) and (max-device-width:736px) and (-webkit-min-device-pixel-ratio:3){.mm_appmsg .rich_media_title{font-size:25px}}@media screen and (min-width:1024px){.rich_media{width:740px;margin-left:auto;margin-right:auto}.rich_media_inner{padding:20px}body{background-color:#fff}}@media screen and (min-width:1025px){body{font-family:"Helvetica Neue",Helvetica,"Hiragino Sans GB","Microsoft YaHei",Arial,sans-serif}.rich_media{position:relative}.rich_media_inner{background-color:#fff;padding-bottom:100px}}.radius_avatar{display:inline-block;background-color:#fff;padding:3px;border-radius:50%;-moz-border-radius:50%;-webkit-border-radius:50%;overflow:hidden;vertical-align:middle}.radius_avatar img{display:block;width:100%;height:100%;border-radius:50%;-moz-border-radius:50%;-webkit-border-radius:50%;background-color:#eee}.cell{padding:.8em 0;display:block;position:relative}.cell_hd,.cell_bd,.cell_ft{display:table-cell;vertical-align:middle;word-wrap:break-word;word-break:break-all;white-space:nowrap}.cell_primary{width:2000px;white-space:normal}.flex_cell{padding:10px 0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.flex_cell_primary{width:100%;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;box-flex:1;flex:1}.original_tool_area{display:block;padding:.75em 1em 0;-webkit-tap-highlight-color:rgba(0,0,0,0);color:#3e3e3e;border:1px solid #eaeaea;margin:20px 0}.original_tool_area .tips_global{position:relative;padding-bottom:.5em;font-size:15px}.original_tool_area .tips_global:after{content:" ";position:absolute;left:0;bottom:0;right:0;height:1px;border-bottom:1px solid #dbdbdb;-webkit-transform-origin:0 100%;transform-origin:0 100%;-webkit-transform:scaleY(0.5);transform:scaleY(0.5)}.original_tool_area .radius_avatar{width:27px;height:27px;padding:0;margin-right:.5em}.original_tool_area .radius_avatar img{height:100%!important}.original_tool_area .flex_cell_bd{width:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-wrap:normal}.original_tool_area .flex_cell_ft{font-size:14px;color:#8c8c8c;padding-left:1em;white-space:nowrap}.original_tool_area .icon_access:after{content:" ";display:inline-block;height:8px;width:8px;border-width:1px 1px 0 0;border-color:#cbcad0;border-style:solid;transform:matrix(0.71,0.71,-0.71,0.71,0,0);-ms-transform:matrix(0.71,0.71,-0.71,0.71,0,0);-webkit-transform:matrix(0.71,0.71,-0.71,0.71,0,0);position:relative;top:-2px;top:-1px}.weui_loading{width:20px;height:20px;display:inline-block;vertical-align:middle;-webkit-animation:weuiLoading 1s steps(12,end) infinite;animation:weuiLoading 1s steps(12,end) infinite;background:transparent url(data:image/svg+xml;base64,PHN2ZyBjbGFzcz0iciIgd2lkdGg9JzEyMHB4JyBoZWlnaHQ9JzEyMHB4JyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj4KICAgIDxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIiBmaWxsPSJub25lIiBjbGFzcz0iYmsiPjwvcmVjdD4KICAgIDxyZWN0IHg9JzQ2LjUnIHk9JzQwJyB3aWR0aD0nNycgaGVpZ2h0PScyMCcgcng9JzUnIHJ5PSc1JyBmaWxsPScjRTlFOUU5JwogICAgICAgICAgdHJhbnNmb3JtPSdyb3RhdGUoMCA1MCA1MCkgdHJhbnNsYXRlKDAgLTMwKSc+CiAgICA8L3JlY3Q+CiAgICA8cmVjdCB4PSc0Ni41JyB5PSc0MCcgd2lkdGg9JzcnIGhlaWdodD0nMjAnIHJ4PSc1JyByeT0nNScgZmlsbD0nIzk4OTY5NycKICAgICAgICAgIHRyYW5zZm9ybT0ncm90YXRlKDMwIDUwIDUwKSB0cmFuc2xhdGUoMCAtMzApJz4KICAgICAgICAgICAgICAgICByZXBlYXRDb3VudD0naW5kZWZpbml0ZScvPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0nNDYuNScgeT0nNDAnIHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nNScgcnk9JzUnIGZpbGw9JyM5Qjk5OUEnCiAgICAgICAgICB0cmFuc2Zvcm09J3JvdGF0ZSg2MCA1MCA1MCkgdHJhbnNsYXRlKDAgLTMwKSc+CiAgICAgICAgICAgICAgICAgcmVwZWF0Q291bnQ9J2luZGVmaW5pdGUnLz4KICAgIDwvcmVjdD4KICAgIDxyZWN0IHg9JzQ2LjUnIHk9JzQwJyB3aWR0aD0nNycgaGVpZ2h0PScyMCcgcng9JzUnIHJ5PSc1JyBmaWxsPScjQTNBMUEyJwogICAgICAgICAgdHJhbnNmb3JtPSdyb3RhdGUoOTAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCknPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0nNDYuNScgeT0nNDAnIHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nNScgcnk9JzUnIGZpbGw9JyNBQkE5QUEnCiAgICAgICAgICB0cmFuc2Zvcm09J3JvdGF0ZSgxMjAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCknPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0nNDYuNScgeT0nNDAnIHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nNScgcnk9JzUnIGZpbGw9JyNCMkIyQjInCiAgICAgICAgICB0cmFuc2Zvcm09J3JvdGF0ZSgxNTAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCknPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0nNDYuNScgeT0nNDAnIHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nNScgcnk9JzUnIGZpbGw9JyNCQUI4QjknCiAgICAgICAgICB0cmFuc2Zvcm09J3JvdGF0ZSgxODAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCknPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0nNDYuNScgeT0nNDAnIHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nNScgcnk9JzUnIGZpbGw9JyNDMkMwQzEnCiAgICAgICAgICB0cmFuc2Zvcm09J3JvdGF0ZSgyMTAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCknPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0nNDYuNScgeT0nNDAnIHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nNScgcnk9JzUnIGZpbGw9JyNDQkNCQ0InCiAgICAgICAgICB0cmFuc2Zvcm09J3JvdGF0ZSgyNDAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCknPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0nNDYuNScgeT0nNDAnIHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nNScgcnk9JzUnIGZpbGw9JyNEMkQyRDInCiAgICAgICAgICB0cmFuc2Zvcm09J3JvdGF0ZSgyNzAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCknPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0nNDYuNScgeT0nNDAnIHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nNScgcnk9JzUnIGZpbGw9JyNEQURBREEnCiAgICAgICAgICB0cmFuc2Zvcm09J3JvdGF0ZSgzMDAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCknPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0nNDYuNScgeT0nNDAnIHdpZHRoPSc3JyBoZWlnaHQ9JzIwJyByeD0nNScgcnk9JzUnIGZpbGw9JyNFMkUyRTInCiAgICAgICAgICB0cmFuc2Zvcm09J3JvdGF0ZSgzMzAgNTAgNTApIHRyYW5zbGF0ZSgwIC0zMCknPgogICAgPC9yZWN0Pgo8L3N2Zz4=) no-repeat;-webkit-background-size:100%;background-size:100%}@-webkit-keyframes weuiLoading{0%{-webkit-transform:rotate3d(0,0,1,0deg)}100%{-webkit-transform:rotate3d(0,0,1,360deg)}}@keyframes weuiLoading{0%{-webkit-transform:rotate3d(0,0,1,0deg)}100%{-webkit-transform:rotate3d(0,0,1,360deg)}}.gif_img_wrp{display:inline-block;font-size:0;position:relative;font-weight:400;font-style:normal;text-indent:0;text-shadow:none 1px 1px rgba(0,0,0,0.5)}.gif_img_wrp img{min-height:120px;min-width:120px;vertical-align:top}.gif_img_tips{background:rgba(0,0,0,0.6)!important;filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr=‘#99000000‘,endcolorstr = ‘#99000000‘);border-top-left-radius:1.2em 50%;-moz-border-radius-topleft:1.2em 50%;-webkit-border-top-left-radius:1.2em 50%;border-top-right-radius:1.2em 50%;-moz-border-radius-topright:1.2em 50%;-webkit-border-top-right-radius:1.2em 50%;border-bottom-left-radius:1.2em 50%;-moz-border-radius-bottomleft:1.2em 50%;-webkit-border-bottom-left-radius:1.2em 50%;border-bottom-right-radius:1.2em 50%;-moz-border-radius-bottomright:1.2em 50%;-webkit-border-bottom-right-radius:1.2em 50%;line-height:2.3;padding:0 1em;font-size:11px;color:#fff;text-align:center;position:absolute;bottom:10px;left:10px}.gif_img_tips i{vertical-align:middle;margin:-0.2em .73em 0 -2px}.gif_img_play_arrow{display:inline-block;width:0;height:0;border-width:8px;border-style:dashed;border-color:transparent;border-right-width:0;border-left-color:#fff;border-left-style:solid;border-width:5px 0 5px 8px}.gif_img_loading{width:14px;height:14px}i.gif_img_loading{margin-left:-4px}.rich_media_global_msg{position:fixed;top:0;left:0;right:0;padding:1em 35px 1em 15px;z-index:1;background-color:#c6e0f8;color:#8c8c8c;font-size:13px}.rich_media_global_msg .icon_closed{position:absolute;right:15px;top:50%;margin-top:-5px;line-height:300px;overflow:hidden;-webkit-tap-highlight-color:rgba(0,0,0,0);background:transparent url(/mmbizwap/zh_CN/htmledition/images/icon/appmsg/icon_appmsg_msg_closed_sprite.2x.png) no-repeat 0 0;width:11px;height:11px;vertical-align:middle;display:inline-block;-webkit-background-size:100% auto;background-size:100% auto}.rich_media_global_msg .icon_closed:active{background-position:0 -17px}.preview_appmsg .rich_media_title{margin-top:1.9em}@media screen and (min-width:1024px){.rich_media_global_msg{position:relative;margin:0 20px}.preview_appmsg .rich_media_title{margin-top:0}}

余额宝技术架构及演进

原创
2016-07-14

陈雨
高可用架构
高可用架构

高可用架构

微信号
ArchNotes

功能介绍
高可用架构公众号。


导读:余额宝开启了划时代的意义,开启了全民理财时代。上个月微博商业产品部联合天弘基金等金融技术团队策划了首届互联网金融系统沙龙,围绕在互联网金融过程中碰到技术架构问题与业界展开分享及交流。本文是陈雨在沙龙上的演讲,授权高可用架构首发。

陈雨,具有 8 年的软件研发和技术管理工作经验,专注于互联网金融、云计算、大数据等领域的发展动态和创新,目前在天弘基金负责基金注册登记系统架构和研发工作。

余额宝总结起来包括这样几个属性,第一它是一个传统的货币基金,但它把 T + 0 做到极致,另外他管理大量的用户资产。同时他具备极简的用户体验,符合互联网精神。我们在网页、支付宝 APP 或者其他途径能快速方便的进行基金申赎,它的应用渠道也非常多和广。

可以说从余额宝开始,真正的进入一个全民理财的时代,接下来给大家分享一下几个数字。余额宝用户数可以说达到了接近于 1/4 国人数量,日交易峰值可以达到两亿笔,最大并发数可以达到每秒五千笔。截止 2016 年上一季度公开披露信息,规模已经达到六千亿以上。

从余额宝的创新来说可以从两个方面去讲它,一是业务上的创新,他对 T + 0 发挥到极致,是现金管理工具,是底层帐户。还有就是嵌入式直销,把货币基金嫁接到支付宝上去。当时来讲应该是一个在行业内是具有非常大的一个开创意义的一件事情。

技术上创新是今天重点要说的事情:

  1. 基金直销和 TA 清算的整合。传统的基金系统直销和清算是分开。直销系统每天要把数据以文件形式导入清算系统里去。这件事情我们做了很大的改进,这么大体量数据来说,每天导入导出这个数据不可想象,在这里做了一个直销和 TA 融合,后面我会有一个详细的介绍。
  2. 交易的简化,监管大的框架下,满足监管要求的基础上,我们对交易逻辑做了很大的一个简化。
  3. 余额宝是核心业务在云上运行的系统。这是余额宝技术方面的创新。

架构演进历史

一期 IOE 架构

下面介绍一下一期的架构,很明显看到就是传统的 IOE 架构。底层存储是 EMC 存储。中间层就是采用小型机,其中 KCXP 和 KCBP 是金证公司的消息中间件和业务中间件。往上前端是前置解析是用的 WebLogic,负载均衡用的硬件负载均衡。

这个架构对它的定位满足需求首先是支持千万级用户,传统基金销售模式是走代销机构的方式,投资基金用户也是以理财为目的。所以每天可能处理的帐户的开户可能也就是几万到几十万的规模。由于余额宝对接是支付宝,支付宝有庞大的用户群,在用户规模上要达到千万级,这是当时对需求的定位。

第二点就是刚才提到把直销系统和 TA 清算系统做了融合,在数据库层面是共享的,避免数据再做一次导出和导入,对清算也节省了很多时间。

另外一点是传统基金的互联网化。传统基金只需要做到系统的 5 × 8 可用性,对接支付宝以后,要做 7 × 24 小时可用性。

2013 年 6 月,一期系统如期上线,业务规模远远超出我们想象。运营和运维人员反馈清算时间太长,基本上要从凌晨开始到早上八点,每天都是这样,我们感受到巨大的压力。另外当年要参加支付宝这边的双 11 活动,以当时的系统处理能力来讲,肯定是做不到的。

二期云端架构

基于这些原因,需要对一期的系统做优化,怎么优化?二期架构用一个词概括就是上云,充分利用云计算的计算能力,包括云计算对存储的处理能力。

整个架构进行了水平拆分。前面一期架构实际上就是一路的处理,到了二期把它分成多路。

从数据库层面分成多个 RDS(阿里云一款基于MySQL的关系型数据库产品)。另外一个就是去Oracle,很多利用数据库存储过程计算的部分,移到计算单元完成。

第三点是把直销和 TA 再次在计算资源层面分离。余额宝系统的数据处理,包括实时处理和批量处理。过去在一期架构的时候发现清算时,数据库负荷非常高,严重影响实时请求体验。所以在上云之后,在计算资源这块再次对它进行了分离,主要目的是提升客户体验。上云之后,当然充分利用了云计算的优势,其中很主要一个优势就是可扩展性。

水平拆分

接下来详细介绍一下是怎么来做水平拆分。

第一点如何来分,以什么维度来分?最后确定以用户维度,这样最终处理时间与用户交易的均衡程度有关。确定以用户维度进行拆分之后,确定哪些点来进行拆分,同样还是从用户角度出发,帐户、交易、份额、份额明细、份额变动等等。对于历史表直接合到仓库里去了,因为每日清算完之后,当日数据直接把它归档掉。

拆分之后,涉及到这样一个问题,TA 系统因为还要与周边的系统进行交互,交互的接口同样还是文件,数据导入需要先把文件拆成多份,再把每一份导入 TA,数据导出时系统要导出多份文件,再合并为一份。

总控

拆分最大的难点是在总控节点的处理,刚才说了 worker 节点能够保持松耦合,但仍需要通过总控节点进行统一协调,保持事务一致性。

最后数据核对阶段,也是要由总控汇总节点上的数据,按照清算规则对数据进行核对。还有很重要的收益分配部分,采用两个阶段来做,第一阶段由总控节点分配到每个节点上去。,然后在节点范围分配到用户粒度。

下图是上云前后指标上的一个对比,上云前基本上核心清算工作要做八个小时,上云之后在千秒以内可以完成。所以二期上云以后,IT 终于可以喘口气。目前来讲应对春节、双11、国庆长假等场景,系统都能稳定应对这些。


(点击图片查看大图)

这是上云前后投入产出对比情况,传统的 IOE 架构特点成本很高,硬件成本给企业带来的压力非常大,云计算的好处就是在成本上是可以做到很细的,并且方便按需增加,这是一个非常大的成本上的优势。过去投入四百万只能支持一千万的帐户的量级,现在在投入上可能只是增长一倍,支持用户数已经远远不止一倍了。

数据架构

二期架构可以满足核心交易之后,还要考虑余额宝目前这么大的数据量,怎么把这个数据用好。

近一年来很多工作都是考虑数据后处理这块。其中数据来源于业务数据、日志数据和其他数据。我们推进数据仓库的建设和数据的产出。工具方面我们有很多自主开发的,同时也采用了阿里采云间,以及其他外采工具,具体支撑业务包括生产数据分析、资金预测、数据监控、运营支持,合规风控支持等等。开篇也提到了金融系统数据安全是重中之重,所以这块我们也会有相关的数据安全方面的管理。

二期架构的问题

二期架构解决很多问题,但并不是尽善尽美,总结一下还是有几个可以提高的点:

  • 耦合。首先计算和数据的耦合还是存在的。这实际上是对系统的扩展是不利的。另外,单个计算节点上,在业务上还是存在耦合,我们很多业务上的东西还是存在拆分的可能。
  • 数据流转,我们现在数据库层面也是分布式,所以数据的抽取、同步和流转会遇到很多现实的问题。
  • 运维。在运维方面除了遇到的传统分布式系统的运维遇到的一些难题之外,我们还在业务层面的运维也会遇到一些现实问题。

未来演进思考

对系统未来演进思考,主要分这么几个方面。

  1. 从大的方面来讲是全局通盘考虑。我们要把核心和辅助系统通盘考虑,降低数据的冗余,降低数据维护成本。
  2. 数据方面要用多不同的存储来解决不同场景的需求,还有刚才提到计算和存储的彻底解耦,做到计算和存储的独立可扩展。
  3. 计算方面尽量做到业务上的拆分和轻量化,化繁为简,拆分之后把应用服务化。

数据驱动

我们系统的演进,数据量由单一小量向大量多类转变,同时应用种类从以交易为主到交易、分析和挖掘多种类并存。另外实时性要求也有变化,新的业务模式有时候要求实时或者准实时给用户呈现结果。

对业务来说对不同数据应用采用不同的存储。

  • 比如对于在线交易,可以采用经过阿里支付宝验证过的 OB,专门用于解决金融级的分布式关系数据库的解决方案;
  • 对于批量结算,可以继续沿用多年来在余额宝已经用的很娴熟的 RDS 集群。
  • 对于 2T 到 PB 级的小数仓可以用 PetaData,解决以年度为单位的数据存储。
  • 对于大规模的批量计算,数据仓库这块,我们直接就用 ODPS。
  • 对大表存储可采用 OTS。
  • 对于分析型、挖掘类需求可采用列存数据库。

服务化

关于拆分和服务化治理,后面考虑做的事情是充分利用阿里云的 PaaS 平台技术,把我们大应用拆分为简单的可横向扩展的小应用。

在服务的调用上,每个服务同时是服务提供方也是服务调用方,由 PaaS 平台的中间件统一管理服务。对我们来说是更多考虑如何基于中间件把业务来做好。服务化改造之后肯定会涉及到服务之间的调用。同步调用,可以直接走服务化的接口。

异步调用


异步调用主要靠消息中间件。金融系统对消息中间件的可靠性要求非常高,这块我们还是沿用传统思路,并不想采用开源解决方案去填那些坑,更多考虑采用成熟金融级消息中间件来做这件事情。

下面是一个总图,中间 EDAS 是统一企业级服务化解决方案,然后通过 DTS 解决数据实时同步的问题,采用 CDP 解决离线数据同步的问题。在数据应用上可以满足很多的需求,比如采集系统或者报表展示或者是用户短信的推送等等,这就是我们对整个未来的架构演进的思考。

Q&A

提问:都切到云上,数据安全上怎么考虑?

陈雨:之前讲到金融要求是私有云,我们是在阿里金融云上,并不是在公有云上,可理解为物理上是隔离的。

提问:接口交互的技术是文件,文件的完整性和一致性如何保证的?你们自己要处理它吗?为什么要用文件的方式?

陈雨:我们对接是支付宝,文件的正确性和准确性由支付宝保证。我们需要对大文件按节点数拆分成小文件,然后并行处理。接口必须用文件方式,金融行业很多系统对接最后要走文件接口,文件是用来对帐的准确性保障,实时不是那么可靠。

提问:说到计算和数据耦合,输入输出解开,具体大体上是怎么实施它?

陈雨: RDS 来是单机数据库产品,通过分布式中间件 DRDS 或其他解决方案,以实现计算节点像使用单机数据库一样使用数据库集群。

提问:咱们有基于用户纬度拆分,主要是什么原因导致我们要这么拆,基于用户纬度拆分,有没有比较坑的地方或者我们怎么避免它?

陈雨:基于用户的拆分,一方面签约协议号是跟支付宝的接口,还有一个考虑是以用户为维度的查询需求相对多。当然其他非用户纬度查询就费点事了。

提问:我是互联网金融从业者,刚才您提到我们余额宝系统,有清算系统是吧。不知道清算是有内部清算和外部清算,我们这边清算是怎么做的?比如说内部清算是指交易明细和你的帐户余额之间的比对。你外部清算可能是你本地的数据和银行数据之间的比对。

陈雨:我所说的清算是你所说的第一种。每天做一次内部比对,计算用户的份额和收益。

提问:之前也用过其他的消息中间件,你刚才提到成熟的消息中间件不是开源,我们其他从业者不能用到是吧?

陈雨:这涉及到一个生态圈的问题,如果进入阿里云的生态圈,可充分享用云计算资源。如果确实是在生态圈之外,可选择它的对应开源版本。开源版本在版本更替上或者服务方面,跟阿里云上存在一定的差别。

相关阅读

点击链接阅读相关文章

想更多了解本期互联网金融系统沙龙内容,请关注「ArchNotes」微信公众号以阅读后续文章。转载请注明来自高可用架构及包含以下二维码。

高可用架构

改变互联网的构建方式


长按二维码 关注「高可用架构」公众号

阅读

投诉

精选留言

该文章作者已设置需关注才可以留言

写留言

该文章作者已设置需关注才可以留言

写留言


加载中

以上留言由公众号筛选后显示

了解留言功能详情

微信扫一扫
关注该公众号

null

时间: 2024-08-05 19:05:31

余额宝技术架构及演进的相关文章

《余额宝技术架构及演进》读后感

今天我阅读了陈雨老师的<余额宝技术架构及演进>这篇文章,了解了关于现在比较火的理财平台余额宝的一些知识.文章链接:https://mp.weixin.qq.com/s/9ArciW8SDLk8rTUSpD1oWw 我在第一次使用余额宝时是怀着试一试的心态,总害怕余额宝里的钱突然没了怎么办,然后就在里面转了200块钱,一段时间后我发现真的是每天都有收益,我觉得比存入银行还要方便.余额宝的出现开启了全民理财的新时代. 余额宝是将基金公司的基金直销系统内置到支付宝网站中,用户将资金转入余额宝的过程中

余额宝技术架构及演进阅读心得

余额宝总结起来包括这样几个属性,第一它是一个传统的货币基金,但它把 T + 0 做到极致,另外他管理大量的用户资产.同时他具备极简的用户体验,符合互联网精神.我们在网页.支付宝 APP 或者其他途径能快速方便的进行基金申赎,它的应用渠道也非常多和广. 可以说从余额宝开始,真正的进入一个全民理财的时代,接下来给大家分享一下几个数字.余额宝用户数可以说达到了接近于 1/4 国人数量,日交易峰值可以达到两亿笔,最大并发数可以达到每秒五千笔.截止 2016 年上一季度公开披露信息,规模已经达到六千亿以上

大型网站技术架构的演进

最近我在阅读 2 本关于大型网站架构的书:<大型网站技术架构--核心原理与案例分析>李智慧.<大型网站系统与 Java 中间件实践>曾宪杰. 我期望从这些书中学习到大型网站是如何做架构的,这个过程会遇到什么问题.当看完这 2 本书后,我总结出两个大问题: 1. 网站技术架构为什么会演进?换个说法就是为什么网站会变大? 2. 演进的过程会遇到什么问题?或者说为了演进,会遇到什么问题? 网站技术架构为什么会演进 我个人总结出来我们的技术架构演进的两种驱动力,驱动着我们为什么演进网站的技

传统企业如何转型互联网?苏宁六年技术架构的演进总结

https://mp.weixin.qq.com/s/ADTO5sAli0WvMViqgVOnaA 下面两张图可能让大家有一个印象:苏宁的业务是很复杂的.2012年,第一次接触苏宁的时候,我还在IBM工作,单纯地想苏宁不就是卖电器的吗?可能直到今天,很多人还是有这个误解.实际情况当然不是,这是非常大的误解.比如苏宁有体育版块,包括江苏足球以及今天的国际米兰.苏宁的零售是全品类经营,不只卖电器,还卖其他商品.上市的公司只是苏宁云商,苏宁没有上市的置业,包括酒店.房地产等.这么多业务都需要IT总部去

【熊猫TV】《程序员》:聚光灯下的熊猫TV技术架构演进

2015年开始的百播大战,熊猫TV是其中比较特别的一员. 说熊猫TV是含着金钥匙出生的公子哥不为过.还未上线,就频频曝光,科技号,微博稿,站上风口浪尖.内测期间更是有不少淘宝店高价倒卖邀请码,光内测时用户注册数量就达几十万,火爆程度可见一斑.笔者作为写下熊猫TV第二行代码的Coder,见证了熊猫TV成立以来的风风雨雨.直播技术坑不少,本文简单揭秘熊猫TV这一年的技术架构演进,分析各个阶段面临的主要问题和应对方案,给大家做直播系统提供一定的参考. 熊猫架构 0.1- 来不及了,老司机快上车 这个阶

国内物联网平台的发展、技术架构演进暨物联网解决方案发布

本文先探讨国内物联网平台的发展和技术架构演进,再发布嵌入式企鹅圈自主研发并商用的物联网完整解决方案. 一.国内物联网平台的发展特点 1. 国内的物联网平台包括微信硬件.阿里智能.京智智能.机智云等. 2. 微信硬件依靠强大的社交和微信这个超级APP在运动和健康医疗等领域占得先机.其主要以蓝牙接入的方式为主,即近场控制场景.微信硬件提供公有物联平台,支持各个厂家和硬件平台接入. 3. 阿里智能和京东智能则是依赖其强大的电商平台,强力推动电商上的各大家电厂商接入其所在平台.两者均是在智能家电领域发力

高德客户端及引擎技术架构演进与思考

2019杭州云栖大会上,高德地图技术团队向与会者分享了包括视觉与机器智能.路线规划.场景化/精细化定位.时空数据应用.亿级流量架构演进等多个出行技术领域的热门话题.现场火爆,听众反响强烈.我们把其中的优秀演讲内容整理成文并陆续发布出来,本文为其中一篇. 阿里巴巴高级无线开发专家宋照春在高德技术专场做了题为<高德客户端及引擎技术架构演进与思考>的演讲,主要分享了高德地图客户端技术架构沿着「上漂下沉」.「模块化.Bundle化」的思路演进所做的一系列架构升级中的经验和思考. 以下为宋照春演讲内容的

JavaWeb网站技术架构

JavaWeb网站技术架构总结 题记 工作也有几多年了,无论是身边遇到的还是耳间闻到的,多多少少也积攒了自己的一些经验和思考,当然,博主并没有太多接触高大上的分布式架构实践,相对比较零碎,随时补充(附带架构装逼词汇). 俗话说的好,冰冻三尺非一日之寒,滴水穿石非一日之功,罗马也不是一天就建成的,当然对于我们开发人员来说,一个好的架构也不是一蹴而就的. 初始搭建 开始的开始,就是各种框架一搭,然后扔到Tomcat容器中跑就是了,这时候我们的文件,数据库,应用都在一个服务器上. 服务分离 随着系统的

Serverless架构的演进

Serverless架构的演进 作者:chszs,未经博主允许不得转载.经许可的转载需注明作者和博客主页:http://blog.csdn.net/chszs Serverless架构风格挑战了软件设计和软件部署基础的现状,以实现最佳开发.最优运营和最优的管理开销.虽然它继承了微服务架构MSA的基本概念,但它已被赋予了新的架构模式,尽可能实现最高效的硬件利用. 尽管Serverless架构有显著的进步,但适应这种架构需要一个周全的过程,把企业解决方案精确映射到Serverless架构上. 部署在