一例千萬級pv高性能高併發網站架構

一個支撐千萬級PV的網站是很是考驗一個架構是否成熟、健壯(本文不涉及軟件架構的層面,有興趣也能夠討論)。現拋出一個系統層面的架構,不保證是最優的方案,但也許適合你。理由是再優秀的架構都不具有通用性,須要根據每種應用特色針對性來設計。但願起到拋磚引玉的做用,你們多多參與,發表意見。
1324277022_85926f4d.png
redis

(點擊放大)

架構說明:
1)架構中直接引入軟件名稱的模塊,是我的推薦使用的,如Haproxy、Hadoop等;
2)關於全局負載均衡,當作本投入狀況,可使用商業的產品,如F5-GTM,開源方案即是自搭智能DNS;
3)本地負載均衡方案,能夠考慮F5-LTM或成熟的開源解決方案LVS;
4)代理層爲何推薦你們使用Haproxy?Haproxy是一個很是優秀的反向代理軟件,十分高效、穩定。國內top 10的互聯網公司都有在使用;
5)緩存層可使用Squid或Varnish,我的更傾向Varnish。配置靈活、運行穩定,提供很是便利的管理接口。爲啥在緩存層前面加一層代理?優勢很是多,列舉以下:
  • 根據應用配置URI路由規則,集中熱點來提升後端緩存的命中率;sql

  • 輕鬆劃分網站頻道、版塊,更好對應用進步組織、規劃;數據庫

  • 對URI進行通常性安全過濾,抵禦注入***;後端

  • 彈性調配硬件資源,應對突發事件產生大流量;緩存

  • 可回收寶貴的公網IP資源;安全


6)應用層開源技術方案很是多且成熟,在此不詳細描述;
7)數據庫層主流開源解決方案Mysql是首選,主從複製(一主對多從)是目前比較靠譜的模式;
8)關於Nosql,應用場景很少說,可參考「 給部門作的Mongodb技術交流PPT」文章,redis、memcached等做爲熱點數據存儲、數據庫緩存都很是理想; 9)內網DNS扮演的角色很是重要,必定要消滅code中出現的內網IP地址,很大程度減小因IP變動、服務器故障而修改源碼的狀況,同時也便於維護; 10)內網LB適用在內部WEB接口、多臺數據庫Slave、多臺Nosql Slave、公共服務等應用的負載均衡,可使用LVS、Haproxy來實現,可用性要求不高的應用可行直接使用Localhost DNS輪詢; 11)hadoop適合海量數據的存儲與處理,如作網站日誌分析、用戶數據挖掘等; 12)管理集羣,平臺的核心,運維的陣地;
相關文章
相關標籤/搜索