这也是一般秒杀活动的难点所在,而且抢红包系统涉及金钱交易,所以事务级别要求更高,不能出现脏数据。 3.2.红包系统整体架构 3.3.红包信息查询 3.4.抢红包设计 3.5.拆红包设计
抢红包系统从功能拆分,可以分为包红包、发红包、抢红包和拆红包 4 个功能。 对于系统特性来说,抢红包系统和秒杀系统类似。 每次发红包都是一次商品秒杀流程,包括商品准备,商品上架,查库存、减库存,以及秒杀开始,最终的用户转账就是红包到账的过程。 2.2 难点 相比秒杀活动,微信发红包系统的用户量更大,设计更加复杂...
常见的红包系统,由用户指定金额、红包总数来完成红包的创建,然后通过某个入口将红包下发至目标用户,用户看到红包后,点击红包,随机获取红包,最后,用户可以查看自己抢到的红包。整个业务流程不复杂,难点在于抢红包这个行为可能有很高的并发。所以,系统设计的优化点主要关注在抢红包这个行为上。 由于查看红包过于简单,所以本...
2. 用户发起红包请求 用户在系统中发起红包请求,以下是相应的代码片段。 defcreate_red_packet(user_id,amount):# 检查用户余额user_balance=get_user_balance(user_id)ifuser_balance<amount:return"余额不足,无法发红包"# 创建红包记录query="INSERT INTO red_packets (user_id, amount) VALUES (%s, %s)"db...
红包拓客系统也叫裂变系统,主要依托于社交网络进行裂变式的用户增长。设计和实现过程主要可以分为三个部分:目标设定、规则设计、技术实现。目标设定是根据企业的运营目标,明确红包拓客系统需要达到什么效果,比如新增用户数、用户活跃度提升等。规则设计则是在目标设定的基础上,设计出适合该目标的拓客规则。这里面可以从...
首先,我们来了解一下微信红包的基本工作流程: 用户登录选择红包类型填写红包信息进行支付红包发送接收红包查看红包 系统交互序列图 接下来,我们使用序列图描述用户从登录到查看红包的整个过程: 通知模块支付模块系统用户通知模块支付模块系统用户登录请求登录成功选择红包类型显示填写红包信息填写红包信息支付请求支付确认红包已...
后面的业务就是转账等等一系列的业务流程我们还是要对服务进行水平拆分,但是经过我们前面一系列的骚操作以后,已经把这块业务的并发打下来了,做正常的分库分表相关的设计就可以了。如下图所示:上面说到的第四点锁的问题。为了红包不被多抢,我们在进入到领红包这个环节已经是用户抢红包的哦动作进入到mq之后的事情了...
编者按:经过2014年一年的酝酿,2015微信红包总量创下历史新高,峰值1400万次/秒,8.1亿次每分钟,微信红包收发达10.1亿次,系统整体运行平稳, 在这里我分享下微信红包背后的技术。 讲师:jeri 核心功能&目标 首先,了解下微信红包的4个逻辑:摇/发/抢/拆。看似简单,实现可不简单再review下微信红包要实现目标: ...
一、红包系统的业务场景 红包场景的业务处理流程: 包红包:需要查询用户账户金额,需要调用账户查询服务 发红包:需要红包服务生成红包订单id 抢红包:通过红包订单id实时生成单笔金额凭证 拆红包:有两条处理主…
红包系统的设计 秒杀系统中,很常见的一种就是抢红包,还有其他的例如:双11抢购、直播间秒杀下单、一元夺宝等等。其中抢红包的特点在于无法超售, 对于下单,如果比库存超售少许,其实是可以接受的,但是对于红包,一旦用户抢到的钱比发出去的钱更多,那就是大问题了。当然, 抢购也有特定的业务复杂度,例如下单之后,用户可能...