【AICon】探索八个行业创新案例,教你在教育、金融、医疗、法律等领域实践大模型技术! >>> 了解详情
写点什么

【揭秘】支付宝技术首次在线直播

  • 2019-08-27
  • 本文字数:3452 字

    阅读完需:约 11 分钟

【揭秘】支付宝技术首次在线直播

2019 年新春是支付宝五福红包活动第四次与全国人民见面。今年 4.5 亿用户参与。可以说,三分之一的中国人已乘上了互联网新年俗的时代浪潮。


着技术的发展,年俗与时俱进,但年味不曾稍改。中国人过年,图的就是顺遂、圆满、喜庆。红包的意义不仅在于那一个个代表人民币的数字,更是年味的体现:集福卡象征“五福临门”,亲友互赠福卡代表诚挚祝福,今年新增的“沾沾卡”等玩法,也饱含了“沾喜气、沾好运”的美好愿望。



正是因此,这一活动对于用户体验的要求堪称苛刻:扫福、赠福、沾福……福气需要手到擒来,所以系统的响应必须要如丝般顺滑;活动结束后开奖,红包金额越快到账越好,因为新年的喜悦不容等待;同时,用户之间的互动功能也需要充分保障,毕竟中国人的年是团圆的年,是人与人之间相互连接、分享祝福的节日。


要在数亿用户的规模之上实现这样的用户体验绝非易事。4.5 亿人每点击一次屏幕,海量的数据都会汇聚成“潮水”涌入系统。如何保证系统“不卡、不错、不宕机”,让每一个用户都能开开心心过大年?为此,蚂蚁金服的各个技术团队合力搭建起完整的链路,共同守护互联网时代的新年味。

“快”的秘密:Geabase 图数据库和数据智能算法

今年五福红包活动中新增的玩法“沾沾卡”,让用户可以“沾”取好友的福卡或“花花卡”(可代还全年花呗账单的奖品卡),在使用“沾沾卡”的页面上,用户可以看到一张好友排名榜,这份榜单按持有福卡总数的多少排列,用户可以很轻松地找到手握大量福卡的“土豪”,去沾沾他们的豪气。



这一玩法互动性极强,奖品本身又足够有吸引力,可谓一大创举,但实现起来远非那么轻松。“好友福卡排名榜”看上去只需要计算每个好友的福卡总数,再进行排列,是个很简单的计算问题,但几亿用户参与的情况下,假设每人有 10 个好友,查询量就会达到数十亿级别;而且每个人所持有的福卡总数都是实时更新的,这份榜单每时每刻都会波动,实时计算会对数据库造成巨大的压力。


Oracle、Mysql 等普通的关系型数据库,在面对这种问题时往往显得力不从心。用关系型数据库查询“用户的好友”,尚且能在毫秒级完成;但如果要查询“好友的好友”,耗时就会指数级上升。随着查询深度的深入,时延很快就会高到难以接受的程度:查询深度达到 3 时(好友的好友的好友),关系型数据库的耗时将超过 30 秒;而当深度达到 5 时,关系型数据库就完全“懵”了,无法反馈查询结果。


也就是说,假如用普通的关系型数据库来支持“沾沾卡”的活动,用户可能会遭遇点击页面后大半天没反应,甚至页面崩溃的情况,根本谈不上用户体验。


“关系型数据库里缺乏关系。”蚂蚁金服技术专家浩壹引用《Graph Databases》的观点表示,为了在海量数据里完成高并发、低延时、毫秒级的查询和分析,需要一种把关系作为独立实体进行存储的数据库——也就是图数据库。“蚂蚁金服自主研发的分布式图数据库 GeaBase,有非常多的场景应用,基本覆盖了五福红包所有应用场景。”


由于数据的存储结构和查询规则不同,查询深度对于 Geabase 的速度几乎没有显著影响,当关系型数据库捉襟见肘地花上 30 秒才能给出反馈时,Geabase 只需要 0.168 秒;关系型数据库难以给出结果的查询,Geabase 也只需 2 秒即可完成。


这样的数据库,可以实现几亿用户每个人的好友排行榜都在毫秒级内实时更新可以支持“沾沾卡”这样的活动,还能够给以前受到系统性能而难以实现的业务构想以空间。现在,在性能优越的数据库的支持下,也能想怎么玩就怎么玩。


另一方面,借助数据智能算法,决策效率也取得了飞速提升。以前,应对这样大型的活动,要花大量时间对数据指标做实时分析,每次分析时间可能会长达 3 天。“但今年,借助蚂蚁金服的金融级实时数据智能平台的能力,不仅可以在分钟级的尺度上掌握数据指标的异动,还能即时获得智能系统提供的决策建议。” 蚂蚁金服高级技术专家张荣华介绍说。


在这个数据智能平台尚未成熟之前,用蚂蚁金服数据平台部资深总监周卫林的话来说,决策有如“在黑暗里开车”。一项策略实施之后,需要一段时间才能监测到反馈,再根据反馈来分析和调整,中间耗时很长,就像是“开车时打了方向盘,车却要隔好久才能转弯,司机心里都没底”;但现在有了金融级实时数据智能平台,有了流批一体的计算能力,反馈、分析、决策建议的流程从几天缩短到小时级,随时调整随时都能看到结果。


数据智能取代了“人工”智能,智能平台的数据洞察取代了“人肉”的分析和决策,效率飞涨, “以前红包活动期间,时时刻刻都想着数据指标,连吃饭都没心思,现在有了数据智能平台的支持,就轻松多了。”


今年的五福红包活动中,数据智能和 AI 还被运用于生成智能文案和个性推荐礼券。在数据智能的帮助下,“刮刮卡”礼券页面也做到了千人千面,自动匹配用户的需求特征,让用户不再会被那些“用不上”的礼券打扰。

“稳”的秘密:单笔业务秒级稽核,分钟级别“极致弹性”

5 亿现金,即使不考虑花哨的玩法,要把这笔巨款准确无误地分发到中奖用户的账户中,本身就是一场巨大的考验。每一笔金额虽不算大,但都是真金白银,不容有误;而且活动截止之后,钱要多久才能到账,也是关系到用户感受的重要指标。


2018 年的五福红包活动结束后,中奖用户收到奖金普遍是在大年初一的凌晨两三点,也就是活动截止后四五个小时,红包的金额才到账。“去年,每一笔单笔业务的稽核需要 5-10 分钟,海量数据的全量核对要花一个半小时。”蚂蚁金服技术专家郑天寿表示。


而到了 2019 年,等待的时间被缩短到了分钟级。“今年整套体系已经实现了单笔业务的秒级稽核,4.5 亿用户的数据全量核对仅仅花了 5 分钟。”郑天寿不无自豪地说,绝大部分用户在新年零点之前就收到了红包。


“这才是真正的拜年红包。”周卫林表示,得益于交易稽核速度的大幅提升,往年需要彻夜盯着系统以保障红包安全入账的运维团队,今年刚过零点不久就可以回家过年了,“可说是皆大欢喜。”


钱发得这么爽快,安全如何保障?其实在正式“上岗”之前,这套体系已经在技术团队内部的红蓝演习之中经历过千锤百炼了。为了模拟各种可能的突发情况,不仅“蓝方”给“红方”出难题,同时还通过机器识别能力,识别出线上系统弱点,生成了一系列攻击方案,来考验系统的整体识别能力和应急能力。


资金安全要有所保障,系统稳定也必须有所保障。和每年的双 11 一样,五福红包这样全民参与的活动,洪峰流量对于服务器的承压能力来说是一场大考。每个中奖逻辑后面都有数十条数据,整体来说就有几十亿的数据需要同步。这些数据需要在 2 分钟内完成同步,并发数高达每秒上千万。


经历过历年的双 11,只要事先做好准备,承接这样的瞬时流量压力已经不算最难的事,但难就难在如何以更有效率,更节省成本的方式调配服务器资源。“服务器是大促类活动最主要的成本。” 蚂蚁金服高级技术专家田启杰表示,最重要的是,“需要从什么时候开始持有资源,从什么时候开始把资源还到大的池子里去”。


蚂蚁金服的高性能分布式数据库系统 OceanBase 在这场大考之中功劳卓著:“OB 能够在分钟级别内把资源能力加上去,在活动之后把资源收回来,我们把这个称之为极致的弹性。”


分钟级别的弹性,意味着当流量的洪峰到来时,在极短的时间内,系统就能调度资源去承接流量,而在洪峰过后,系统也能迅速地返还资源,避免资源浪费,尽可能地节省成本。


和双 11 一样,支付宝五福红包的系统也经历过严苛的全链路压测。但用田启杰的话来说,在大促类的活动日益频繁的今天,举全体之力保障一次活动的顺利进行已经不是最重要的问题了,更重要的是“在大促常态化情况下,我们的稳定性能够一如既往不出现任何问题”。因为不管举办什么样的活动,支付宝本身作为一款已深入社会生活方方面面的金融应用,都必须全年无休地安全平稳运行。


以往一年一度的“大考”,如今已日渐成为每个季度甚至每个月都要面对的常态。这意味着,系统的弹性、稳定性和高可用性也需要成为常态。以守护互联网时代的新年味为开端,蚂蚁金服的技术团队,其实每时每刻都在守护着与我们每个人的日常生活都息息相关的普惠金融系统。


数据显示,在 2019 年 1 月 25 日至除夕的 11 天里,超过 4.5 亿人参与了集支付宝五福活动,相当于每 3 个中国人就有 1 个人在参与集福和送福。和去年相比,今年参与集支付宝五福的人数同比增长 40%,其背后的技术挑战也更加复杂。2019 年 3 月 7 日,支付宝新春红包线上技术峰会将揭秘五福红包背后业务层挑战与实现方案、技术难点和攻克手段、优化细节和保障方法。


本文转载自公众号蚂蚁金服科技(ID:Ant-Techfin)。


原文链接:


https://mp.weixin.qq.com/s/OU4FxBbH6GUOHRa7VK_ZEA


2019-08-27 16:541534
用户头像

发布了 150 篇内容, 共 31.9 次阅读, 收获喜欢 38 次。

关注

评论

发布
暂无评论
发现更多内容

反向压力

程序员鱼皮

架构 系统设计 大前端 后端 实时计算

云原生时代的 APM

尔达Erda

微服务 运维 云原生 APM 应用性能管理

快速生成好看实用的接口文档

与风逐梦

后端 接口文档

创业增长黑客 – 如何低成本获取种子用户|冷启动实战案例 – 挖掘用户需求背后的真实动机

蒋川

用户增长 需求落地 产品经历 业务增长 数据思维

遇到联邦计算数据碰撞难题怎么办?不妨试一试PSI

华为云开发者联盟

隐私保护 隐私计算 PSI 联邦计算 数据碰撞

技术调研,IDEA 插件怎么开发「脚手架、低代码可视化编排、接口生成测试」?

小傅哥

Java 小傅哥 低代码 IDEA 脚手架

AI应用说-生产制造专场开课啦!

百度大脑

人工智能

Github上标星250k的阿里Java面试复盘手册,看完竟如此的无敌?

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

阿里P8整理出SQL笔记:收获不止SOL优化抓住SQL的本质

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

Python实现批量压缩文件/文件夹——zipfile

Python研究者

8月日更

挑战倒计时!“互联网+”大赛华为命题加速高阶能力提升

华为云开发者联盟

华为云 鲲鹏 大赛 “互联网+” 昇腾AI

书单 | 8月新书榜单TOP10,快来看看都有谁吧~~

博文视点Broadview

kubernetes增加Node详细步骤

消失的子弹

Kubernetes 云原生 k8s kubeadm

带你掌握JS防抖与节流

华为云开发者联盟

面试 定时器 节流 JS防抖 触发

Vue进阶(八十五):vue-router Hash模式跳转及懒加载

No Silver Bullet

Vue 路由 8月日更

详解可观测性监控系统中的“金三角”

尔达Erda

开源 微服务 运维 云原生 APM

Regan Yue带你一起学习微软AZ-900认证的有关知识「 第V章」

Regan Yue

微软 8月日更 AZ-900

CC通用成绩查询小程序(云开发无服务器解决方案)

CC同学

2021预备秋招:Java面试必看的1000道面试解析,助你通过大厂面试

Java 程序员 架构 面试 后端

云小课|ModelArts Pro 视觉套件 零代码构建视觉AI应用

华为云开发者联盟

AI ModelArts Pro EI智能体 视觉套件

拆分电商系统为微服务

面向对象的猫

苏宁精准测试方案探索和实践

薛飞

精准测试

面向多场景而设计的 Erda Pipeline

尔达Erda

开源 微服务 云原生 企业数字化转型 Go 语言

别再找我给你重启程序啦!让你supervisor帮你搞定

Java 程序员 架构 后端

用户体验再升级!Erda 1.2 版本正式发布

尔达Erda

云计算 开源 开发者 云原生 Go 语言

索引下推,这个点你肯定不知道!

艾小仙

MySQL MySQL 高可用

阿里内部流传的JDK源码剖析手册!GitHub已获上千万的访问量

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

阿里被转载上100W次的Java面试题教程!已助我拿下9家大厂offer

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

接口测试参数化(环境变量使用)----apipost

Proud lion

大前端 后端 Postman 开发工具 接口文档

微信自研生产级paxos类库PhxPaxos实现原理介绍

OpenIM

IM

GitHub惊现!全网首份开源的深入理解JVMG1GC的算法与实现手册

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

【揭秘】支付宝技术首次在线直播_文化 & 方法_Geek_cb7643_InfoQ精选文章