大型網站架構升級解決方案之:數據庫

前言:

今日讀了《大型網站技術架構》這本書,大大擴展了對網站從小到大一步步演變過程中的技術演進的認識

不過在讀完之後,痛感本書談及的那些具體的技術細節,並沒有對更深層次的實踐步驟的探討

頓覺應該多邁一步,開始尋覓各種解決方案,先總結數據庫類。



1.應用與數據庫拆分

需求場景:單一服務器構架,服務器出現性能

解決方案:

相對下述幾項來說,這步拆分是最簡單的,因爲涉及到的服務器數量很少,代碼層面修改也很少

購買專用的數據庫服務器並配置,將原來應用服務器中數據庫的鏈接地址,改成新買來的數據服務器IP,測試並開啓


2.利用緩存

需求場景:有了大量的流量,所有用戶都進行了獨立的請求時

解決方案:

這一步往往通過純應用層解決

根據28定律,將用戶經常訪問的數據放入緩存區,這樣用戶請求到的內容將主要從緩存提取,而不是數據庫,大大減少了數據庫負載

常見java緩存框架



3.數據庫讀寫分離

需求場景:數據庫讀寫比例不太懸殊時,用來降低數據庫服務器的負載(若讀寫比例過於懸殊,顯然讀寫分離並不能降低單一服務器壓力)

解決方案:

若通過應用層解決,不可避免的會增加應用服務器負擔;若購買雲服務,則預算要相應提高

Spring實現數據庫讀寫分離http://www.cnblogs.com/surge/p/3582248.html

阿里雲,雲數據庫讀寫分離:https://www.aliyun.com/product/rds/mysql?utm_medium=text&utm_source=baidu&utm_campaign=MySQL&utm_content=se_241140

MySQL的讀寫分離的幾種選擇:http://jayluns.iteye.com/blog/2275690


4.分佈式數據庫

需求場景:需要建設去中心化服務集羣的網站

解決方案:

阿里雲,分佈式關係型數據庫服務:https://www.aliyun.com/product/drds

愛可生:http://www.actionsky.com/Index/product/id/1



5.採用NOSQL數據庫


需求場景:超大規模+高併發場景

解決方案:

關於NOSQL的產品,現在(2016年末)已經非常成熟了,而且市場競爭充分,報價都比較實惠(相對直接買臺服務器)




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章