QQ、微博和12306都是用户访问量很大的业务场景。但同样是10亿用户,他们的高并发一样吗?
一、QQ
QQ的核心业务有:好友,个人消息,群消息等。
这些信息的读写都会根据 用户id/ 群id / 消息id 来进行。例如,拉取好友列表:
select friend_id from friends where uid=$uid;
其中:uid为用户id
10W个用户同时读写,各读各的,彼此之间并没有锁冲突。
只有当同一个用户/群,有大量并发,例如,1个群1秒钟读写1W次时,才可能存在锁冲突。
QQ群有人数限制,很少会出现这种情况
二、微博
微博的核心业务是feed流:
- 发微博,写操作
- 刷微博,读操作
业务场景显然是读多写少。用户在刷微博时,自己feed流里的消息,都是别人发的。
不像QQ,基本是读写自己的数据;微博要写自己的数据,读别人的数据。在用户量很大,并发量很大时,会有一定的读写锁冲突。
三、12306
12306的核心业务是:
- 查票,读操作
- 买票,写操作
火车票,是公共资源,所有用户访问的是同一库存。在用户量很大,并发量很大时,有极大的锁冲突。
因此,这类“秒杀”业务,虽然数据量不大,但如果不做特殊优化,数据库很容易死锁卡死,没有任何人能买票成功。
关注【老张聊架构】,成为百万年薪架构师!
,