當前位置:
首頁 > 知識 > 系統架構、網站架構的演進變化

系統架構、網站架構的演進變化

單機mysql的美好時代。

在90年代,一個網站的訪問量一般都不大,用單個資料庫完全可以輕鬆應付。在那個時候,更多的都是靜態網頁,動態交互類型的網站不多。

此種架構下,我們來看看數據存儲的瓶頸是什麼?

1、數量的總大小一個機器放不下時

2、數據的索引(B+Tree)一個機器的內存放不下時

3、訪問量(讀寫混合)一個實例不能承受

Memcached(緩存) + Mysql+垂直拆分架構

隨著訪問量的上升,幾乎大部分使用msyql架構的網站在資料庫上都開始出現了新能問題,web程序不再僅僅專註在功能上,同時也在追求性能。程序員們開始大量的使用緩存技術來環節資料庫的壓力,優化資料庫的結構和索引。開始比較流行的是通過文件緩存來緩解資料庫壓力,但是當訪問量繼續增大的時候,多台web機器通過文件緩存不能共享,大量的小文件緩存也帶來了比較高的IO壓力,在這個時候Memcached就自然的成為一個非常時尚的技術產品。

Mysql主從讀寫分離。

由於資料庫的寫入壓力增加,Memcached只能緩解資料庫的讀取壓力。讀寫幾種在一個資料庫上讓資料庫不堪重負,大部分網站開始使用主從複製技術來達到讀寫分離,以提供讀寫性能和讀取的可擴展性。mysql的master-slave模式成為這個時候的網站標配了。

分表分庫+水平拆分+mysql集群

在memcached的告訴緩存,mysql的主從複製,讀寫分離的基礎之上,這是msyql主庫的寫壓力開始出現瓶頸,而數據量的持續猛增,由於MyISAM使用表鎖,在高並發下會出現嚴重的鎖問題,大量的高並發mysql應用開始使用InnDB引擎代替MyISAM。

同事,開始流行使用分表分庫來緩解寫壓力和數據增長的擴展問題。這個時候,分表分庫成了一個熱門技術,是面試的熱門問題也是業界討論的熱門技術問題。也就在這個時候,mysql推出了還不太穩定的表分區,這也給技術實力一般的公司帶來了希望。雖然mysql推出了mysql cluster集群,單性能也不能很好滿足互聯網的要求,只是在高可靠性上提供了非常大的保證。

mysql的擴展性瓶頸

mysql資料庫也經常存儲一些大文本欄位,導入資料庫表非常的大,在做資料庫回復的時候就導致非常的慢,不容易快速的恢復資料庫。

今天的系統架構就是這樣。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 Adolph談JAVA高端 的精彩文章:

SpringCloud實戰開發系列課程-創建部門微服務
SpringBoot如何整合定時任務調度

TAG:Adolph談JAVA高端 |