社交软件红包技术解密(四):微信红包系统是如何应对高并发的
四、微信红包的两大业务特点
微信红包(尤其是发在微信群里的红包,即群红包),业务形态上很类似网上的普通商品“秒杀”活动。
就像下面这样:
- 1)用户在微信群里发一个红包,等同于是普通商品“秒杀”活动的商品上架;
- 2)微信群里的所有用户抢红包的动作,等同于“秒杀”活动中的查询库存;
- 3)用户抢到红包后拆红包的动作,则对应“秒杀”活动中用户的“秒杀”动作。
七、微信红包系统的高并发解决方案
综合上面的分析,微信红包系统针对相应的技术难点,采用了下面几个方案,解决高并发问题
这个方案解决了同时存在海量事务级操作的问题,将海量化为小量
最后,增加 memcached 控制并发。
为了防止 Server 中的请求队列过载导致队列被降级,从而所有请求拥进 DB,系统增加了与 Server 服务器同机部署的 memcached,用于控制拆同一个红包的请求并发数。
具体来说,利用 memcached 的 CAS 原子累增操作,控制同时进入 DB 执行拆红包事务的请求数,超过预先设定数值则直接拒绝服务。用于 DB 负载升高时的降级体验。
通过以上三个措施,系统有效地控制了 DB 的“并发抢锁”情况。