大資料和高並發的解決方案總結

來源:互聯網
上載者:User

標籤:

現在,軟體架構變得越來越複雜了,好多技術層出不窮,令人眼花繚亂,解決這個問題呢,就是要把複雜問題簡單化,核心就是要把握本質。

軟體剛開始的時候是為了實現功能,隨著資訊量和使用者的增多,大資料和高並發成了軟體設計必須考慮的問題,那麼大資料和高並發本質是什麼呢?

本質很簡單,一個是慢,一個是等。兩者是相互關聯的,因為慢,所以要等,因為等,所以慢,解決了慢,也就解決了等,解決了等,也就解決了慢。

關鍵是如何解決慢和等,核心一個是短,一個是少,一個是分流。

短是指路徑要短。典型的mvc結構是請求->controller->model->dao->view,然後把頁面返回給使用者。要想短的話,

1,頁面靜態化- 使用者可以直接擷取頁面,不用走那麼多流程,比較適用於頁面不頻繁更新。

2,使用緩衝- 第一次擷取資料從資料庫准提取,然後儲存在緩衝中,以後就可以直接從緩衝提取資料。不過需要有機制維持緩衝和資料庫的一致性。

3,使用儲存過程-那些處理一次請求需要多次訪問資料庫的操作,可以把操作整合到儲存過程,這樣只要一次資料庫訪問就可以了。

4,批量讀取 - 高並發情況下,可以把多個請求的查詢合并到一次進行,以減少資料庫的訪問次數

5,延遲修改 - 高並發情況下,可以把多次修改請求,先儲存在緩衝中,然後定時將緩衝中的資料儲存到資料庫中,風險是可能會斷電丟失緩衝中的資料,

6,  使用索引 - 索引可以看作是特殊的緩衝,盡量使用索引就要求where字句中精確的給出索引列的值。

少是指查詢的資料要少。

1,分表 - 把本來同一張表的內容,可以按照地區,類別等分成多張表,很簡單的一個思路,但是要盡量避免分出來的多表關聯查詢。

2,分離活躍資料 - 例如登入使用者業務,註冊使用者很多,但是活躍的登入使用者很少,可以把活躍使用者專門儲存一張表,查詢是先查詢活躍表,沒有的話再查總表,這也類似與緩衝啦。

3, 分塊 - 資料庫層面的最佳化,對程式是透明的,查詢大資料只用找到相應塊就行。

分流三種。

1,叢集 - 將並發請求分配到不同的伺服器上,可以是商務服務器,也可以是資料庫伺服器。

2,分布式 - 分布式是把單次請求的多項商務邏輯分配到多個伺服器上,這樣可以同步處理很多邏輯,一般使用與特別複雜的業務請求。

3,CDN - 在網域名稱解析層面的分流,例如將華南地區的使用者請求分配到華南的伺服器,華中地區的使用者請求分配到華中的伺服器。

 

暫時總結這麼多的方案,隨著技術的進步,會有更多的方案出現,一起成長進步中。。。。。

 

大資料和高並發的解決方案總結

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.