1、高并發,大流量
2、高可用:7*24小時不間斷服務,不當機
3、海量資料儲存及管理
4、網絡複雜
5、安全性
6、易擴充,可伸縮:需求快速變更,釋出頻繁
7、漸進式發展:臉譜網是宿舍,谷歌是斯坦福大學實驗室,淘寶是馬雲家
一句話,高可用,高性能,易擴充,可伸縮且安全的網站。
1、初始階段
單機伺服器:應用程式+資料庫+檔案都在一台伺服器上。
2、應用服務和資料服務分離
應用伺服器,檔案伺服器和資料庫伺服器。
中間通過通信的是:http/socket
3、緩存
二八定律。核心集中在百分之20
緩存分兩種:應用伺服器上的本地緩存 和 緩存在專門分布式緩存伺服器的遠端緩存。
其中ehcache 簡介:(通過rmi、jgroups或jms進行的異步或同步的緩存複制、支援的通過rmi、jgroups或jms進行的異步或同步的緩存複制、可靠的分發:使用tcp的内建分發機制、面向資源的restful,還有就是soap)
4、應用伺服器叢集
叢集是常用手段,實作系統的可伸縮性。
通過負載均衡排程伺服器,将請求分發任何一台伺服器。
5、資料庫讀寫分離
讀部分(緩存不命中或者過期) 和 全部寫操作要通路資料庫
主從熱備-資料庫同步
6、反向代理nginx 、cdn加速網站響應
原理:緩存
cdn:就近的網絡提供上機房。反向代理緩存這使用者請求的資源。
7、分布式檔案系統、分布式資料庫系統
單表資料規模很大的情況,常用手段是業務分庫。
8、nosql 、 搜尋引擎
資料存儲及大規模資料的檢索
nosql場景: 場景:儲存使用者資訊,比如會話、配置檔案、參數、購物車等等。這些資訊一般都和id(鍵)挂鈎,這種情景下鍵值資料庫是個很好的選擇。
9、業務拆分
分而治之,業務分成各個産品線。然後各個應用伺服器。
應用之間通過超連結或者消息隊列進行資料分發。
10、分布式服務
soa、雲服務
雲計算服務,可以讓一切技術資源:計算,存儲,網絡按需購買即可。