超级面试题 Q342-一文彻底解决微信红包问题

news/2024/12/23 0:34:38/

微信红包架构是一个高频题,在面试中经常问到。经常问表明很重要,重要在两块:微信用户多,2018年用户量突破10亿,大家都是用户,对红包很熟悉;微信红包是典型的秒杀场景,是用户量最大的秒杀系统之一, 2017年1月除夕当天收发微信红包142亿个,收发峰值每秒76万个。跟微信红包类似的产品也比较多,比如QQ红包、微博红包、支付宝红包等等,红包功能逐渐成为一种标配。超级面试题的Q342、Q2、Q320都是微信红包架构问题,本文对后两个问题同样适用。

讨论微信红包架构之前,先讨论架构设计的原则。架构设计有两个原则最重要:第一个是抽象出原子业务,原子业务就是最小的不可分割的业务; 第二个是扩展,对原子业务进行继承和组合,实现不可预知的与时如流的具体需求,但原子业务本身(尽量)不做修改。

微信红包的原子业务是这样的:苏大强给小蔡发了一个红包,小蔡看到红包,看了下,然后拆红包。抽象表述,A给B发了一个数额为X的红包,A账户扣掉X元。24小时内,B可以查看红包,并决定是否拆红包,如果拆红包,B的账户增加X元。超过24小时B没有拆红包,红包失效,X元退还到A的账户。

对原子业务进行扩展:A在群里发红包,每人都可以拆一个X元红包; A在群里发红包,红包总额X元,每人拆红包得到随机金额。微信红包的人数上限是100人,每个微信群的上限是500人,因此每个红包最多有500人同时进行查看和拆包,这个量级单机能很好地处理。如果微信红包的人数没有上限,可能会出现A给十亿人发红包的场景,如果微信群的人数没有上限,可能会出现十亿人查看和拆红包,这个量级单机无法处理,需要分布式处理。红包人数上限和微信群人数上限是关键约束,它们决定架构设计。

因此,微信红包的本质,是若干个相互独立的任务,在每个任务里一个人给最多不超过100人发红包,最多不超过500人查看并拆红包。任务总数可能很大,比如每秒近百万并发。解决方案的核心,是构造出相互独立的任务,然后分布式在多台机器上执行。
… …
更多内容 http://www.chaojimianshiti.com

转载于:https://blog.51cto.com/14264571/2375018


http://www.ppmy.cn/news/693842.html

相关文章

幸运红包娱乐微信小程序源码

哈喽!大家好,我是HappyGirl快乐女孩,最爱海贼王💞💞💞 是一位爱好技术的【技术Fans】!😜😜😜 💞💞💞 如果有对技术感兴趣的…

微信小程序:幸运红包娱乐源码

这是一个相当于一个幸运娱乐游戏微信小程序源码 内有多个玩法,比如超级王牌,福袋王,红牌大师 具体怎么玩小编就不在这多做介绍了 每一个游戏,进入界面后都有一个游戏规则介绍 所以大家看游戏规则就好啦 小程序源码下载地址: CSDNhttps://mp.csdn.net/mp_download…

支付宝微信红包战背后的算盘

五福卡斗毛玻璃照:支付宝微信红包战背后的算盘(转) 来源:2016年02月03日 每日经济新闻 ◎每经记者 蒋佩芳 植根中国的互联网公司越来越接地气,中国文化独有的春节红包正被支付宝和微信整合成社交和支付大战&#xff0c…

幸运红包娱乐微信小程序源码/多玩法红包小程序源码

幸运红包娱乐微信小程序源码,多玩法红包小程序源码。这是一个相当于一个幸运娱乐游戏微信小程序源码,内有多个玩法,比如超级王牌、福袋王、红牌***等。 具体怎么玩小编就不在这多做介绍了,每一个游戏,进入界面后都有一个游戏规则…

微信公众号发红包需要的API证书是什么,如何获取API证书?

原文地址:什么是API证书?如何获取API证书? 什么是API证书?如何获取API证书? 一、什么是API证书 1、技术开发人员在调用微信支付安全级别较高的接口(如:退款、企业红包、企业付款)时…

卧槽!微信红包封面可以更换了!!!

新的一年,新气象,你的微信红包封面是不是该换换了。看别人都有与众不同的红包封面,你柠檬了吗? 福利来袭,先到先得,大家抓紧抢数量有限的微信红包封面呀! 微信红包封面 第一款【金典】红包封面 …

叼爆了!微信动态红包封面!

最近微信红包封面 真的是彻彻底底火了一次 但该说不说 确实比经典的原皮好看 由于每一个红包封面 每一天都是限量的 所以很多伙伴都抢不到 今天这篇文章给伙伴们 介绍一种长久有效 并且非常有趣的动态红包封面 没有限量、无需疯抢 只需要几个小操作 动态微信红包封面 适用系统&…

无套路!最新官宣的1000+微信红包封面,领取入口戳→

福利来袭,先到先得,大家抓紧抢数量有限的微信红包封面呀! 【一块搞事情】公众号回复【000红包】即可免费领取! 每日持续更新!!! 每天回复一次【000红包】,都有不同的红包封面等着你哦…