資料庫與分布式架構策略思考

來源:互聯網
上載者:User

 一直在瞭解互連網的大資料高並發的架構,以及所採用的各種最佳化策略。

在建設初期,可以先從兩方面進行考慮:

 

一、資料庫設計策略。從資料庫的擴充性來說,是考慮資料可以方便的進行垂直劃分和水平劃分,即:

 

垂直切分(Vertical Partition/Sharding):就是把不同格式的資料,儲存到不同的資料庫,也叫分庫

水平切分(Horizontal Partition/Sharding):就是把相同的資料格式的資料,儲存到不同的資料庫,本文將側重這點進行講述,也叫分表

要理解和記憶這兩種切分方式,可以大腦回憶一下你的資料庫表,橫向是欄位說明,豎向是記錄資料,因此,垂直切分意味是要劃垂直的線將表的欄位分成幾塊,也即一張表分成N張不同欄位的表;水平切分意味著水平劃線,將資料記錄分成幾塊,各塊的資料欄位其實是一樣的,只是記錄數值不同。

 

 

1.考慮到後期資料量大的情況。在資料庫設計時就要考慮分庫,比如同樣是新聞資訊,就考慮為時政新聞、娛樂新聞

、體育新聞等等建立各自的新聞表,從而達到方便儲存的目的

 

2.考慮到中後期訪問量大的情況。設計時考慮分表,比如對娛樂新聞,可以根據日期,人物等欄位拆分成多種表來儲存,從而提高查詢的速率。

 

3、綜合上面2種情況,可以綜合使用。當資料量達千萬,並發量上萬的適合,考慮建立緩衝表。就是在實際表和使用者之間在搭建一個暫存資料表,訪問資料時,首先訪問暫存資料表,如果不存在,則進入實際表中擷取,然後放入緩衝表中,同時會通過後台線程,定時將緩衝表資料同步到實際資料庫中,同步時間可以針對系統要求來進行。

 

二、程式最佳化策略。搭建系統,需要認真考慮選擇合適架構,當然公司或者個人的時間能力精力都夠多的話,可以考慮自己開發系統架構。

 

1.架構建設

1).Structs2+Spring3+Hibernate3這3個架構搭建的系統每一年都在更新,不斷有變化和進步,這種搭配最適合構建公司資訊系統,而要應用於互連網大訪問量和高並發量的Web系統,還是比較吃力,需要進一步採取多種最佳化策略,如靜態化,快取資料,JS壓縮等等。

 

2).Spring MVC根據網上對當前熱門的幾個架構的測試資訊得出,Spring的controller還是比Structs的效率高一點,Spring的資料庫操作手段Jdbctemplate是對Java的JDBC的簡單封裝,操作SQL效率是肯定比Structs結合Hibernate效率高。

 

3).Spring+Hibernate該配合的架構訪問效率和開發效率都比較不錯,適合企業開發和互連網開發。

 

4).Spring+JPA(Hibernate)該配合架構效率在目前開看,效率非常不錯,最合適互連網應用,個人非常推薦。

 

2.靜態化。推薦使用的架構有freemaker和velocity。

 

3.資料緩衝。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

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.