mixi.jp:使用開源軟體搭建的可擴充套件SNS網站
首先進行垂直切分,按照表的內容將不同的表劃分到不同的資料庫中。然後是水平切分,根據使用者的ID將不同使用者的內容再劃分的不同的資料庫中,這是比較通常的做法,也很管用。劃分的關鍵還是在於應用中的實現,需要將操作封裝在在資料層,而儘量不影響業務層。當然完全不改變邏輯層也不可能,這時候最能檢驗以前的設計是否到位,如果以前設計的不錯,那建立連線的時候傳個表名,使用者ID進去差不多就解決問題了,而以前如果sql程式碼到處飛,或者資料層封裝的不太好的話那就累了。
這樣做了以後並不能從根本上解決問題,尤其是對於像mixi這種SNS網站,頁面上往往需要引用大量的使用者資訊,好友資訊,圖片,文章資訊,跨表,跨庫操作相當多。這個時候就需要發揮memcached的作用了,用大記憶體把這些不變的資料全都快取起來,而當修改時就通知cache過期,這樣應用層基本上就可以解決大部分問題了,只會有很小一部分請求穿透應用層,用到資料庫。Mixi的經驗是平均每個頁面的載入時間在0.02秒左右(當然根據頁面大小情況不盡相似),可以說明這種做法是行之有效的。Mixi一共在32臺機器上有快取伺服器,每個Cache Server 2G記憶體,這些Cache Server與App Server裝在一起。因為Cache Server對CPU消耗不大,而有了Cache Server的支援,App Server對記憶體要求也不是太高,所以可以和平共處,更有效的利用資源。
圖片的處理就顯得相對簡單的多了。對於mixi而言,影像主要有兩部分:一部分是經常要使用到的,像使用者頭像,群組的頭像等等,大概有100多GB,它們被Squid和CDN所快取,命中率相對比較高;另一部分是使用者上傳的大量照片,它們的個體訪問量相對而言比較小,命中率也比較低,使用Cache不划算,所以對於這些照片的策略是直接在使用者上傳的時候分發到到圖片儲存伺服器上,在使用者訪問的時候直接進行訪問,當然圖片的位置需要在資料庫中進行記錄,不然找不到放在哪臺伺服器上就鬱悶了。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/66009/viewspace-1035279/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- [丁原]使用Mysql來搭建可擴充套件的SNS網站(淺談)MySql套件網站
- ZenML:可擴充套件的開源機器學習MLOps框架套件機器學習框架
- 開源 高效能 高可用 可擴充套件套件
- 【軟體架構篇】常見可擴充套件模式架構套件模式
- 大型網站技術架構(七)--網站的可擴充套件性架構網站架構套件
- 軟體可擴充套件性:來自星巴克的經驗套件
- 分享一些好用的資源(擴充套件、介面、網站)套件網站
- iOS一個靈活可擴充套件的開源Log庫iOS套件
- 可擴充套件性套件
- 教你 4 步搭建彈性可擴充套件的 WebAPI套件WebAPI
- Redis複製與可擴充套件叢集搭建Redis套件
- 如何使用Zebee構建高度可擴充套件的分散式工作流中介軟體?套件分散式
- 開源 | FLUI : Flutter 的元件擴充套件集UIFlutter元件套件
- 開源 | SOFAMesh 的通用協議擴充套件協議套件
- 可擴充套件的使用者表設計套件
- 可擴充套件的搜尋元件套件元件
- 可擴充套件的TextView,ExpandableTextView與Scroller類的使用套件TextView
- [外掛擴充套件]通用網站統計套件網站
- 如何構建高擴充套件性網站?套件網站
- kestra: 無限可擴充套件的開源編排和排程平臺套件
- 編寫可擴充套件程式套件
- 如何擴充套件大規模Web網站的效能?套件Web網站
- PHP擴充套件開發就是一個自己的PHP擴充套件PHP套件
- 使用 Python 構建可擴充套件的社交媒體情感分析服務Python套件
- JMeter 擴充套件開發:擴充套件 TCP 取樣器JMeter套件TCP
- 如何擴充套件一個網站以支援數百萬使用者?套件網站
- 可擴充套件性筆記一套件筆記
- Chrome瀏覽器擴充套件開發系列之十八:擴充套件的軟體國際化chrome.i18n APIChrome瀏覽器套件API
- windows右鍵選單擴充套件容器[開源]Windows套件
- ETL的可擴充套件性和可維護性套件
- solaris11怎麼擴充套件資源池?solaris11擴充套件資源池的方法套件
- 實用的可選項(Optional)擴充套件套件
- dubbo是如何實現可擴充套件的?套件
- PDF 擴充套件包使用套件
- 開發php擴充套件PHP套件
- kotlin 擴充套件(擴充套件函式和擴充套件屬性)Kotlin套件函式
- 如何開始一個模組化可擴充套件的Web App套件WebAPP
- Solon詳解(六)- Solon的校驗擴充套件框架使用與擴充套件套件框架