從12306的餘票查詢談資料庫的承載問題

來源:互聯網
上載者:User


開始一直不明白,為什麼12306的很多功能要分開,例如:12306的餘票查詢功能和購票功能是分開的,實際上用一般的思維去考慮,我直接點擊購票就能告訴我還有多少張餘票。還有票價查詢,也可以整合到上述兩個功能裡去。

但是為什麼還是把這些功能分開了?個人覺得是有原因的。我們知道購票實際上是讀資料庫的讀寫操作,而餘票查詢和票價查詢實際上是對資料庫的讀操作。在這裡我們可以明確知道讀和寫兩者對資料庫來說,代價是完全不同的。

那麼面對如此大的壓力,最好的辦法無外乎提高單點資料庫的效能和採用分布式系統。但是無論是單點資料庫還是分布式系統,都無法承載整個中國的壓力。那麼很好的一個辦法就是採用分布式性質的功能劃分。

那麼12306很有可能的做法,就是採用了分散式資料庫,同時也不是每個單點都具有同樣的讀寫功能,因為在如此集中的訪問,要保證資料庫的一致性非常困難。一個好的辦法就是採用鏡像,一個可讀可寫伺服器,剩餘的都是唯讀伺服器,也就是說,把查詢功能轉移到唯讀伺服器來降低伺服器的訪問壓力。這樣相當大程度上把壓力轉移到了其他伺服器。也就是MySQL裡面的master和slave兩種概念。

12306無疑是大資料分布式的一個集中問題體現者,要研究的問題還有很多。


本文來自IT部落格,轉載請註明,http://www.itbuluoge.com,~致力於編程、演算法、資料庫技術的分享

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.