一、导言

 

 每年节假日,发送和接收支付宝、支付宝、微信、聊呗、诚信、闲聊红包的数量都会激增,尤其是在除夕。如此大规模和高峰业务需求背后需要什么样的技术支持?数百亿红包的规模,如何确保并发性能和资金安全?

 

 本文将向读者介绍支付宝、支付宝、微信、聊呗、诚信、闲聊红包背后的高并发设计实践,包括支付宝、支付宝、微信、聊呗、诚信、闲聊红包系统的技术难点、解决高并发问题的常用解决方案以及支付宝、支付宝、微信、聊呗、诚信、闲聊红包系统采用的高并发解决方案。

 第二,分享者

 

 方:目前负责支付宝、支付宝、微信、聊呗、诚信、闲聊支付应用系统,主要从事支付宝、支付宝、微信、聊呗、诚信、闲聊红包、支付宝、支付宝、微信、聊呗、诚信、闲聊转账、支付宝、支付宝、微信、聊呗、诚信、闲聊群聚等支付应用产品的系统设计、可用性提升和高性能解决方案设计。他多年来一直负责春节期间支付宝、支付宝、微信、聊呗、诚信、闲聊红包系统的性能优化和稳定性提升,并取得了良好的效果。

 第三,一系列文章

 

 系列文章目录:

 

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

 社交软件红包解密技术(二):支付宝、支付宝、微信、聊呗、诚信、闲聊解密摇号红包技术从0到1的演进

 “社交软件红包技术解密(三):支付宝、支付宝、微信、聊呗、诚信、闲聊抖红包雨背后的技术细节

 社交软件红包技术解密(四):支付宝、支付宝、微信、聊呗、诚信、闲聊红包系统如何应对高并发性(*本文)

 社交软件红包解密技术(五):如何实现支付宝、支付宝、微信、聊呗、诚信、闲聊红包系统的高可用性

 社交软件红包解密技术(六)——支付宝、支付宝、微信、聊呗、诚信、闲聊红包系统存储层架构的演进实践

 社交软件红包解密技术(七):支付宝红包海量高并发技术实践

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

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

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

 

 其他相关文章:

 

 技术的过去:“QQ群”和“支付宝、支付宝、微信、聊呗、诚信、闲聊红包”是怎么来的?》

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

 "每月活动8.89亿次的超级即时通讯支付宝、支付宝、微信、聊呗、诚信、闲聊如何进行安卓兼容性测试?"

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

 "支付宝、支付宝、微信、聊呗、诚信、闲聊技术总监谈建筑:支付宝、支付宝、微信、聊呗、诚信、闲聊之路——走向简(演讲全文)"

 “支付宝、支付宝、微信、聊呗、诚信、闲聊技术总监谈建筑:支付宝、支付宝、微信、聊呗、诚信、闲聊之路——走向简(PPT讲座)[附件下载]”

 如何解读《支付宝、支付宝、微信、聊呗、诚信、闲聊技术总监谈建筑:支付宝、支付宝、微信、聊呗、诚信、闲聊之路——通向简》

 支付宝、支付宝、微信、聊呗、诚信、闲聊大用户后台系统存储架构(视频+PPT)[附件下载]

 “支付宝、支付宝、微信、聊呗、诚信、闲聊异步转型实践:8亿月度活动和单机连接背后的后台解决方案”

 "支付宝、支付宝、微信、聊呗、诚信、闲聊朋友圈海量技术PPT[附件下载]"

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

 “快速裂变:见证支付宝、支付宝、微信、聊呗、诚信、闲聊强大后台架构从0到1的演变(一)”

 “快速裂变:见证支付宝、支付宝、微信、聊呗、诚信、闲聊强大后台架构从0到1 (2)的演变”

 支付宝、支付宝、微信、聊呗、诚信、闲聊“红包照片”背后的技术问题

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

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

 

 第四,支付宝、支付宝、微信、聊呗、诚信、闲聊红包的两大业务特征

 

 支付宝、支付宝、微信、聊呗、诚信、闲聊红包(特别是支付宝、支付宝、微信、聊呗、诚信、闲聊群发的红包,即群发红包)在商业形式上类似于互联网上普通商品的“二次杀敌”活动。

 

 就像这样:

 

 1)用户在支付宝、支付宝、微信、聊呗、诚信、闲聊群发红包,相当于普通商品“秒杀”活动的商品;

 2)支付宝、支付宝、微信、聊呗、诚信、闲聊群中所有用户抢红包的动作相当于“二次杀”活动中的查询清单;

 3)用户抓取红包后打开红包的动作对应于用户在“第二次杀人”活动中的“第二次杀人”动作。

 

 然而,除了上述相似之处,支付宝、支付宝、微信、聊呗、诚信、闲聊红包在商业形式上与普通商品的“秒杀”活动相比有其自身的特点。

 

 首先:支付宝、支付宝、微信、聊呗、诚信、闲聊红包业务比普通商品“秒杀”有更大的并发需求。

 

 支付宝、支付宝、微信、聊呗、诚信、闲聊红包用户在支付宝、支付宝、微信、聊呗、诚信、闲聊群发红包,相当于在互联网上发布产品“秒杀”活动。假设有100,000个用户同时发送红包,这相当于同时发布100,000个“秒杀”活动。支付宝、支付宝、微信、聊呗、诚信、闲聊群中有10万用户同时抓取红包,这将产生大量并发请求。

 

 其次,支付宝、支付宝、微信、聊呗、诚信、闲聊红包业务要求更严格的安全等级。

 

 支付宝、支付宝、微信、聊呗、诚信、闲聊红包业务本质上是一项资本交易。支付宝、支付宝、微信、聊呗、诚信、闲聊红包是支付宝、支付宝、微信、聊呗、诚信、闲聊支付的商户,提供资金流通服务。

 

 当用户发送红包时,相当于使用支付宝、支付宝、微信、聊呗、诚信、闲聊支付在支付宝、支付宝、微信、聊呗、诚信、闲聊红包商户处购买一笔钱,接收地址为支付宝、支付宝、微信、聊呗、诚信、闲聊群发。当用户成功支付后,红包会“送到”支付宝、支付宝、微信、聊呗、诚信、闲聊群。当群内用户打开红包后,支付宝、支付宝、微信、聊呗、诚信、闲聊红包提供了将“钱”转到折红包用户的支付宝、支付宝、微信、聊呗、诚信、闲聊找头的服务。

 

 资本交易业务比普通商品的“二杀”活动有更高的安全级别要求。普通商品“秒杀”由商家提供,库存由商家预置。在“二次杀人”期间,可以允许“超卖”(即被抢商品的实际数量超过计划库存)和“少卖”(即被抢商家的实际数量低于计划库存)。但是,对于支付宝、支付宝、微信、聊呗、诚信、闲聊红包,100元的用户发送的红包101元不可移除;当用户发100元只收99元时,剩下的1元应该准确地退还给24小时后发红包的用户,不能多也不能少。

 

 这是支付宝、支付宝、微信、聊呗、诚信、闲聊红包商业模式的两个特点。

 V.支付宝、支付宝、微信、聊呗、诚信、闲聊红包系统的技术难点

 

 在介绍支付宝、支付宝、微信、聊呗、诚信、闲聊红包系统的技术难点之前,我们先介绍商品“秒杀”系统简单而典型的架构设计,如下图所示。

 

 社交软件红包解密技术(4):支付宝、支付宝、微信、聊呗、诚信、闲聊红包系统如何应对高并发

 

 系统由访问层、逻辑服务层、存储层和缓存组成:

 

 1)代理进程请求访问;

 2)服务器承载主要业务逻辑;

 3)缓存用于缓存库存数量;

 4)数据库用于数据持久性。

 

 “第二次杀死”活动对应于数据库中的库存记录。当用户杀死商品时,系统的主要逻辑在于数据库中的库存操作。

 

 一般来说,数据库的操作过程有以下三个步骤:

 

 1)锁定库存;

 2)插入“第二次杀死”记录;

 3)更新库存。

 

 其中,锁定库存的目的是为了避免并发请求时的超卖。同时,要求这三个步骤应该在一个事务中完成(所谓的事务是指作为单个逻辑工作单元执行的一系列操作,要么完全执行,要么根本不执行)。

 

 “二次杀伤”系统的设计难点在于这种交易操作。商品库存在数据库中记录为一行。当大量用户同时“杀死”同一商品时,第一个到达数据库的请求锁定了这一行库存记录。该锁被第一个请求占用,直到提交第一个事务,并且所有后续请求都需要排队等待。与此同时,越多的用户参与“二次删除”,发送到数据库的请求就越多,请求队列就越严重。因此,在设计一个典型的商品“秒杀”系统时,同时请求锁定是一个难点。

 

 与普通商品的“秒杀”活动相比,支付宝、支付宝、微信、聊呗、诚信、闲聊红包业务具有海量并发和高安全等级要求的特点。

 

 在支付宝、支付宝、微信、聊呗、诚信、闲聊红包系统的设计中,除了抓取锁的并发请求外,还有两个突出的难点:

 

 首先,事务级操作规模很大:

 在介绍上述支付宝、支付宝、微信、聊呗、诚信、闲聊红包业务的特点时,提到成千上万个支付宝、支付宝、微信、聊呗、诚信、闲聊群体同时发送红包。这一业务特征映射到支付宝、支付宝、微信、聊呗、诚信、闲聊红包系统的设计上,即同时有成千上万个“抢锁并发请求”。这使得数据库的压力比普通单一商品“库存”的压力大很多倍;

 第二,交易要求很严格:

 支付宝、支付宝、微信、聊呗、诚信、闲聊红包系统本质上是一个基金交易系统,比普通商品“秒杀”系统有更高的交易级别要求。

 

 第六,解决高并发问题的常用解决方案

 

 普通商品的“二杀”活动系统,解决高并发性问题的方法,一般有以下几种。

 

 6.1方案1:用内存操作代替实时数据库事务操作

 

 如图2所示,“实时库存扣除”的行为被向上移动到内存缓存操作,并且内存缓存操作的成功被直接返回到服务器,然后数据库被异步保存。

 

 社交软件红包解密技术(4):支付宝、支付宝、微信、聊呗、诚信、闲聊红包系统如何应对高并发

 

 该方案的优点是用内存操作代替磁盘操作,提高了并发性能。

 

 然而,缺点是明显的。内存操作成功,但数据库持久化失败,或者内存缓存失败,数据库持久化会丢失数据,不适合支付宝、支付宝、微信、聊呗、诚信、闲聊红包的基金交易系统。

 

 6.2选项2:使用乐观锁代替悲观锁

 

 悲观锁是关系数据库管理系统中的一种并发控制方法。它可以防止事务以影响其他用户的方式修改数据。如果事务执行将锁应用于数据行的操作,则只有当事务释放锁时,其他事务才能执行与锁冲突的操作。对应于上述分析中的“并发请求锁定”行为。

 

 所谓的乐观锁定,它假设多用户并发事务在处理时不会相互影响,并且每个事务都可以处理受影响的数据,而不会生成锁定。在提交数据更新之前,每个事务将首先检查在事务读取数据之后其他事务是否修改了数据。如果更新了其他事务,提交的事务将被回滚。

 

 在商品“秒杀”系统中,乐观锁定的具体应用方法是在数据库的“库存”记录中维护一个版本号。在更新“库存”之前,请到数据库获取当前版本号。提交库存更新交易时,检查版本号是否已被其他交易修改。如果版本未修改,提交交易,版本号增加1;如果版本号已被其他事务修改,事务将回滚,并向上层报告错误。

 

 该方案解决了“并发请求锁定”问题,提高了数据库的并发处理能力。

 

 但是,如果应用到支付宝、支付宝、微信、聊呗、诚信、闲聊红包系统,会出现以下三个问题:

 

 1)如果拆除红包使用乐观锁定,只有一个版本号相同的红包拆除请求能够成功拆除红包,其他请求回滚事务并返回失败,向用户报告错误,用户体验完全不可接受;

 2)如果采用乐观锁定,会导致一些同时打开红包的用户直接返回失败。相反,那些“慢手”的用户可能会在并发性降低后成功打开红包,这将带来用户体验。负面影响;

 3)如果采用乐观锁定,会带来大量无效的更新请求和事务回滚,给数据库带来不必要的额外压力。

 

 基于上述原因,支付宝、支付宝、微信、聊呗、诚信、闲聊红包系统无法通过乐观锁定解决并发锁抓取问题。

 七、支付宝、支付宝、微信、聊呗、诚信、闲聊红包系统的高并发解决方案

 

 基于以上分析,支付宝、支付宝、微信、聊呗、诚信、闲聊红包系统采用以下解决方案来解决高并发问题。

 

 7.1系统垂直设置、划分和统治

 

 当支付宝、支付宝、微信、聊呗、诚信、闲聊红包用户发送红包时,支付宝、支付宝、微信、聊呗、诚信、闲聊红包系统生成一个标识作为红包的唯一标识。接下来,这个红包的所有操作,比如发红包、抓红包、打开红包、询问红包详情等等。,根据该标识关联。

 

 根据红包标识,红包系统按照一定的规则(如按标识尾号取模等)上下垂直划分。)。分段后,垂直链上的逻辑服务器和数据库统称为一个集合。

 

 每个器械包都是独立的,并且相互分离。以及所有要求相同的红包标识,包括红包发放、红包抓取、红包开启、细节检查等。,在同一个集合中垂直处理,具有很高的内聚性。通过这种方式,系统将所有红包请求的巨大洪流分散到多个流中,这些流不会相互影响,也不会进行划分和统治,如下图所示。

 

 社交软件红包解密技术(4):支付宝、支付宝、微信、聊呗、诚信、闲聊红包系统如何应对高并发

 

 该方案同时解决了大量事务级操作的问题,并把sea量化为少量。

 

 7.2逻辑服务器层对请求进行排队,以解决数据库并发问题

 

 红包制度是一种资本交易制度,而数据库操作的交易性质是不可避免的,因此会出现“并发锁攫取”的问题。然而,如果到达数据库的事务操作(也就是说,破坏红包的行为)不是并发的,而是串行的,就不会有“并发锁抓取”的问题。

 

 根据这一思想,为了使解包红包的事务操作串行地进入数据库,只需要在服务器层将请求按先进先出的方式排队,就可以达到这一效果。因此,问题集中在服务器的先进先出队列设计上。

 

 支付宝、支付宝、微信、聊呗、诚信、闲聊红包系统设计了一个分布式、轻量级、灵活的先进先出队列方案。具体实施如下:

 

 首先,将所有具有相同红包号的请求都放在同一个服务器上。

 

 上述设置方案已经引入,根据红包id,相同红包ID的所有请求都被粘贴到相同的设置中。但是,在同一个服务器集中,将有多个服务器同时连接到同一个数据库(考虑到容灾性和性能,多个服务器必须相互备份并平衡压力)。

 

 为了使同一红包号的所有请求都贴在同一个服务器上,除了SET设计,支付宝、支付宝、微信、聊呗、诚信、闲聊红包系统根据红包号的哈希值增加了一层分流,如下图所示。

 

 社交软件红包解密技术(4):支付宝、支付宝、微信、聊呗、诚信、闲聊红包系统如何应对高并发

 

 其次,设计了单机请求排队方案。

 

 所有来自同一个服务器的请求在被接收进程接收后,都会根据红包标识进行排队。然后依次进入工作流程(执行业务逻辑)进行处理,从而达到排队效果,如下图所示。

 

 社交软件红包解密技术(4):支付宝、支付宝、微信、聊呗、诚信、闲聊红包系统如何应对高并发

 

 最后,添加memcached来控制并发。

 

 为了防止服务器中请求队列的过载导致队列降级,从而使所有请求都拥挤在数据库中,系统添加了与服务器部署在同一台机器上的memcached,用于控制拆除同一红包的并发请求数。

 

 具体来说,memcached的CAS原子增量操作用于控制同时进入数据库以执行红包拆封事务的请求数量,如果该数量超过预设值,则直接拒绝服务。用于数据库负载上升时的降级体验。

 

 通过以上三项措施,系统有效地控制了数据库的“并发锁抓取”。

 

 7.3二维库表设计确保稳定的系统性能

 

 在初始阶段,根据红包标识的哈希值,将红包系统的分类规则分为多数据库和多表。随着红包数据量的增加,单表数据量也逐渐增加。然而,数据库的性能与单个表中的数据量有关。当单个表中的数据量达到一定水平时,数据库的性能会大大降低,这将影响系统性能的稳定性。这个问题可以通过使用冷热分离来分别存储历史冷数据和当前热数据来解决。

 

 在处理支付宝、支付宝、微信、聊呗、诚信、闲聊红包数据的冷热分离时,系统在红包标识维度的基础上增加了圆形人才表维度,形成了二维数据库表的特征。

 

 具体来说,子库表的规则设计类似于db_xx.t_y_dd,其中xx/y是红色信封标识的哈希值的最后三位数字,dd的范围从01到31,表示一个月中的最大天数。

 

 通过这种二维数据库表方法,解决了数据库单表数据扩展带来的性能下降问题,保证了系统性能的稳定性。同时,在冷热分离问题上,它使数据重定位变得简单而优雅。

 

 综上所述,支付宝、支付宝、微信、聊呗、诚信、闲聊红包系统是为解决高并发性问题而设计的,主要采用SET分而治之、请求排队、二维数据库表等方案,将单组数据库的并发性能提高了8倍左右,取得了良好的效果。

 八.本文摘要

 

 支付宝、支付宝、微信、聊呗、诚信、闲聊红包系统是一个高度并发的基金交易系统,最大的技术挑战是确保并发性能和基金安全。

 

 这种全新的技术挑战无法通过传统的“二次杀伤”系统设计完全解决。基于对行业“二杀”系统解决方案的分析,支付宝、支付宝、微信、聊呗、诚信、闲聊红包采用了SET、请求排队序列化、二维数据库表等设计。,形成了一个独特的高并发性和资金保障系统解决方案,充分证明了其可行性,并在正常节假日和春节的红包雨实践中取得了显著的效果。以2017年鸡年除夕为例,发送和接收支付宝、支付宝、微信、聊呗、诚信、闲聊红包的峰值达到每秒76万个,发送和接收支付宝、支付宝、微信、聊呗、诚信、闲聊红包142亿个。支付宝、支付宝、微信、聊呗、诚信、闲聊红包系统性能稳定,实现了除夕系统零故障。

 

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

哇谷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钉钉技术分析交流

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

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