樂視秒殺架構解讀:從零開始搭建百萬每秒訂單系統(未完成)

weixin_34249678發表於2018-07-11

每個叢集10萬寫入,10個叢集就是100萬。


9930763-d7c27456ae677fab.png
9930763-00daa89d412d0b91.png

快取:本地配置

訊息佇列:訂單資料,大資料冗餘

資料庫:併發核心中的核心

9930763-04982783bf7e46bf.png

二、分表

單庫單表,要給它擴充套件,

分表好處:

單表併發(修改狀態)到達極限的時候,資料庫並沒有到達極限。

9930763-b07d09a71f4360a0.png

也就是水平分表:按照uuid進行拆分,拆分成10張表,

優點:併發分散,效能能提高。

不足:應用層小需要知道給哪張表,修改。

9930763-24be243b036493e1.png

mysql和oracle都支援

優點:寫入時候分割槽,併發效率增加。對上層程式碼沒有壓力

三、分庫

9930763-e235aca965528178.png

模三分庫,效能提高了三倍。

9930763-26a660593bfe97f5.png

模五分庫

行級資料遷移,特別痛苦。


9930763-9453d72a75dc4e33.png

主從同步,不用寫指令碼,擴容方式:2的N次方。

完成:一個資料庫,變成兩個,再變四個資料庫的過程。

9930763-0297084f6d965116.png
9930763-52147e737026ffea.png

3:把線上系統,切換到從庫

2.3如果合併的好,10秒中搞定。

四、實戰

9930763-751b321bb451932f.png

mod 8=2*2*2

程式=資料結構+演算法

9930763-425e51378dd3b5c4.png

orm框架把sql直接給中介軟體,中介軟體再給叢集,完成查詢

9930763-9e4afeae10174e8d.png
9930763-eb0346d07b22fae9.png
9930763-d5520436d2bb3229.png
9930763-20a7f7c98895da8c.png

資料庫連線池:hikari效能高。

五、訂單ID設計


9930763-21d91f8673d1fe1f.png

s演算法對時間要求只能到2082年。

9930763-34f1ccceab776584.png
9930763-0aaf0b7f68feb471.png
9930763-4b0e1b8c29b58acb.png

六、叢集拆分

9930763-70a607f029eb6194.png

叢集是分庫分表後,第三個維度。

相關文章