1.介绍

 

 经过十多年的发展,蚂蚁金服旗下的支付宝、微信、闲聊已经从一个简单的支付工具逐渐发展成为一个互联网金融平台。

 

 2013年余额宝的崛起是互联网金融平台升级的里程碑事件。今年,支付宝、微信、闲聊成功地将个人电脑部署到无线平台,可以说架构成功升级到移动互联网金融平台。

 

 经过多年的发展,口碑和社交服务的兴起使得支付宝、微信、闲聊架构能够进一步扩展其支持线下市场和社交互动的互动生活架构。随着2015年钱包9.0的发布,这个里程碑式的项目初步奠定了支付+移动互联网金融+生活互动的混合架构。架构演进图如图1所示。

 

 社交软件红包解密技术(七):支付宝、微信、闲聊红包大规模高并发技术的实践

 ▲图1:建筑演变示意图

 

 本文将为读者分析支付宝、微信、闲聊红包系统背后的技术细节。

 

 第二,分享者

 

 社交软件红包解密技术(七):支付宝、微信、闲聊红包大规模高并发技术的实践

 于新林(清选):2007年加入支付宝、微信、闲聊2012年加入无线团队。他目前是支付业务部门的首席架构师。随着支付宝、微信、闲聊的发展,它经历了从支付到金融到生活服务平台的结构性延伸,拥有丰富的超大金融互联网和超级应用架构能力。

 

 第三,一系列文章

 

 系列文章目录:

 

 

 社交软件红包解密技术(一):全面解密QQ红包的技术方案——架构、技术实现等。

 社交软件红包解密技术(二):微信解密摇号红包技术从0到1的演进

 “社交软件红包技术解密(三):微信抖红包雨背后的技术细节”

 社交软件红包技术解密(4):微信红包系统如何应对高并发

 社交软件红包解密技术(五):如何实现微信红包系统的高可用性

 社交软件红包解密技术(六)——微信红包系统存储层架构的演进实践

 社交软件红包解密技术(七):支付宝、微信、闲聊红包海量高并发技术的实践(*本文)

 社交软件红包解密技术(八):全面解密微博红包的技术方案

 社交软件红包解密技术(九):谈设计、容灾、运维、架构等。手问春节红包

 社交软件红包解密技术(十):2020年春节红包手q客户端技术实践

 

 其他相关文章:

 

 

 技术的过去:“QQ群”和“微信红包”是怎么来的?》

 QQ 18年:解密8亿个月前的QQ后台服务接口隔离技术

 "每月活动8.89亿次的超级即时通讯微信如何进行安卓兼容性测试?"

 “开源图书馆:后台框架的基石,支持微信8亿用户在一台机器上拥有数百万的连接(源代码下载)”

 "微信技术总监谈建筑:微信之路——走向简(演讲全文)"

 “微信技术总监谈建筑:微信之路——走向简(PPT讲座)[附件下载]”

 如何解读《微信技术总监谈建筑:微信之路——通向简》

 微信大用户后台系统存储架构(视频+PPT)[附件下载]

 “微信异步转型实践:8亿月度活动和单机连接背后的后台解决方案”

 "微信朋友圈海量技术PPT[附件下载]"

 “架构方式:3名程序员在微信朋友圈(有视频)中平均每天发布10亿条消息。”

 “快速裂变:见证微信强大后台架构从0到1的演变(一)”

 “快速裂变:见证微信强大后台架构从0到1 (2)的演变”

 微信“红包照片”背后的技术问题

 "微信技术共享:微信的海量即时聊天信息序列号生成实践(算法原理)"

 "微信技术共享:微信大规模即时通讯聊天信息序列号生成实践(灾难恢复计划)"

 

 

 4.项目担保体系

 

 那一年(2015年12月),当我们第一次得知支付宝、微信、闲聊赢得了央视标王时,我们既兴奋又担心!激动的是,这是一个千载难逢的机会,我们终于可以展示我们的才华了。令我们担忧的是支付宝、微信、闲聊和央视联合开展活动,这是我们历史上最大的活动。我们对规模一无所知。唯一可用的信息是,这些年来大约有7亿人在看春节晚会,每年有超过4亿的支付宝、微信、闲聊活跃用户。至于用户的行为习惯,没有参考模型。

 

 虽然我的心不是很好,但我并不担心。信心来自两个方面:

 

 

 1)经过去年双十一和除夕夜这么多年的经验,我们总结出了一套超大型活动的预测模型,该预测模型经过多次检验,相对准确;

 2)从钱包9.0开始,我们已经开始规划生活服务平台。该版本建立了社交和口碑平台的原型,从移动互联网金融架构扩展到支持生活互动架构,形成支付+互联网金融+生活互动的混合架构。该架构系统不仅支持移动互联网金融的高可用性、资金安全性和高灵活性,还支持生活交互架构的轻便性、灵活性和灵活性。架构图如图2所示。

 

 社交软件红包解密技术(七):支付宝、微信、闲聊红包大规模高并发技术的实践

 ▲图2:整体架构示意图

 

 在团队获得中标信息后,我们迅速做出决定,并达成以下指导原则:

 

 优先确保核心链接,并确保核心链接上的流畅用户体验。在系统容量不足的情况下,系统必须能够保持洪峰而不被压坏。即使在这种情况下,用户也应该得到友好的提示副本。在确保主链接的基础上,我们还需要关注支付宝、微信、闲聊应用中的数百个非关键链接。非关键链路根据其业务重要性分为四个等级,并根据等级分配不同的资源配置。

 

 

 当时,经过两个月的精心准备,在激动人心的四个小时之后,整个春晚的支付宝、微信、闲聊系统稳定地托起了四个洪峰,运行平稳,无论是核心环节还是非核心环节,都没有问题。在4小时内,几乎没有用户因为系统和功能问题而抱怨,客户服务学生也没有任何咨询压力。

 

 用户的“喘息”在第二个事件中达到高潮,互动累计次数达到1808亿次,是2015年的16倍。20: 38时,“喘息”的峰值达到177亿次/分钟。想象一下,数以亿计的用户同时拿着手机,以试图拨开手机屏幕的速度点击“嗥叫”按钮,数以亿计的请求立即从客户端涌入服务器,这将给后台带来巨大的压力!在这样高的并发性下,如果系统设计不合理或者预测模型不准确,就会被立即淘汰。一旦应用系统被冲掉,就没有机会在高压下恢复。

 

 社交软件红包解密技术(七):支付宝、微信、闲聊红包大规模高并发技术的实践

 

 5.五项准备工作

 

 为了保证整个春节晚会的顺利进行,我们做了以下五个方面的作业。

 

 1)相对合理的超大型压力预测模型。在前提约束下,服务器资源是有限的。总共有这么多服务器,要充分利用它们需要两个条件。

 

 

 应用程序架构必须能够大规模扩展。如果架构不合理,即使有服务器,也不能扩展。在架构演进的过程中,支付宝、微信、闲聊应用服务器经历了最不发达国家的单元化转型,所以扩展对我们来说很容易。

 模型应该尽可能精确。模型不准确的结果是用户的行为习惯和期望不同,导致一些企业压力大,无法正常提供服务,而其他服务器闲置,占用机器资源,无法工作。

 

 2)彻底梳理核心链路和非核心链路。梳理核心链路和非核心链路相对容易。请注意以下五点。

 

 

 接入层必须有足够的容量支持,即使有些机器因评估不准确而被浪费。一旦接入层出现故障,所有服务都将被清除。如果接入层足够健壮,当某个服务无法抵抗时,可以通过限制电流来隔离它,而其他服务不受影响。

 用户必须有访问权限。也就是说,为了确保用户能够顺利登录,如果用户甚至被限制登录,体验肯定不会好多少。

 用户应该能够玩。这是核心业务逻辑。如果你不能咻,或者半天后不能寄出红包,那将是致命的。

 确保用户可以传播和互动,包括分享、添加朋友和聊天。

 非核心业务需要合理分类。我们大致分为四档。必须保证非核心链路中最高优先级的前四个标签。二档一级入口的容量必须是通常容量的几倍。二年级第三个入口的容量是平时的十倍多。第四档,第一、第二和第三档以外的其他业务,必须确保系统具有自我保护的能力,底线是它不能被淹没。

 

 3)批量生产系统的全环节压力测试。核心链接和非核心链接被清楚地分类。经过性能优化和系统扩展后,能否达到预测目标值,取决于在线全链路压力测试验证。全环节压力测试的相应原则:核心环节必须完全覆盖,包括独立压力测试和混合压力测试,非核心环节应尽可能覆盖。通过项目组的努力,整个环节压力测试基本覆盖了所有核心环节和非核心环节,覆盖率接近100%。单一系统或界面压力测试不是大问题,但混合压力测试是一个令人头痛的问题,这主要是用户行为预测的问题。为了确保万无一失,在混合压力测试过程中结合多种模型进行压力测试,尽可能暴露系统性能和容量问题。

 

 4)高频亚灰度内部测量和在线小规模活动预热(2月1日和2月4日两次小规模活动)。高频内部灰度测试可以暴露一些隐藏的功能问题,进行充分的业务配置演练。这两次小规模热身发挥了更大的作用。虽然规模不如春节晚会大,但用户的行为习惯有一定的参考价值,能够比较真实地模拟春节晚会活动。我们确实在这两次热身活动中发现了一些问题,并根据相对真实的用户行为习惯对系统容量进行了调整和优化,有效地防止了春晚资源分配的不均衡。

 

 5)数以千计的业务和技术计划以及完整的应急响应系统支持。业务主要是参数化和配置的,客户端的行为由服务器控制,以满足业务多样性的需求,减少客户端版本升级困难带来的影响。从技术上讲,该计划分为提前计划和应急计划。预先计划的主要功能是让服务器轻松投入战斗,并节省核心功能的计算能力,如降级日志和关闭计划任务。应急计划主要用于拯救生命。如果系统在某些时候出现意外情况,一些非核心业务将被牺牲掉,通过所谓的大动作来保护核心业务,即在汽车丢失时保护它。当然,因为前期工作做得很好,这些大动作都藏在闺房里,没有机会展示。

 

 社交软件红包解密技术(七):支付宝、微信、闲聊红包大规模高并发技术实践

 

 6.八个技术难点

 

 在这种超大规模的活动中,一定有许多技术上的困难,而在超大规模的情况下,一个通常被忽视的问题可能会被放大。接下来,简要总结了这些技术难点。

 

 1)登录:去年除夕,我们的登录能力不足,导致用户登录时被关在门外。在这个春节晚会上,我们制定了一个硬性规定,我们必须能够顺利登录,我们不能允许由于登录系统处理能力不足而造成的限流的不良体验。去年的着陆峰值约为每秒10万次。今年,我们提出要实现百万美元的着陆容量,大约是去年除夕高峰的200倍和6到7倍。然而,我们的用户数量只增加了2到3倍。在百万美元的水平上应该没有问题,但事实上,着陆能力也在这个数量级。

 

 目标确定后,很难实现该系统容量目标。性能优化和容量扩展都很重要,并且更多地取决于性能优化。作为一名有抱负的工程师,扩容不应该是第一选择。经过一个月左右的极端性能优化,机器的容量只有原来的4倍,大约几千台,所有其他改进都是通过性能优化实现的。

 

 2)如何应对洪峰(图3是一个简单的架构图):可以想象,数亿用户同时在线,他们几乎同时尖叫,当二阶洪峰达到2.95亿次时,瞬时洪水直接涌入。对于如此大的流量,我们采用漏斗形导流和导流方案。在客户请求我们的网络设备后,我们可以从应用的角度将它大致分为三层:LVS、扳手和网关。这里你可以把它想象成一个漏斗。你越深入,你能处理的请求就越少。这种设计的原因仍然基于业务和用户体验。尽管有2.95亿次“嗖嗖”的请求,奖品的数量是有限的,每场比赛只有6000万个现金红包和数亿张弗卡卡片。如果获奖能力达到每秒6000万次,那么6000万个现金红包将在几秒钟内被立即消费掉,这不是企业和用户所希望看到的。平衡后,我们将分发奖品(现金红包+弗卡)的能力设置为每秒100万个,我们可以在几分钟内成功分发这6000万个现金红包。

 

 这里有几个要点。网关的处理能力是几千万,大约100万用于集中呼叫,剩下的900万用于其他业务。当大量how没有到达网关时,LV和扳手应该能够正确地处理它们,并且给用户一个更好的体验,而没有任何电流限制问题,这也符合用户不会获奖的期望。我们的解决方案是随机显示彩蛋(包括文案、图片、视频等。)发送给用户。尽管扳手在网络的外层,它也需要理解一些业务逻辑。例如,能够识别不同的rpc请求,特别是能够区分howls接口。如果扳手不做任何标识,只要转发1000万个请求到网关,这肯定会导致超过100万个请求被转发,并占用其他服务的配额,导致其他服务被扳手限制,无法正常处理。

 

 社交软件红包解密技术(七):支付宝、微信、闲聊红包大规模高并发技术的实践

 ▲图3:网络漏斗模型示意图

 

 3)活动奖控制系统:春节晚会期间举办了四场活动,发放了约2.3亿现金红包和10多亿张弗卡卡。在如此大规模的活动下,我们实现了零失误、零损失,没有或多或少发红包,严格控制了弗卡的发行比例,合理控制了颁奖速度。这四项活动基本控制在3-5分钟内完成,并严格按照我们设定的预期模式实施。所有这些都得益于我们的奖金控制系统。这个系统的设计有三个基本原则。

 

 

 1)零资本损失。

 2)百万级奖金处理能力。

 3)灵活的奖励分配控制。

 

 4)动态技术:客户端最大的问题之一是版本发布。有一个成语叫“桥下之水”,生动地说明了这个问题。一旦版本发布,如果有任何问题,用户需要再次升级,时间不多了。

 

 为了更好地控制客户端的行为,参数化和配置已经成为必要的工具。但是参数化和配置带来了两个问题:

 

 

 1)客户端嵌入了大量的逻辑,这大大增加了代码的复杂性,使得在客户端测试代码更加困难,也使得质量难以保证。;

 2)由于参数化和配置,需要一种机制来确保配置数据能够尽可能实时地分发到数亿个客户端,并在最短的时间内生效。

 

 对于增加客户端复杂性的问题,主要通过多种机制来保证:

 

 

 1)传统质量保证,加强检测;

 2)不同范围的人的灰度。;

 3)安排多轮演练来模拟各种配置场景。;

 4)为了确保春节晚会万无一失,几年前增加了几个小规模的预热环节,通过预热发现了尽可能多的问题并加以避免;

 5)在最终版本发布后,必须修复一些错误,并且必须在不发布版本的情况下通过热补丁来修复这些错误。

 

 对于配置的实时分发,我们独立制定了一套机制,并采用推拉结合的方式在最短的时间内分发配置信息。服务器端推送是主要方法。通过同步机制,只要用户在线,配置数据就可以尽可能多地推送到客户端。在一些配置推送失败的情况下,可以通过拉动进行补偿,从而确保配置数据可以分发到客户端。

 

 5)资源管理:这个春节晚会涉及到很多资源,包括图片、新年视频等。图片和视频相对较大,从12个字节到几百个字节不等。在高峰时段,如果有大量的请求同时发送到CDN,那么如此大的请求带宽根本无法得到支持。当时,我们估计带宽需求约为几吨..

 

 为了有效地承受CDN上瞬时峰值的压力,我们对资源进行了有效的管理和控制。首先,客户机中嵌入了几个默认资源,可以在出现故障时使用。其次,尽早打开门户,用户浏览后在本地下载资源。再次浏览时,无需远程访问CDN。最后,制定了应急预案,一旦在高峰时段发现交通报警,就立即将视频切换到图片,以减轻带宽压力,确保不会出现带宽不足导致黑屏等不良体验的问题。

 

 最终的结果可以说是完美的。由于预热充分,带宽非常高,但没有达到我们的报警值,也没有使用应急计划。

 

 6)实时数据计算能力:尽可能准确地实时显示剩余的数据包数量。这是一个细节。当你尖叫的时候,剩余的红包数量会随着你而减少,并且减少的数量相对平稳。与一些应用程序不同,它不会移动很长时间,移动一次就像悬崖一样。虽然这是一个不起眼的细节,但我们解决了这个技术问题是为了给用户一个更好的体验,这样没有抓取红包的用户可以在最短的时间内知道最准确的剩余红包数量。

 

 我们在两个方面充分利用了我们的能力。一个是实时流计算处理能力,它可以在几秒钟内收集每台服务器处理的红色数据包数量,执行汇总计算,并将计算结果写入缓存。另一方面,我们充分利用每个请求头的控制信息,并在用户每次请求时带回剩余的号码。收到响应后,如果客户端发现该请求没有获奖,它会分析来自头控制信息的剩余红色数据包数量并正确显示。

 

 7)全链接压力测试:支付宝、微信、闲聊有一个非常强大的在线环境压力测试工具,可以模拟任何你想要的请求场景。对于涉及大量用户的活动,无论前期准备多么充分,都不能有任何问题,因此有必要对在线环境进行性能压力测试。在全链路压力测量机制下,您不仅可以了解每个应用系统的容量水平与目标之间的差距,还可以了解整个基础设施层的瓶颈,如数据库、网络和存储,以便根据压力测量数据做出快速决策。

 

 社交软件红包解密技术(七):支付宝、微信、闲聊红包大规模高并发技术实践

 

 8)超大型活动的灵活计算能力:根据初步计算,这种大型活动需要数万台机器,包括应用服务器、存储和网络设备。对于如此大量的资源分配,如果没有金融云的高度灵活性,在短时间内就可以部署是不可想象的。由于金融云的高度灵活性,我们基本上在一周内完成了相关资源的部署。

 

 社交软件红包解密技术(七):支付宝、微信、闲聊红包大规模高并发技术的实践

 

 7.本文摘要

 

 我们从春节联欢晚会中获益良多,其中最重要的是我们对用户在春节联欢晚会中的行为有了初步的了解。如果我们从事这种超大规模的活动,预测模型会更加准确。如果我们继续赢得明年央视春晚的主办权,我们将会更从容、更顺利地举办春晚,用咖啡真正享受春晚!

 

 

----------------------------------------------------------------------------------

哇谷im_im即时通讯_私有云_公有云-哇谷云科技官网-JM沟通

IM下载体验 - 哇谷IM-企业云办公IM即时聊天社交系统-JM 沟通下载

IM功能与价格 - 哇谷IM-提供即时通讯IM开发-APP搭建私有化-公有云-私有化云-海外云搭建

新闻动态 - 哇谷IM-即时通讯热门动态博客聊天JM沟通APP

哇谷IM-JM沟通热门动态博客短视频娱乐生活

关于哇谷-哇谷IM-提供企业即时通讯IM开发-语音通话-APP搭建私有化-公有云-私有化云-海外云搭建

联系我们 - 哇谷IM-即时通讯IM私有化搭建提供接口与SDK及哇谷云服务

即时通讯IM融云世界

IM即时通讯钉钉技术:企业IM钉钉在后端架构上的优越之处

新的市场叫板环信、融云、腾讯云!开源版IM即使聊天工具

企业IM即时通讯聊天办公APP钉钉技术分析交流

哇谷云-怎么样正确认识海外云服务器

公有云和私有云之间有什么区别?类似融云、环信云、网易云、哇谷云?