12306架构到底有多牛(QQ微博12306)
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的核心业务是:
- 查票,读操作
- 买票,写操作
火车票,是公共资源,所有用户访问的是同一库存。在用户量很大,并发量很大时,有极大的锁冲突。
因此,这类“秒杀”业务,虽然数据量不大,但如果不做特殊优化,数据库很容易死锁卡死,没有任何人能买票成功。
关注【老张聊架构】,成为百万年薪架构师!
,
免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com