什麼叫架構(這裏指的是軟件架構)?sql
有關軟件總體結構與組件的抽象描述,用於指導大型軟件系統各方面的設計。
數據庫
下面就是軟件架構的幾大關注要素:
瀏覽器
1,系統功能需求緩存
固然是重點處理對象,有功能需求才會有項目,也才用架構;安全
2,性能
服務器
一個網站的性能,或者說是響應速度會嚴重影響用戶體驗。據最新研究代表,大多數用戶指望的網站加載時間是3秒,若是時間長過3秒,網站就開始流失用戶;固然,隨着如今的網速每一年成指數級的增漲,3秒這個指望值可能再也不受用。多線程
衡量性能的重要指標:響應時間 ,TPS,系統性能計數器架構
其中能夠優化的,異步
瀏覽器端:包括瀏覽器緩存,使用頁面壓縮,合理佈局頁面,減小Cookie傳輸,頁面靜態化,CDN,反向代理;nosql
應用服務器端:本地緩存,分佈式緩存,集羣,異步消息隊列;
代碼:多線程,JVM調優;
數據庫端:index,cache,sql,nosql;
3,可用性
高可用設計的前提就是必然會出現服務器宕機,目標就是宕機後服務仍然可用。
主要手段:冗餘
4,伸縮性
指標:是否能夠用多臺服務器構建集羣,並向集羣中添加新的服務器。
包括:應用服務器集羣,緩存集羣,數據庫。
5,擴展性
指標:在網站增長新業務時,是否能夠實現對如今產品透明無影響。不須要任何改動或者不多改動如今業務就能夠上線新的業務。
主要手段是:事件驅動架構(使用消息隊列),分佈式服務(RPC)。
6,安全性