天天看點

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

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

      一個支撐千萬級PV的網站是非常考驗一個架構是否成熟、健壯(本文不涉及軟體架構的層面,有興趣也可以讨論)。現抛出一個系統層面的架構,不保證是最優的方案,但也許适合你。理由是再優秀的架構都不具備通用性,需要根據每種應用特點針對性來設計。希望起到抛磚引玉的作用,大家多多參與,發表意見。

<a href="http://life.chinaunix.net/bbsfile/month_1112/1112160026f44ccae50af9bd58.png" target="_blank"></a>

(點選放大)

架構說明:

1)架構中直接引入軟體名稱的子產品,是個人推薦使用的,如Haproxy、Hadoop等;

2)關于全局負載均衡,看成本投入情況,可以使用商業的産品,如F5-GTM,開源方案便是自搭智能DNS;

3)本地負載均衡方案,可以考慮F5-LTM或成熟的開源解決方案LVS;

4)代理層為什麼推薦大家使用Haproxy?Haproxy是一個非常優秀的反向代理軟體,十分高效、穩定。國内top 10的網際網路公司都有在使用;

5)緩存層可以使用Squid或Varnish,個人更傾向Varnish。配置靈活、運作穩定,提供非常便利的管理接口。為啥在緩存層前面加一層代理?優點非常多,列舉如下:

根據應用配置URI路由規則,集中熱點來提高後端緩存的命中率;

輕松劃分網站頻道、版塊,更好對應用進步組織、規劃;

對URI進行一般性安全過濾,抵禦注入攻擊;

彈性調配硬體資源,應對突發事件産生大流量;

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

6)應用層開源技術方案非常多且成熟,在此不較長的描述;

7)資料庫層主流開源解決方案Mysql是首選,主從複制(一主對多從)是目前比較靠譜的模式;

9)内網DNS扮演的角色非常重要,一定要消滅code中出現的内網IP位址,很大程度減少因IP變更、伺服器故障而修改源碼的情況,同時也便于維護;

10)内網LB适用在内部WEB接口、多台資料庫Slave、多台Nosql Slave、公共服務等應用的負載均衡,可以使用LVS、Haproxy來實作,可用性要求不高的應用可行直接使用Localhost DNS輪詢;

11)hadoop适合海量資料的存儲與處理,如做網站日志分析、使用者資料挖掘等;

12)管理叢集,平台的核心,運維的陣地;