大型網站技術架構-閱讀筆記1

 第一章 大型網站核心要素javascript

1.網站訪問特色和現實世界的財富分配同樣遵循二八定律:80%的訪問業務集中在20%的數據上,這部分數據就是須要作緩存處理的。前端

2.創新的業務發展模式對網站架構逐步提出更高要求,才使得創新的網站架構得以發展成熟。是業務成就了技術,是事業成就了人,而不是相反。java

3.不要企圖使用技術解決全部問題,技術是用來解決業務問題的,而業務的問題,也能夠經過業務的手段是解決。(12306的發展,就是走的這條道)算法

4.網站架構模式,每個模式描述了一個在咱們周圍不斷重複發生的問題及該問題的解決方案的核心。這樣,你就能一次又一次的使用該方案而沒必要作重複的工做。正確使用模式能夠更好的利用業界和前任的思想和實踐,用更少的實踐開發出更好的系統,使設計者的水平也達到更高的境界。可是模式受其適用的場景限制,對系統的要求和約束也不少,不恰當的適用模式只會畫虎不成反類犬,不但沒有解決原來的老問題,反而帶來了更棘手的新問題。好的設計絕對不是模仿,不是生搬硬套某個模式,而是對問題深入理解之上的創造與創新,即便是「微創新」,也是讓人耳目一新的似曾相識。山寨與創新的最大區別不在因而否抄襲,是否模仿,而在於對問題和需求是否真正地理解與把握。瀏覽器

  • 分層
  • 分割
  • 分佈式
  • 集羣
  • 緩存
  • 異步
  • 冗餘
  • 自動化
  • 安全

5.網站架構要素緩存

  • 性能
  • 可用性
  • 伸縮性
  • 擴展性
  • 安全性

第二章 網站的高性能架構安全

1.網站性能測試指標:性能優化

  • 響應時間
  • 併發數
  • 吞吐量
  • 性能計數器

2.Web前端性能優化服務器

2.1瀏覽器訪問優化cookie

  • 減小http請求
  • 使用瀏覽器緩存
  • 啓用壓縮
  • CSS放在頁面最上面,javascript放在頁面最下面
  • 減小cookie傳輸

2.2CSN加速

2.3反向代理

3.應用服務器性能優化

3.1分佈式緩存

memcached是緩存的經典產品,應用程序經過一致性Hash等路由算法選擇緩存服務器訪問緩存數據。memcached通訊模塊基於libevent,主要是利用了其在長鏈接上的穩定性。

memcached採用LRU算法釋放最近最久未被訪問的數據佔用空間。Time33算法。B+樹。

3.2異步操做

使用mq實現

3.3使用集羣

3.4代碼優化

第三章 網站的高可用架構

1.負載均衡+集羣

應用服務器集羣的session管理

  • session複製,適用於集羣規模較小的場景
  • session綁定,負載均衡服務器老是未來源於同一個IP的請求分發到同一臺服務器
  • 利用cookie記錄session,適用於session較少的狀況,簡單實用
  • session服務器,高可用,伸縮性,性能好,複雜,成本高

2.高可用的服務

  • 分級管理
  • 超時設置
  • 異步調用
  • 服務降級,一種隨即拒絕服務的策略,有些網站用戶本身不能訪問,可是問下身邊的人,卻能夠訪問,本身再刷新頁面,也能夠訪問了。這種策略能夠確保一部分請求得以成功,避免要死你們一塊兒死的悲劇。
  • 冥等性設計(名字很怪),須要保證服務的重複調用和一次調用產生的結果形同,好比轉帳操做。
相關文章
相關標籤/搜索