此篇已收錄至《大型網站技術架構》讀書筆記系列目錄貼,點擊訪問該目錄可獲取更多內容。html
(1)瀏覽器端:web
①瀏覽器緩存;算法
②使用頁面壓縮;數據庫
PS:Gzip壓縮效率很是高,一般能夠達到70%的壓縮率,也就是說,若是你的網頁有30K,壓縮以後就變成了9K左右。想要啓用Gzip壓縮,提升瀏覽速度,能夠瀏覽這篇文章:http://www.chinaz.com/web/2012/1017/278682.shtmlexpress
③合理佈局頁面;瀏覽器
CSS:把樣式表置於頂部;避免使用CSS表達式(expression_r);使用外部JavaScript和CSS;削減JavaScript和CSS;用<link>代替@import;避免使用濾鏡;緩存
④減小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數據庫經過優化數據模型、存儲結構、伸縮性等手段在性能方面的優點日趨明顯。
(1)如何衡量可用性?全靠9來撐腰:幾乎全部網站都承諾7*24小時可用,但事實上都不可能徹底實現,總會有一些故障時間。那麼,去除這些故障時間就是網站的總可用時間。換算成網站的可用性指標,以此衡量網站的可用性,例如某些知名網站可用性達到99.99%。
(2)哪些手段提升可用性?
①核心:冗餘-各服務器互相備份保證總體可用;
②應用服務器端:經過負載均衡設備創建集羣,其中一臺宕機當即切換到其餘服務器繼續提供服務,這就保證了高可用性。
③存儲服務器端:須要對數據進行實時備份,當某臺宕機當即將數據訪問請求轉換到其餘服務器上,並進行數據恢復以保證數據高可用。
(1)衡量標準:
①是否能夠多態服務器構建集羣?
②是否容易向集羣中添加新服務器?
③加入服務器後是否能提供無差異服務?
(2)主要手段:
①應用服務器:使用合適的負載均衡設備(硬件仍是軟件?F5仍是LVS+KeepAlived);
②緩存服務器:改進緩存路由算法保證緩存數據的可訪問性;
③數據庫服務器:經過路由區分等手段將多服務器組成一個集羣;
(1)衡量標準:增長新業務時是否能夠實現對現有產品透明無影響(是否須要對現有業務進行修改匹配?);
(2)主要手段:
①事件驅動架構:利用消息隊列實現;
②分佈式服務:將業務和可複用服務分離;
(1)何爲安全性?保護網站不受惡意訪問和攻擊,保護網站的重要數據不被竊取;
(2)衡量標準:針對現存和潛在的攻擊竊密手段,是否有可靠的應對策略;