作者:MacTalk

以前过年发红包,是纸包的,而且只发给还没工作的晚辈就好了。自从有了移动支付,事情慢慢变得复杂起来。如果你在负责一个部门,过年要给部门员工发红包。如果你在运营一个公司,你得给公司员工发红包。给娃发了个纸红包,她还会和你要移动红包。所以呢,很多人过年在抢红包,我基本上是在发红包,以至于每年各大互联网公司的红包战事,我都少有参与。

不过支付宝的五福红包我每年都参与,倒不是我折腾,每次都被家人抢过手机,凑齐五福,到点提醒我,开。于是得了一块多。我说为啥要这么做呢,毕竟发出去的比这多好几千倍。家人说,过年啦,图个吉祥热闹呗。

基于这个考虑,我估计全国有很多人会使用支付宝红包。正好阿里发布了相关的内容,我们这次可以聊聊支付宝红包背后的故事。

2019 年新春是支付宝五福红包活动第四次与全国人民见面。果不其然,参加的人数超过了 4.5 亿。可以说,三分之一的中国人都是这么想的,当年的移动支付,也是这么拉开帷幕的。

中国人过年,图的就是顺遂、圆满、喜庆。红包的意义不仅在于钱,更是年味的体现,支付宝的红包更多象征了祝福、好运等意味,正是因此,这一活动对于用户体验的要求非常苛刻:扫福、赠福、沾福……福气需要手到擒来,对应到系统,响应必须要如丝般顺滑;活动结束后开奖,红包金额越快到账越好,因为喜悦不容等待啊。同时,用户之间的互动功能也需要充分保障,毕竟中国人的年是团圆的年,是人与人之间相互连接、分享祝福的节日。

要在数亿用户的规模上实现这样的用户体验绝非易事。4.5 亿人每点击一次屏幕,海量的数据都会汇聚成潮水涌入系统。如何保证系统「不卡、不错、不宕机」,让每一个用户都能开开心心拿红包呢?

为了达到这样的效果,蚂蚁金服的各个技术团队合力搭建起完整的链路,共同守护互联网时代的新年味。

「快」的秘密:Geabase 图数据库和数据智能算法

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

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

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

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

「关系型数据库里缺乏关系。」蚂蚁金服技术专家浩壹引用《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%,其背后的技术挑战也更加复杂。

技术人从业一生,能够参与这种规模的线上活动,可以说是人生大考,也是至尊荣耀。

免费Java资料领取,涵盖了Java、Redis、MongoDB、MySQL、Zookeeper、Spring Cloud、Dubbo/Kafka、Hadoop、Hbase、Flink等高并发分布式、大数据、机器学习等技术。

传送门:https://mp.weixin.qq.com/s/JzddfH-7yNudmkjT0IRL8Q

支付宝首次揭秘红包技术相关推荐

  1. 支付宝、微博牛人专家来袭!详解春节红包技术(全程直播)

    2月23日下午,云栖社区将迎来2017首届在线技术峰会--"揭秘红包背后的技术".支付宝红包技术团队.微博红包技术团队.阿里云技术团队等9位一线实战派深度分享最佳技术实践经验. 较 ...

  2. 支付宝17年新春红包技术体系剖析

    017年支付宝五福红包红包开奖人数是167966715人(约1.68亿):除夕当天的参与人数是2.2亿:在业务峰值上,活页主页面峰值达到81W/s:扫福的峰值为22W/s:除夕当天的登录峰值为29W/ ...

  3. 独家!支付宝首次披露其小程序技术架构

    独家!支付宝首次披露其小程序技术架构 在轻应用混战的当下,小程序已经成为巨头们角逐的焦点,阿里自然也不甘落后.据阿里官方的数据,截止到今年 1 月 28 日为止,支付宝小程序应用数已经达到 12 万, ...

  4. 支付宝(AR虚拟现实)红包玩法与技术背景 - GIS(LBS)、图像识别与秒杀技术的完美结合...

    2019独角兽企业重金招聘Python工程师标准>>> 背景 作为搞IT的小伙伴们,对虚拟现实(AR)应该并不陌生,这次支付宝带来了一个很有趣的功能,虚拟现实与藏红包结合起来. 简单 ...

  5. 支付宝AR实景红包上线不久即遭破解,官方已提高技术门槛

    临近春节,阿里巴巴和腾讯的红包大战可谓下足功夫,上周支付宝推出了AR实景红包,该玩法基于"LBS+AR+红包"的方式,类似与今年火爆全球的AR手游Pekomon Go ,只不过这次 ...

  6. 揭秘支付宝扫福识别技术的奇妙

    揭秘支付宝扫福识别技术的奇妙 一个从事技术的人,本对扫福这类无聊的事并无兴趣,加上听说去年的敬业福让人无比敬畏,更加坚定这样的行为只是商业炒作,欺骗大众而已. 无赖朋友之托帮忙集福,打开百度搜出福字图 ...

  7. 全面解密QQ红包技术方案:架构、技术实现、移动端优化、创新玩法等

    本文来自腾讯QQ技术团队工程师许灵锋.周海发的技术分享. 一.引言 自 2015 年春节以来,QQ 春节红包经历了企业红包(2015 年).刷一刷红包(2016 年)和 AR 红包(2017 年)几个 ...

  8. 全面解密QQ红包技术方案:架构、技术实现、移动端优化、创新玩法等...

    本文来自腾讯QQ技术团队工程师许灵锋.周海发的技术分享. 一.引言 自 2015 年春节以来,QQ 春节红包经历了企业红包(2015 年).刷一刷红包(2016 年)和 AR 红包(2017 年)几个 ...

  9. 90 后首次成红包主力军;库克发拜年视频;小扎发文庆 Facebook 15周岁 | 极客头条...

    「CSDN 极客头条」,是从 CSDN 网站延伸至官方微信公众号的特别栏目,专注于一天业界事报道.风里雨里,我们将每天为朋友们,播报最新鲜有料的新闻资讯,让所有技术人,时刻紧跟业界潮流. 快讯速知 微 ...

  10. 大咖分享会 | 百度首次揭秘如何构建用户画像与移动统计

    从11年开始,互联网进入大数据时代,相比传统的调查分析,大数据是企业通过互联网便利的获取用户更广泛的反馈信息,为进一步精准.快速地分析用户行为习惯.消费习惯等重要商业信息,提供了足够的数据基础.本次P ...

最新文章

  1. python试题for循环布尔值_Python自我修炼(升仙中....整数,布尔值,字符串,for循环)
  2. php7 魔术引号,PHP魔术引号所带来的安全问题分析
  3. Java 中 == 和equals()方法的不同点
  4. Fiddler抓包一键生成代码
  5. strlen 计算给定字符串的长度
  6. unity 创建中文自定义字体
  7. 鸿蒙开发板Hi3861_驱动0.95_oled显示屏ssd1306_code-2.0-CANARY_双显示屏效果
  8. 如何成为一名机器学习算法工程师
  9. linux如何开启root权限控制,Linux下的Root权限控制
  10. 【密码学】云的MD5破解
  11. 2012 款斯柯达明锐车行驶中发动机偶尔自动熄火
  12. android模拟量输入引脚,plc模拟量输入接线方法
  13. 运维体系框架标准化模型简介
  14. 怎样判断一个P2P平台是否靠谱?
  15. 虚拟内存(操作系统)
  16. IOS开发之蘑菇街框架
  17. Android获取网络视频文件缩略图
  18. 魔术师发牌java_魔术师发牌问题和拉丁布方阵
  19. 大数据和云计算技术周报(第182期)
  20. 【Java学习路线之JavaWeb】JSP教程

热门文章

  1. 计算机屏幕的显示分辨率与什么有关,事实:显示器屏幕尺寸和分辨率之间是什么关系?...
  2. java设置隐式事务_隐式事务 - -Timothy- - 博客园
  3. 计算机中桌面中不显示U盘图标,电脑不显示u盘怎么回事 电脑不显示u盘的解决办法...
  4. k8s 1.23.1部署gitlab、 gitlab-runn配置k8s集群编写.gitlab-ci.yml实现根据tag,分支发布CICD流程
  5. 澳门科技大学计算机专业研究生,澳门科技大学 计算机专业
  6. STM32L151缓慢上断电-电源控制模块的使用(PVD、BOR、POR/PDR)
  7. php time()的用法,PHP timezone_name_from_abbr() 函数用法及示例
  8. Windows 制作免安装的JAVA环境
  9. 如何让TCP重传如丝般柔滑
  10. 机器人在课堂上所表达的新科技发展观