《大型網站技術架構》讀書筆記三:大型網站核心架構要素


此篇已收錄至《大型網站技術架構》讀書筆記系列目錄貼,點擊訪問該目錄可獲取更多內容。

一、性能—響應時間決定用戶

(1)瀏覽器端:

  ①瀏覽器緩存;

  ②使用頁面壓縮;

   PS:Gzip壓縮效率非常高,通常可以達到70%的壓縮率,也就是說,如果你的網頁有30K,壓縮之后就變成了9K左右。想要啟用Gzip壓縮,提高瀏覽速度,可以瀏覽這篇文章:http://www.chinaz.com/web/2012/1017/278682.shtml

  ③合理布局頁面;

  CSS:把樣式表置於頂部避免使用CSS表達式(expression_r);使用外部JavaScript和CSS;削減JavaScript和CSS;用<link>代替@import;避免使用濾鏡;

   JavaScript:把腳本置於頁面底部;使用外部JavaScript和CSS;削減JavaScript和CSS;剔除重復腳本;減少DOM訪問;開發智能事件處理程序;

  ④減少Cookie傳輸;

(2)CDN:內容分發網絡(Content Delivery Network,簡稱CDN)將加速內容分發至離用戶最近的節點,縮短用戶查看對象的延遲,提高用戶訪問網站的響應速度與網站的可用性,解決網絡帶寬小、用戶訪問量大、網點分布不均等問題。詳情請見百度百科:http://baike.baidu.com/view/8689800.htm?from_id=420951&type=search&fromtitle=CDN&fr=aladdin

(3)應用服務器端:服務器本地緩存和分布式緩存;

  Memcached簡介:http://baike.baidu.com/view/794242.htm

  Redis簡介:http://baike.baidu.com/view/4595959.htm

(4)服務器集群技術:Web服務器集群、數據庫服務器集群、分布式緩存服務器集群等等,通過部署多台服務器共同對外提供同類服務,提高整體處理能力。

(5)數據庫服務器端:

  ①索引:索引(index)是對數據庫表中一個或多個列(例如,employee 表的姓氏 (name) 列)的值進行排序的結構。如果想按特定職員的姓來查找他或她,則與在表中搜索所有的行相比,索引有助於更快地獲取信息。

 PS:要注意的是,建立太多的索引將會影響更新和插入的速度,因為它需要同樣更新每個索引文件。

  ②緩存:數據庫緩存是介於應用程序和物理數據源之間,其作用是為了降低應用程序對數據庫的物理數據源訪問的頻次,從而提高了應用的運行性能。

  ③SQL優化:當一個基於數據庫的應用程序運行起來很慢時,90%的可能都是由於數據訪問程序的問題,要么是沒有優化,要么是沒有按最佳方法編寫代碼,因此你需要審查和優化你的數據訪問/處理程序。具體可以瀏覽這篇文章:http://www.cnblogs.com/Shaina/archive/2012/04/22/2464576.html

  ④NoSQL:方興未艾的NoSQL數據庫通過優化數據模型、存儲結構、伸縮性等手段在性能方面的優勢日趨明顯。

二、可用性—你能保證幾個9?

(1)如何衡量可用性?全靠9來撐腰:幾乎所有網站都承諾7*24小時可用,但事實上都不可能完全實現,總會有一些故障時間。那么,去除這些故障時間就是網站的總可用時間。換算成網站的可用性指標,以此衡量網站的可用性,例如某些知名網站可用性達到99.99%

(2)哪些手段提高可用性?

  ①核心:冗余-各服務器互相備份保證整體可用;

  ②應用服務器端:通過負載均衡設備建立集群,其中一台宕機立即切換到其他服務器繼續提供服務,這就保證了高可用性。

  ③存儲服務器端:需要對數據進行實時備份,當某台宕機立即將數據訪問請求轉換到其他服務器上,並進行數據恢復以保證數據高可用。

三、伸縮性—能屈能伸方為大丈夫

(1)衡量標准:

  ①是否可以多態服務器構建集群?

  ②是否容易向集群中添加新服務器?

  ③加入服務器后是否能提供無差別服務?

(2)主要手段:

  ①應用服務器:使用合適的負載均衡設備(硬件還是軟件?F5還是LVS+KeepAlived);

  ②緩存服務器:改進緩存路由算法保證緩存數據的可訪問性;

  ③數據庫服務器:通過路由區分等手段將多服務器組成一個集群;

四、擴展性—不痛不癢之間新業務就上線了

(1)衡量標准:增加新業務時是否可以實現對現有產品透明無影響(是否需要對現有業務進行修改匹配?);

(2)主要手段:

  ①事件驅動架構:利用消息隊列實現;

  ②分布式服務:將業務和可復用服務分離;

五、安全性—媽媽再也不用擔心的我的照片了

(1)何為安全性?保護網站不受惡意訪問和攻擊,保護網站的重要數據不被竊取;

(2)衡量標准:針對現存和潛在的攻擊竊密手段,是否有可靠的應對策略;

本章思維導圖

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM