1.大型網站軟件系統的特點:
- 高并發,大流量
- 高可用
- ? ? ? ?海量數據
- 用戶分布廣泛,網絡情況復雜
- 安全環境惡劣
- 需求快速變更,發布頻繁
- 漸進式發展
2.大型網站演變架構
1)初步應用:數據(數據庫,文件服務器)和應用程序跑在單一服務器上
2)數據與應用分離:數據庫服務器,文件服務器,應用程序服務器
3)緩存改善性能:(應用程序(帶有本地緩存)-->外接分布式緩存)-->數據庫服務器以及文件服務器對接
4)應用程序集群:使用負載均衡策略來進行請求分布
負載均衡調度器--->(多個飲用程序分布式部署)--->外接分布式緩存--->數據庫服務器以及文件服務器對接
5)數據庫讀寫分離:當單一數據庫IO量達到極限時候,需要對數據庫進行集群
將數據庫服務器進行分布式
數據庫服務器(主庫(寫數據庫)--->多個從庫用于數據select)
6)CDN加速
在負載均衡前面添加一層反向代理服務器和Cdn加速器,將一些緩存數據盡早返回給服務器,讓頁面反應速度加快
Cdn加速器-->反向代理->負載均衡調度器--->(多個飲用程序分布式部署)--->外接分布式緩存--->數據庫服務器以及文件服務器對接
7)分布式數據庫以及分布式文件服務器
當數據庫中數據量非常大的時候,可以將這個不同業務的數據放在不同的物理機上。
當文件數據量比較大時候,單一文件服務器不能承載時候,可以將單一文件服務器改為分布式文件服務器
8)NOSQL和搜索引擎
當大數據量大文件量的時候,必定會涉及到文件數據的搜索,此時需要的是NOSQL以及搜索引擎服務器給其提供搜索服務,減輕數據源管理的麻煩
9)業務拆分:
將一個巨大的應用分為不同的業務模塊進行開發,將每一個不同模塊的應用進行分布在不同的服務器中進行使用,不同模塊與模塊之間采用消息隊列進行通信
3.架構模式:
1.單一應用(初期應用):應用層,服務層,數據層整合在一起;
2.數據分層:將應用分為:應用層,服務層,數據層
3.分割:根據業務進行模塊分割,將一個大應用分割成一個一個的小模塊進行開發
4.分布式部署:
分布式應用和服務
分布式靜態資源
分布式數據和存儲
分布式計算
5.集群:單一服務器不能承擔該任務時候,需要對其進行集群部署
6.緩存:
CDN
反向代理
本地緩存
分布式緩存
7.異步調用
當數據量巨大時候,可以采用異步調用策略進行調度。
其實現原理相當于是和生產者和消費者模式差不多采用消息隊列實現的異步
8冗余:
對數據進行冷熱備份
9.自動化
自動化運維方面,自動化監控
10安全化:
通過驗證碼機制以及防止SQL注入問題
4.TPS,HPS,QPS
TPS:每秒事物數
HPS:每秒的HTTP請求數
QPS:每秒的查詢數