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的核心業務是:
- 查票,讀操作
- 買票,寫操作
火車票,是公共資源,所有用戶訪問的是同一庫存。在用戶量很大,并發量很大時,有極大的鎖沖突。
因此,這類“秒殺”業務,雖然數據量不大,但如果不做特殊優化,數據庫很容易死鎖卡死,沒有任何人能買票成功。
關注【老張聊架構】,成為百萬年薪架構師!
,