開發(fā)大型高負(fù)載類網(wǎng)站應(yīng)用的幾個(gè)要點(diǎn)_建站經(jīng)驗(yàn)教程
推薦:關(guān)于網(wǎng)站結(jié)構(gòu)和交互性的探討我們都知道如何創(chuàng)建一個(gè)好的網(wǎng)站。有一大堆的關(guān)于可用性、界面設(shè)計(jì)以及網(wǎng)站設(shè)計(jì)的書可以參考。如今,我們都知道一個(gè)好的站點(diǎn)應(yīng)該有:非常好看的設(shè)計(jì)、友好的界
看了一些人的所謂大型項(xiàng)目的方法,我感覺(jué)都是沒(méi)有說(shuō)到點(diǎn)子上,有點(diǎn)難受。
我也說(shuō)說(shuō)自己的看法.我個(gè)人認(rèn)為,很難衡量所謂項(xiàng)目是否大型,即便很簡(jiǎn)單的應(yīng)用在高負(fù)載和高增長(zhǎng)情況下都是一個(gè)挑戰(zhàn).因此,按照我的想法,姑且說(shuō)是高負(fù)載高并發(fā)或者高增長(zhǎng)情況下,需要考慮的問(wèn)題.這些問(wèn)題,很多是和程序開發(fā)無(wú)關(guān),而是和整個(gè)系統(tǒng)的架構(gòu)密切相關(guān)的.
數(shù)據(jù)庫(kù)
沒(méi)錯(cuò),首先是數(shù)據(jù)庫(kù),這是大多數(shù)應(yīng)用所面臨的首個(gè)SPOF。尤其是Web2.0的應(yīng)用,數(shù)據(jù)庫(kù)的響應(yīng)是首先要解決的。
一般來(lái)說(shuō)MySQL是最常用的,可能最初是一個(gè)mysql主機(jī),當(dāng)數(shù)據(jù)增加到100萬(wàn)以上,那么,MySQL的效能急劇下降。常用的優(yōu)化措施是M-S(主-從)方式進(jìn)行同步復(fù)制,將查詢和操作和分別在不同的服務(wù)器上進(jìn)行操作。我推薦的是M-M-Slaves方式,2個(gè)主Mysql,多個(gè)Slaves,需要注重的是,雖然有2個(gè)Master,但是同時(shí)只有1個(gè)是Active,我們可以在一定時(shí)候切換。之所以用2個(gè)M,是保證M不會(huì)又成為系統(tǒng)的SPOF。Slaves可以進(jìn)一步負(fù)載均衡,可以結(jié)合LVS,從而將select操作適當(dāng)?shù)钠胶獾讲煌膕laves上。
以上架構(gòu)可以抗衡到一定量的負(fù)載,但是隨著用戶進(jìn)一步增加,你的用戶表數(shù)據(jù)超過(guò)1千萬(wàn),這時(shí)那個(gè)M變成了SPOF。你不能任意擴(kuò)充Slaves,否則復(fù)制同步的開銷將直線上升,怎么辦?我的方法是表分區(qū),從業(yè)務(wù)層面上進(jìn)行分區(qū)。最簡(jiǎn)單的,以用戶數(shù)據(jù)為例。
根據(jù)一定的切分方式,比如id,切分到不同的數(shù)據(jù)庫(kù)集群去。全局?jǐn)?shù)據(jù)庫(kù)用于meta數(shù)據(jù)的查詢。缺點(diǎn)是每次查詢,會(huì)增加一次,比如你要查一個(gè)用戶nightsailer,你首先要到全局?jǐn)?shù)據(jù)庫(kù)群找到nightsailer對(duì)應(yīng)的cluster id,然后再到指定的cluster找到nightsailer的實(shí)際數(shù)據(jù)。
每個(gè)cluster可以用m-m方式,或者m-m-slaves方式。這是一個(gè)可以擴(kuò)展的結(jié)構(gòu),隨著負(fù)載的增加,你可以簡(jiǎn)單的增加新的mysql cluster進(jìn)去。
需要注重的是:
1、禁用全部auto_increment的字段
2、id需要采用通用的算法集中分配
3、要具有比較好的方法來(lái)監(jiān)控mysql主機(jī)的負(fù)載和服務(wù)的運(yùn)行狀態(tài)。假如你有30臺(tái)以上的mysql數(shù)據(jù)庫(kù)在跑就明白我的意思了。
4、不要使用持久性鏈接(不要用pconnect),相反,使用sqlrelay這種第三方的數(shù)據(jù)庫(kù)鏈接池,或者干脆自己做,因?yàn)閜hp4中mysql的鏈接池經(jīng)常出問(wèn)題。
緩存
緩存是另一個(gè)大問(wèn)題,我一般用memcached來(lái)做緩存集群,一般來(lái)說(shuō)部署10臺(tái)左右就差不多(10g內(nèi)存池)。需要注重一點(diǎn),千萬(wàn)不能用使用swap,最好關(guān)閉linux的swap。
負(fù)載均衡/加速
可能上面說(shuō)緩存的時(shí)候,有人第一想的是頁(yè)面靜態(tài)化,所謂的靜態(tài)html,我認(rèn)為這是常識(shí),不屬于要點(diǎn)了。頁(yè)面的靜態(tài)化隨之帶來(lái)的是靜態(tài)服務(wù)的
負(fù)載均衡和加速。我認(rèn)為L(zhǎng)ighttped Squid是最好的方式了。
LVS <------->lighttped====>squid(s) ====lighttpd
上面是我經(jīng)常用的。注重,我沒(méi)有用apache,除非特定的需求,否則我不部署apache,因?yàn)槲乙话阌胮hp-fastcgi配合lighttpd,性能比apache mod_php要強(qiáng)很多。
squid的使用可以解決文件的同步等等問(wèn)題,但是需要注重,你要很好的監(jiān)控緩存的命中率,盡可能的提高的90%以上。squid和lighttped也有很多的話題要討論,這里不贅述。
存儲(chǔ)
存儲(chǔ)也是一個(gè)大問(wèn)題,一種是小文件的存儲(chǔ),比如圖片這類。另一種是大文件的存儲(chǔ),比如搜索引擎的索引,一般單文件都超過(guò)2g以上。
分享:含金量:網(wǎng)站流量針對(duì)性的轉(zhuǎn)化率比例什么是網(wǎng)站流量的含金量?我認(rèn)為就是網(wǎng)站流量針對(duì)性的轉(zhuǎn)化率的比例。轉(zhuǎn)化率越高則含金量越高。記得剛剛運(yùn)營(yíng)電子商務(wù)聯(lián)盟的時(shí)候,一次與朋友吃飯。問(wèn)流量的問(wèn)題
- 雙十二電商促銷思路淺析
- Matt Cutts:不要把注意力放在PR上
- 百度要革自己的命?移動(dòng)搜索或取消PC網(wǎng)頁(yè)收錄
- Google adsense帳戶被封到解封全過(guò)程
- 菜鳥如何通過(guò)競(jìng)價(jià)賺取第一桶金?
- 不接電話會(huì)讓你的備案號(hào)注銷
- 盧松松:搜搜已停止收錄網(wǎng)頁(yè)
- 你懂得:百度文庫(kù)也玩?zhèn)人+V認(rèn)證了
- 頭腦風(fēng)暴:為什么搜索引擎不在乎我們?
- 搜狗聯(lián)盟:360 X 300的廣告位變現(xiàn)能力強(qiáng)
- 盧松松:做這樣的資源站,長(zhǎng)不了
- 盧松松:一個(gè)小學(xué)教師建站的不惑與困惑
建站經(jīng)驗(yàn)教程Rss訂閱網(wǎng)站運(yùn)營(yíng)教程搜索
建站經(jīng)驗(yàn)教程推薦
- 做好站長(zhǎng)的原則——可依賴
- 實(shí)例解析新站運(yùn)營(yíng)要如何跳出審核期
- 網(wǎng)上開服裝店:只要努力就一定會(huì)成功
- 如何使獨(dú)立博客獲得更多的訪客評(píng)論來(lái)增加粘度
- 個(gè)人博客:博客將慢慢淡出我們的創(chuàng)業(yè)范圍?
- 做網(wǎng)站要做出自己的個(gè)性——突出你的亮點(diǎn)
- 老錢談目標(biāo)客戶的細(xì)分
- 找到了麥當(dāng)勞等于找到了廁所——談網(wǎng)站定位
- 淺談百度設(shè)置漂浮廣告以提升用戶體驗(yàn)
- 開心網(wǎng):頗具娛樂(lè)精神的MUD版中式Second Life
猜你也喜歡看這些
- 從Google的鏈接政策談該如何正確做SEO
- 談特殊時(shí)期的本地信息網(wǎng)的經(jīng)營(yíng)
- 關(guān)于網(wǎng)站運(yùn)營(yíng)的六點(diǎn)個(gè)人體會(huì)
- 哪些服務(wù)器因素會(huì)影響網(wǎng)站
- 醉品:SEO曾經(jīng)風(fēng)光無(wú)限,如今路在何方?
- 百度沒(méi)收錄,先別怪百度!
- 戀戰(zhàn):告別垃圾站 追求自我
- 淺析Drupal與其它網(wǎng)站設(shè)計(jì)方法比較
- 網(wǎng)頁(yè)模板網(wǎng)站運(yùn)營(yíng)需要狼性的熏陶
- 大學(xué)養(yǎng)老婆 不靠Google靠做站
- 相關(guān)鏈接:
復(fù)制本頁(yè)鏈接| 搜索開發(fā)大型高負(fù)載類網(wǎng)站應(yīng)用的幾個(gè)要點(diǎn)
- 教程說(shuō)明:
建站經(jīng)驗(yàn)教程-開發(fā)大型高負(fù)載類網(wǎng)站應(yīng)用的幾個(gè)要點(diǎn)
。