三:大型網站的核心架構要素

須要關注性能、可用性、安全性、伸縮性,可擴展性五個要素css

性能:算法

    瀏覽器端能夠瀏覽器緩存,啓用gzip,可是這樣會增長CPU的壓力sql

    合理佈局頁面,css放在前面,js放在後面,由於頁面是從上往下渲染數據庫

    CDN,將靜態資源分發網絡機房,網絡機房前作反向代理存放靜態資源瀏覽器

    應用服務端,採用緩存,nosql數據庫,分佈式緩存等存放熱點數據,減小應用端和數據庫壓力緩存

    採用消息隊列,安全

    集羣,使用負載均衡服務器

    代碼層級採用多線程操做網絡

    數據庫方面優化服務端,使用緩存,分庫分表,或者直接採用nosql數據庫session

    指標有tps,併發數,響應時間等

可用性:

    採用集羣,單臺 宕機不影響集羣內部工做,數據庫作複製

伸縮性:

    動態加入server,對集羣內部無影響

    若是應用服務是無狀態的那麼基本沒啥影響,若是有狀態的就要考慮session的問題,

    緩存服務器會影響路由,須要優化路由算法

    數據庫若是採用了分庫分表,也會影響,

    nosql基本都有很好的擴展性

擴展性:

    更快的實現新需求,可是新需求對現有系統是透明的,基本無感知,目前可伸縮框架通常是兩中,一種是事件驅動架構,另外一種是分佈式服務

    事件驅動架構:一般是指消息隊列,通常均可以動態加入生產者消費者

    分佈式服務:將業務和複用服務分開,經過分佈式框架服務進行調用,基本無影響,如今國內比較好的就是阿里的Dubbo,Sina的Motan,和噹噹的Dubbox,不過dubbox實在dubbo的基礎上開發的,

安全性

相關文章
相關標籤/搜索