微信红包系统

分发
垂直切分(Server+DB)
每个红包有唯一的红包id,发红包、抢红包、拆红包、查红包等操作都是基于这个红包id进行的。
那么我们就可以按照一定的规则,将同一个红包id的所有请求和数据都映射到一组Server + DB。

请求排队
为减轻DB并发压力,可使用队列+redis+线程池组合与DB交互,已避免瞬间大量请求涌进DB。
redis的作用是怕瞬时请求数超过队列大小。

DB
hash分库分表
db_xx.t_y_dd,xx/y是红包ID的hash值后三位,dd代表天。
冷热分离
历史数据与热点数据分开存储

猜你喜欢

转载自blog.csdn.net/lihuaping2/article/details/89085182
今日推荐