日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

《又拍網架構中的分庫設計》讀后感

系統 2303 0

今天看了周兆兆寫的“又拍網架構中的分庫設計”從受益不少,又拍網是一個照片分享社區,從2005年6月至今積累了260萬用戶,1.1億張照片,目前的日訪問量為200多萬,一個網站經過精心經營一定有很大的改進。下面是“又拍網架構中的分庫設計”幾個要點。


盡量用開源產品

開源,免費都是我們最喜歡聽的產品,無論在哪個技術領域。現在很多大型電子商務公司都大量使用開源產品,淘寶就是一個典型范例。現在好多web2網站都使用開源的,包括原來接觸過豆瓣網架構,手機之家的架構,facebook架構等都是用大量開源產品又拍主要使用:包括MySQL、PHP、nginx、Python、memcached、redis、Solr、Hadoop和RabbitMQ等等。又拍網的服務器端開發語言主要是PHP和Python,其中PHP用于編寫Web邏輯(通過HTTP和用戶直接打交道), 而Python則主要用于開發內部服務和后臺任務。在客戶端則使用了大量的Javascript, 主要使用MooTools這個JS框架。 另外,把圖片處理過程從PHP進程里獨立出來變成一個服務。這個服務基于nginx,但是是作為nginx的一個模塊而開放REST API。


《又拍網架構中的分庫設計》讀后感

數據庫分庫


通過主從數據庫,分解壓力,其實又拍從庫主要是做備份。其實他們大可以做讀寫分離來減輕壓力。不過使用了memcached來減輕壓力,還是不錯的選擇。把相對變化比較小的query數據放到memcached中。

我到建議他們開發獨立的搜索引擎系統。


數據水平劃分


數據垂直劃分很簡單,把數據安裝業務分開,又拍使用的按功能模塊拆分,比如可以將群組相關表和照片相關表存放在不同的數據庫中,這種方式多個數據庫之間的表結構不同。


水平劃分


水平劃分是將原來一個庫的數據劃分到多個不同的數據庫中,每個庫的表結構完全一樣。在文檔中題了幾種劃分方式:按照奇偶ID;按照id大小范圍,一定范圍在一個庫;建立映射關系表,又拍就是采用了該方法。通過memcached保存關系表來提高訪問速度。

其實水平劃分規則還有很多,也可以采取“ Memcached Consistent Hashin ”方法。還可以通過數字取取模等。

又拍總結了幾條水平劃分后出現的問題:不能執行跨庫的關聯查詢;不能保證數據的一致/完整性;所有查詢必須提供數據庫線索;自增ID不能唯一。其實我倒不覺得是問題,根據業務的可以容忍度來做相應的處理就達到比較好的效果了。


在文檔中沒有提及圖片是怎么存儲的,我想又拍應該也開發了和豆瓣網差不多的圖片存儲系統(豆瓣使用doubanfs)。


看完又拍架構文章后受益不少,任何一個成功的網站都是通過技術人員不斷耕耘,用加班和熬夜換來的成果,有苦有樂,從中獲取的不是切身不能體會。

感謝周兆兆的分享,文檔地址: http://www.infoq.com/cn/articles/yupoo-partition-database





?

《又拍網架構中的分庫設計》讀后感


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 曲松县| 夏河县| 广灵县| 泸溪县| 永昌县| 长丰县| 慈溪市| 普格县| 甘洛县| 漾濞| 徐水县| 腾冲县| 湟中县| 肃北| 安岳县| 泸西县| 沽源县| 澄江县| 泰安市| 巴马| 宜宾县| 炉霍县| 汨罗市| 漳州市| 深水埗区| 卢龙县| 甘南县| 河南省| 齐河县| 伊川县| 桐梓县| 商南县| 察雅县| 敦化市| 鄂温| 乃东县| 罗定市| 巴林左旗| 博客| 虎林市| 平安县|