最便宜的高負(fù)載網(wǎng)站架構(gòu)
1, LVS做前端四層軟件均衡負(fù)載
LVS是基于IP虛擬分發(fā)的規(guī)則, 不同于apache,squid這些7層基于http協(xié)議的反向代理軟件, 前者在性能上能得到更好的保證!
另外, 后者在處理http header信息時(shí), 會(huì)顯得很被動(dòng).
開源, 高性能, 這不就是我們所需要的嗎?
另外, 針對(duì)大訪問量, 還可以使用DNS輪詢+LVS集群.
當(dāng)然, 比起硬件均衡負(fù)載, 單點(diǎn)故障的風(fēng)險(xiǎn)會(huì)更大.
2,squid 做前端靜態(tài)頁面緩存, 包括 css, javascript
squid 是業(yè)內(nèi)公認(rèn)的優(yōu)秀代理服務(wù)器,其緩存能力更讓許多高負(fù)載網(wǎng)站青睞!(比如新浪,網(wǎng)易等)
使用他, 通過本機(jī)內(nèi)存+ 磁盤的集群存儲(chǔ)方案, 能夠起到很好的加速作用!
使用squid, 也是大部分網(wǎng)站的節(jié)約成本之道.
3, lighttpd 提供圖片, css, javascript 服務(wù). 做到靜態(tài)與動(dòng)態(tài)分離.
采用lighttpd, 而不使用apache, 是因?yàn)樗鼘?duì)靜態(tài)內(nèi)容的響應(yīng)速度高于apache一到三倍.
這對(duì)于高負(fù)載網(wǎng)站是夢寐以求的.
加上, 在其前端部署了squid, 真正做到了, 超高命中率, 超快響應(yīng)速度.
3,apache 用來處理php, url重定向, url過濾, 防洪水攻擊等等.
apache是業(yè)內(nèi)主流http服務(wù)器,比較看重它的穩(wěn)定性, 擴(kuò)展性.
使用它, 制作一些推廣頁面, 一些需要快速開發(fā)的頁面, 最好不過了.
最重要的是, 它可以使用mod_jk或mod_proxy對(duì)復(fù)雜業(yè)務(wù)請(qǐng)求的進(jìn)行代理.
比如, 將用戶注冊(cè), 代理給jboss, 用java開發(fā).
需要提一下的是, apache的module開發(fā).
一句話 - 非常實(shí)用.
你可以只用apache提供的類庫, 就能很方便的開發(fā)一個(gè)http的日志處理模塊.
另外, 它也可以與squid 集成, 從而, 形成一條很完美的加速鏈.
4,JBOSS 用來處理含復(fù)雜的業(yè)務(wù)邏輯與充當(dāng)JAVAEE容器的角色
JBOSS是red hat旗下的優(yōu)秀中間件產(chǎn)品,在java開源領(lǐng)域小有名氣,并且完全支持j2ee規(guī)范的,功能非常強(qiáng)大
使用他,既能保證業(yè)務(wù)流程的規(guī)范性,又可以節(jié)省開支(免費(fèi)的)
java的優(yōu)勢, 就不多說了.
5,mysql數(shù)據(jù)庫
使用mysql數(shù)據(jù)庫,單機(jī)達(dá)到百萬級(jí)別的數(shù)據(jù)存儲(chǔ),及快速響應(yīng),應(yīng)該是沒問題的.
如果網(wǎng)站本身訪問增長很快, 可以考慮mysql 集群.
從而獲得高伸縮性, 高訪問性能.
不管是通過 master+slaver的主從結(jié)構(gòu).還是根據(jù)業(yè)務(wù)進(jìn)行分表.
mysql的集群特性, 都是網(wǎng)站首選的.
6,memcache作為分布式緩存
基于中央存放的緩存載體, 一般都需要集群.
基于c寫的memcache, 可以很自豪的頂起高性能緩存的帽子.
它幾乎可以緩存任何數(shù)據(jù). 包括 html, java對(duì)象, 文件等等.
重要的是, 它給jboss, apache等服務(wù)器實(shí)現(xiàn)高效的緩存方案, 提供了有力的保證.
LVS
======================================
.....
apache mod_jk / mod_proxy+ jboss
apache mod_jk / mod_proxy+ jboss
.....
squid + lighttpd
squid + lighttpd
....
=================================
....
mysql + memcache
mysql + memcache
......
================================