ï»??xml version="1.0" encoding="utf-8" standalone="yes"?>欧美经典一区二区三区,亚洲国产精品精华素,久久一本综合http://www.aygfsteel.com/paulwong/archive/2012/10/08/389204.htmlpaulwongpaulwongMon, 08 Oct 2012 13:38:00 GMThttp://www.aygfsteel.com/paulwong/archive/2012/10/08/389204.htmlhttp://www.aygfsteel.com/paulwong/comments/389204.htmlhttp://www.aygfsteel.com/paulwong/archive/2012/10/08/389204.html#Feedback0http://www.aygfsteel.com/paulwong/comments/commentRss/389204.htmlhttp://www.aygfsteel.com/paulwong/services/trackbacks/389204.htmlhttp://www.it168.com/redian/12306hpc/ 
]]>- ç”?2306.cn谈谈¾|‘站性能技æœ?/title>http://www.aygfsteel.com/paulwong/archive/2012/01/17/368659.htmlpaulwongpaulwongTue, 17 Jan 2012 07:23:00 GMThttp://www.aygfsteel.com/paulwong/archive/2012/01/17/368659.htmlhttp://www.aygfsteel.com/paulwong/comments/368659.htmlhttp://www.aygfsteel.com/paulwong/archive/2012/01/17/368659.html#Feedback1http://www.aygfsteel.com/paulwong/comments/commentRss/368659.htmlhttp://www.aygfsteel.com/paulwong/services/trackbacks/368659.html
12306.cn¾|‘站挂了åQŒè¢«å…¨å›½äººæ°‘骂了。我˜q™ä¸¤å¤©ä¹Ÿåœ¨æ€è€ƒè¿™ä¸ªäº‹åQŒæˆ‘想以˜q™ä¸ªäº‹æ¥¾_—ç•¥åœ°å’Œå¤§å®¶è®¨è®ºä¸€ä¸‹ç½‘ç«™æ€§èƒ½çš„é—®é¢˜ã€‚å› ä¸ÞZ»“促,而且完全åŸÞZºŽ 本äh有é™çš„ç»éªŒå’Œäº†è§£åQŒæ‰€ä»¥ï¼Œå¦‚果有什么问题还请大家一赯‚®¨è®ºå’ŒæŒ‡æ£ã€‚(˜q™åˆæ˜¯ä¸€½‹‡é•¿æ–‡ï¼Œåªè®¨è®ºæ€§èƒ½é—®é¢˜åQŒä¸è®¨è®ºé‚£äº›UIåQŒç”¨æˆ·ä½“éªŒï¼Œæˆ–æ˜¯æ˜¯å¦æŠŠæ”¯ä»˜å’Œè´?¼œ¨ä¸‹å•环节分开的功能性的东西åQ?
业务
ä»ÖM½•技术都¼›ÖM¸å¼€ä¸šåŠ¡éœ€æ±‚ï¼Œæ‰€ä»¥ï¼Œè¦è¯´æ˜Žæ€§èƒ½é—®é¢˜åQŒé¦–先还是想先说说业务问题ã€?
- 其一åQ?strong>有ähå¯èƒ½æŠŠè¿™ä¸ªä¸œè¥¿å’ŒQQ或是¾|‘游相比。但我觉得这两者是ä¸ä¸€æ ïLš„åQŒç½‘游和QQ在线或是ç™Õd½•时访问的更多的是用户自己的数æ®ï¼Œè€Œè®¢¼œ¨ç³»¾lŸè®¿é—®çš„æ˜¯ä¸å¿ƒçš„¼œ¨é‡æ•°æ®åQŒè¿™æ˜¯ä¸ä¸€æ ïLš„。ä¸è¦è§‰å¾—网游或是QQèƒ½è¡Œä½ å°±ä»¥äØ“˜q™æ˜¯ä¸€æ ïLš„。网游和QQ çš„åŽç«¯è´Ÿè½½ç›¸å¯¹äºŽç”?sh¨´)å商务的系¾lŸè¿˜æ˜¯ç®€å•ã€?/li>
- 其二åQ?strong>有äh说春节期间订ç«èžR的这个事好僾|‘站的秒怋zÕdŠ¨ã€‚çš„¼‹®å¾ˆç›æ€¼¼åQ?ä½?æ˜¯å¦‚æžœä½ çš„æ€è€ƒä¸åœ¨è¡¨é¢çš„è¯ï¼Œä½ 会å‘现˜q™ä¹Ÿæœ‰äº›ä¸ä¸€æ —÷€‚ç«è½¦ç¥¨˜q™ä¸ªäº‹ï¼Œ˜q˜æœ‰å¾ˆå¤šæŸ¥è¯¢æ“作åQŒæŸ¥æ—‰™—´åQŒæŸ¥åº§ä½åQŒæŸ¥é“ÞZ½åQŒä¸€ä¸ªèžR‹Æ¡ä¸ è¡Œï¼ŒåˆæŸ¥å¦ä¸€ä¸ªèžR‹Æ¡ï¼Œå…¶ä¼´éšç€å¤§é‡çš„æŸ¥è¯¢æ“作,下å•的时候需è¦å¯¹æ•°æ®åº“æ“作。而秒æ€åQŒç›´æŽ¥æ€ž®±å¥½äº†ã€‚å¦å¤–,关于¿U’æ€åQŒå®Œå…¨å¯ä»¥åšæˆåªæŽ¥å—å‰N个用æˆïLš„è¯äh±‚ åQˆå®Œå…¨ä¸æ“作åŽç«¯çš„ä“Q何数æ®ï¼Œ ä»…ä»…åªæ˜¯å¯¹ç”¨æˆïLš„䏋啿“作logåQ‰ï¼Œ˜q™ç§ä¸šåŠ¡åQŒåªè¦æŠŠå„个æœåŠ¡å™¨çš„æ—‰™—´¾_„¡¡®åŒæ¥äº†å°±å¯ä»¥äº†ï¼Œæ— 需在当时æ“作ä“Q何数æ®åº“。å¯ä»¥è®¢å•数够åŽåQŒåœæ¢ç§’æ€åQŒç„¶åŽæ‰¹ é‡å†™æ•°æ®åº“。ç«è½¦ç¥¨˜q™ä¸ªå²‚æ¢æ˜¯ç§’æ€é‚£ä¹ˆ½Ž€å•。能ä¸èƒ½ä¹°åˆ°¼œ¨å¾—当时告诉用户啊ã€?/li>
- 其三åQ?strong>有äh拿这个系¾lŸå’Œå¥¥è¿ä¼šçš„¼œ¨åŠ¡¾pÈ»Ÿæ¯”较。我觉得˜q˜æ˜¯ä¸ä¸€æ —÷€‚虽然奥˜q会的票务系¾lŸå½“òq´ä¹Ÿä¸€ä¸Šçº¿ž®±åºŸäº†ã€‚但是奥˜q会用的是抽奖的方å¼åQŒä¹Ÿž®±æ˜¯è¯´ä¸å˜åœ¨å…ˆæ¥å…ˆå¾—的抢的方å¼ï¼Œè€Œä¸”åQŒæ˜¯äº‹å޿н奖åQŒäº‹å‰åªéœ€è¦æ”¶ä¿¡æ¯åQŒäº‹å‰ä¸éœ€è¦ä¿è¯æ•°æ®ä¸€è‡´æ€§ï¼Œæ²¡æœ‰é”,很容易水òqÏx‰©å±•ã€?/li>
- å…¶å››åQ?strong>订票¾pÈ»Ÿåº”该和电(sh¨´)å商务的订啾pÈ»Ÿå¾ˆç›¸ä¼?/strong>åQŒéƒ½æ˜¯éœ€è¦å¯¹åº“嘘q?行:1åQ‰å ä½åº“å˜ï¼Œ2åQ‰æ”¯ä»˜ï¼ˆå¯é€‰ï¼‰åQ?åQ‰æ‰£é™¤åº“å˜çš„æ“ä½œã€‚è¿™ä¸ªæ˜¯éœ€è¦æœ‰ä¸€è‡´æ€§çš„‹‚€æŸ¥çš„åQŒä¹Ÿž®±æ˜¯åœ¨åÆˆå‘æ—¶éœ€è¦å¯¹æ•°æ®åŠ é”的。B2C的电(sh¨´)商基本上都会把这ä¸?事干æˆå¼‚æ¥çš„åQŒä¹Ÿž®±æ˜¯è¯ß_¼Œä½ 下的订å•åÆˆä¸æ˜¯é©¬ä¸Šå¤„ç†çš„,而是延时处ç†çš„ï¼Œåªæœ‰æˆåŠŸå¤„ç†äº†ï¼Œ¾pÈ»Ÿæ‰ä¼š¾l™ä½ 一ž®ç¡®è®¤é‚®ä»¶è¯´æ˜¯è®¢å•æˆåŠŸã€‚æˆ‘ç›æ€¿¡æœ‰å¾ˆå¤šæœ‹å‹éƒ½æ”¶åˆ° 认å•䏿ˆåŠŸçš„é‚®äšgã€?strong>˜q™å°±æ˜¯è¯´åQŒæ•°æ®ä¸€è‡´æ€§åœ¨òq¶å‘下是一个瓶é¢?/strong>ã€?/li>
- 其五åQ?strong>é“èµ\çš„ç¥¨åŠ¡ä¸šåŠ¡å¾ˆå˜æ€?/strong>åQŒå…¶é‡‡ç”¨çš„æ˜¯½H然攄¡¥¨åQŒè€Œæœ‰çš„票åˆè¿œ˜qœä¸å¤?大家分,所以,大家æ‰ä¼šæœ‰æŠ¢¼œ¨è¿™¿U有ä¸å›½ç‰¹è‰²çš„ä¸šåŠ¡çš„åšæ³•。于是当¼œ¨æ”¾å‡ºæ¥çš„æ—¶å€™ï¼Œž®×ƒ¼šæœ‰å‡ 百万人甚至上åƒä¸‡äººæ€ä¸ŠåŽ»åQŒæŸ¥è¯¢ï¼Œä¸‹å•ã€‚å‡ å分钟内åQŒä¸€ä¸ªç½‘ç«?能接å—å‡ åƒä¸‡çš„访问é‡åQŒè¿™ä¸ªæ˜¯å¾ˆææ€–的事情。æ®è¯?2306的高峰访问是10亿PVåQŒé›†ä¸åœ¨æ—?点到10点,æ¯ç§’PV在高峰时上åƒä¸‡ã€?/li>
å¤šè¯´å‡ å¥åQ?
- åº“å˜æ˜¯B2Cçš„æ¶æ¢¦ï¼Œåº“å˜½Ž¡ç†ç›¸å½“çš„å¤æ?/strong>。ä¸ä¿¡ï¼Œä½ å¯ä»¥é—®é—®æ‰€æœ‰ä¼ ¾lŸå’Œç”?sh¨´)务零售业的ä¼ä¸šåQŒçœ‹çœ‹ä»–们管ç†åº“å˜æ˜¯å¤šä¹ˆéš„¡š„一件事。ä¸ç„Óž¼Œž®×ƒ¸ä¼šæœ‰é‚£ä¹ˆå¤šäh在问凡客的库å˜é—®é¢˜äº†ã€‚ï¼ˆä½ è¿˜å¯ä»¥çœ‹çœ‹ã€Šä¹”å¸ƒæ–¯ä¼ ã€‹ï¼Œä½ å°±çŸ¥é“ä¸ÞZ»€ä¹ˆTim会接任Appleçš„CEOäº†ï¼Œå› äØ“ä»–æžå®šäº†è‹ÒŽ(gu¨©)žœçš„库å˜é—®é¢˜ï¼‰
- 对于一个网站æ¥è¯ß_¼Œ‹¹è§ˆ¾|‘页的高负è²å¾ˆå®¹æ˜“æžå®šï¼ŒæŸ¥è¯¢çš„负载有一定的隑ֺ¦åŽÕd¤„ç†ï¼Œä¸è¿‡˜q˜æ˜¯å¯ä»¥é€šè¿‡¾~“å˜æŸ¥è¯¢¾l“æžœæ¥æžå®šï¼Œæœ€éš„¡š„ž®±æ˜¯ä¸‹å•的负è½?/strong>ã€‚å› ä¸ø™¦è®‰K—®åº“å˜å•Šï¼Œå¯¹äºŽä¸‹å•åQŒåŸºæœ¬ä¸Šæ˜¯ç”¨å¼‚æ¥æ¥æžå®šçš„。去òq´åŒ11节,淘å®çš„æ¯ž®æ—¶çš„è®¢å•æ•°å¤§çº¦åœ?0万左å»I¼Œäº¬ä¸œä¸€å¤©ä¹Ÿæ‰èƒ½æ”¯æŒ40万(居然æ¯?2306˜q˜å·®åQ‰ï¼Œäºšé©¬é€?òq´å‰ä¸€ž®æ—¶å¯æ”¯æŒ?0万订å•é‡ã€‚å¯è§ï¼Œä¸‹è®¢å•çš„æ“作òq¶æ²¡æœ‰æˆ‘们相åƒçš„那么性能高ã€?/li>
- æ·˜å®è¦æ¯”B2Cçš„ç½‘ç«™è¦½Ž€å•å¾—å¤šï¼Œå› äØ“æ²¡æœ‰ä»“åº“åQŒæ‰€ä»¥ï¼Œä¸å˜åœ¨åƒB2C˜q™æ ·æœ‰N个仓库对åŒä¸€å•†å“åº“å˜æ›´æ–°å’?æŸ?询的æ“作。下å•的时候,B2Cçš?¾|‘ç«™è¦åŽ»æ‰¾ä¸€ä¸ªä»“åº“ï¼Œåˆè¦¼›È”¨æˆ¯‚¿‘åQŒåˆè¦æœ‰åº“å˜åQŒè¿™éœ€è¦å¾ˆå¤šè®¡½Ž—。试惻I¼Œä½ 在北京ä¹îCº†ä¸€æœ¬ä¹¦åQŒåŒ—京的仓库没货了,ž®Þp¦ä»Žå‘¨è¾¹çš„仓库调,那就è¦åŽ»çœ‹çœ‹æ²ˆé˜³æˆ?是西安的仓库有没有货åQŒå¦‚果没有,åˆå¾—看看江è‹çš„仓库,½{‰ç‰ã€‚æ·˜å®çš„ž®±æ²¡æœ‰é‚£ä¹ˆå¤šäº‹äº†åQŒæ¯ä¸ªå•†æˆähœ‰è‡ªå·±çš„库å˜ï¼Œåº“å˜åˆ†åˆ°å•†æˆ·å¤´ä¸Šäº†ï¼Œå而有利于性能ã€?/li>
- æ•°æ®ä¸€è‡´æ€§æ‰æ˜¯çœŸæ£çš„æ€§èƒ½ç“‰™¢ˆã€‚有 äºø™¯´nginxå¯ä»¥æžå®šæ¯ç§’10ä¸‡çš„é™æ€è¯·æ±‚ï¼Œæˆ‘ä¸æ€€ç–‘。但˜q™åªæ˜¯é™æ€è¯·æ±‚,ç†è®ºå€û|¼Œåªè¦å¸¦å®½ã€I/O够强åQŒæœåŠ¡å™¨è®¡ç®—èƒ½åŠ›å¤Ÿï¼Œòq¶æ”¯æŒçš„òq¶å‘˜qžæŽ¥æ•°é¡¶å¾—ä½ 10万TCP链接的å¾ç«?çš„è¯åQŒé‚£æ²¡æœ‰é—®é¢˜ã€‚但在数æ®ä¸€è‡´æ€§é¢å‰ï¼Œ˜q?0万就完完全全æˆäº†ä¸€ä¸ªå¯æœ›ä¸å¯åŠçš„ç†è®ºå€égº†ã€?/li>
æˆ‘è¯´é‚£ä¹ˆå¤šï¼Œæˆ‘åªæ˜¯æƒ³ä»Žä¸šåŠ¡ä¸Šå‘Šè¯‰å¤§å®¶åQŒæˆ‘们需è¦ä»Žä¸šåŠ¡ä¸ŠçœŸæ£äº†è§£æ˜¥˜qé“路订¼œ¨è¿™æ ·ä¸šåŠ¡çš„å˜æ€ä¹‹å¤„ã€?
å‰ç«¯æ€§èƒ½ä¼˜åŒ–技æœ?/h4>
è¦è§£å†Ïx€§èƒ½çš„问题,有很多ç§å¸¸ç”¨çš„æ–¹æ³•,我在下é¢åˆ—ä‹D一下,我相ä¿?2306˜q™ä¸ª¾|‘站使用下é¢çš„这些技术会让其性能有质的飞跃ã€?
一ã€å‰ç«¯è´Ÿè½½å‡è¡?/h5>
通过DNS的负载å‡è¡¡å™¨åQˆä¸€èˆ¬åœ¨è·¯ç”±å™¨ä¸Šæ ÒŽ(gu¨©)®è·¯ç”±çš„è´Ÿè½½é‡å®šå‘åQ‰å¯ä»¥æŠŠç”¨æˆ·çš„访问å‡åŒ€åœ°åˆ†æ•£åœ¨å¤šä¸ªWebæœåŠ¡å™¨ä¸Šã€‚è¿™æ ·å¯ä»¥å‡ž®‘WebæœåŠ¡å™¨çš„è¯äh±‚ è´Ÿè²ã€‚å› ä¸ºhttp的请求都是çŸä½œä¸šåQŒæ‰€ä»¥ï¼Œå¯ä»¥é€šè¿‡å¾ˆç®€å•的负è²å‡è¡¡å™¨æ¥å®Œæˆ˜q™ä¸€åŠŸèƒ½ã€‚æœ€å¥½æ˜¯æœ‰CDN¾|‘络让用戯‚¿žæŽ¥ä¸Žå…¶æœ€˜q‘çš„æœåŠ¡å™¨ï¼ˆCDNé€šå¸¸ä¼´éš ç€åˆ†å¸ƒå¼å˜å‚¨ï¼‰ã€‚(关于负è²å‡è¡¡æ›´äؓ详细的说明觓åŽç«¯çš„è´Ÿè½½å‡è¡?#8221;åQ?
二ã€å‡ž®‘å‰ç«¯é“¾æŽ¥æ•°
我看了一ä¸?2306.cnåQŒæ‰“开主页需è¦å¾60多个HTTP˜qžæŽ¥åQŒèžR¼œ¨é¢„订页é¢åˆ™æœ?0多个HTTPè¯äh±‚åQŒçŽ°åœ¨çš„‹¹è§ˆå™¨éƒ½æ˜¯åƈå‘请求的。所以,å?è¦æœ‰100万个用户åQŒå°±ä¼šæœ‰6000万个链接åQŒå¤ªå¤šäº†ã€‚一个登录查询页é¢å°±å¥½äº†ã€‚把js打æˆä¸€ä¸ªæ–‡ä»Óž¼ŒæŠŠcss也打æˆä¸€ä¸ªæ–‡ä»Óž¼ŒæŠŠå›¾æ ‡ä¹Ÿæ‰“æˆä¸€ä¸ªæ–‡ä»Óž¼Œç”?css分å—展示。把链接数å‡åˆ°æœ€ä½Žã€?
三ã€å‡ž®‘网™åµå¤§ž®å¢žåР另å®?/h5>
˜q™ä¸ªä¸–ç•Œä¸æ˜¯å“ªä¸ªå…¬å¸éƒ½æ•¢åšå›¾ç‰‡æœåŠ¡çš„åQŒå› ä¸ºå›¾ç‰‡å¤ªè€—å¸¦å®½äº†ã€‚çŽ°åœ¨å®½å¸¦æ—¶ä»£å¾ˆéš¾æœ‰äºø™ƒ½ä½“ä¼šåˆ°å½“æ‹¨å·æ—¶ä»£åšä¸ªå›ùN¡µéƒ½ä¸æ•¢ç”¨å›„¡‰‡çš„æƒ…形(现在在手机端‹¹?览也是这个情形)。我查看了一ä¸?2306首页的需è¦ä¸‹è½½çš„æ€ÀL–‡ä»¶å¤§ž®å¤§¾U¦åœ¨900KBå·¦å³åQŒå¦‚æžœä½ è®‰K—®˜q‡äº†åQŒæµè§ˆå™¨ä¼šå¸®ä½ 缓å˜å¾ˆå¤šï¼Œåªéœ€ä¸‹è²10Kå·¦å³ çš„æ–‡ä»¶ã€‚ä½†æ˜¯æˆ‘ä»¬å¯ä»¥æƒ³åƒä¸€ä¸ªæžç«¯ä¸€ç‚¹çš„æ¡ˆä¾‹åQ?ç™¾ä¸‡ç”¨æˆ·åŒæ—¶è®‰K—®åQŒä¸”都是½W¬ä¸€‹Æ¡è®¿é—®ï¼Œæ¯äh下è²é‡éœ€è¦?MåQŒå¦‚果需è¦åœ¨120¿U’内˜q”回åQŒé‚£ä¹ˆå°±éœ€è¦ï¼Œ1M * 1M /120 * 8 = 66Gbps的带宽。很惊ähå§ã€‚所以,我估计在当天åQ?2306的阻塞基本上应该是网¾lœå¸¦å®½ï¼Œæ‰€ä»¥ï¼Œä½ å¯èƒ½çœ‹åˆ°çš„æ˜¯æ²¡æœ‰å“应。åŽé¢éšç€‹¹è§ˆå™¨çš„¾~“å˜å¸®åŠ© 12306å‡å°‘很多带宽å 用åQŒäºŽæ˜¯è´Ÿè½½ä¸€ä¸‹å°±åˆîCº†åŽç«¯åQŒåŽç«¯çš„æ•°æ®å¤„ç†ç“‰™¢ˆä¸€ä¸‹å°±å‡ºæ¥ã€‚äºŽæ˜¯ä½ ä¼šçœ‹åˆ°å¾ˆå¤šhttp 500之类的错误。这说明æœåŠ¡å™¨åž®äº†ã€?
å››ã€å‰ç«¯é¡µé¢é™æ€åŒ–
陿€åŒ–一些ä¸è§‰å˜çš„页é¢å’Œæ•°æ®åQŒåƈgzipä¸€ä¸‹ã€‚è¿˜æœ‰ä¸€ä¸ªåÆˆæ€çš„æ–ÒŽ(gu¨©)³•是把˜q™äº›é™æ€é¡µé¢æ”¾åœ?dev/shm下,˜q™ä¸ªç›®å½•ž®±æ˜¯å†…å˜åQŒç›´æŽ¥ä»Žå†…å˜ä¸æŠŠæ–‡äšgè¯Õd‡ºæ¥è¿”回,˜q™æ ·å¯ä»¥å‡å°‘昂贵的ç£ç›˜I(y¨¨)/Oã€?
五ã€ä¼˜åŒ–查è¯?/h5>
很多人查询都是在查一æ ïLš„åQŒå®Œå…¨å¯ä»¥ç”¨åå‘代ç†åˆåƈ˜q™äº›òq¶å‘的相åŒçš„æŸ¥è¯¢ã€‚è¿™æ ïLš„æŠ€æœ¯ä¸»è¦ç”¨æŸ¥è¯¢¾l“æžœ¾~“å˜æ¥å®žçŽŽÍ¼Œ½W¬ä¸€‹Æ¡æŸ¥è¯¢èµ°æ•°æ®åº“获得数æ®ï¼Œòq¶æŠŠ æ•°æ®æ”‘Öˆ°¾~“å˜åQŒåŽé¢çš„æŸ¥è¯¢¾lŸç»Ÿç›´æŽ¥è®‰K—®é«˜é€Ÿç¼“å˜ã€‚䨓æ¯ä¸ªæŸ¥è¯¢åšHashåQŒä‹É用NoSQL的技术å¯ä»¥å®Œæˆè¿™ä¸ªä¼˜åŒ–。(˜q™ä¸ªæŠ€æœ¯ä¹Ÿå¯ä»¥ç”¨åšé™æ€é¡µé¢ï¼‰
对于ç«èžR¼œ¨é‡çš„æŸ¥è¯¢ï¼Œä¸ªäh觉得ä¸è¦æ˜„¡¤ºæ•°å—åQŒå°±æ˜„¡¤ºä¸€ä¸?#8220;æœ?#8221;æˆ?#8220;æ—?#8221;ž®±å¥½äº†ï¼Œ˜q™æ ·å¯ä»¥å¤§å¤§½Ž€åŒ–ç³»¾lŸå¤æ‚度åQŒåƈæå‡æ€§èƒ½ã€?
å…ã€ç¼“å˜çš„问题
¾~“å˜å¯ä»¥ç”¨æ¥¾~“å˜åЍæ€é¡µé¢ï¼Œä¹Ÿå¯ä»¥ç”¨æ¥ç¼“å˜æŸ¥è¯¢çš„æ•°æ®ã€‚缓å˜é€šå¸¸æœ‰é‚£ä¹ˆå‡ 个问题:
1åQ‰ç¼“å˜çš„æ›´æ–°ã€‚也å«ç¼“å˜å’Œæ•°æ®åº“çš„åŒæ¥ã€‚有˜q™ä¹ˆå‡ ç§æ–ÒŽ(gu¨©)³•åQŒä¸€æ˜¯ç¼“å˜time outåQŒè®©¾~“å˜å¤±æ•ˆåQŒé‡æŸ¥ï¼ŒäºŒæ˜¯åQŒç”±åŽç«¯é€šçŸ¥æ›´æ–°åQŒä¸€é‡åŽç«¯å‘生å˜åŒ–,通知å‰ç«¯æ›´æ–°ã€‚å‰è€…实现è“væ¥æ¯”较简å•,但实时性ä¸é«˜ï¼ŒåŽè€…实现è“væ¥æ¯”è¾ƒå¤æ?åQŒä½†å®žæ—¶æ€§é«˜ã€?
2åQ‰ç¼“å˜çš„æ¢é¡µã€‚å†…å˜å¯èƒ½ä¸å¤Ÿï¼Œæ‰€ä»¥ï¼Œéœ€è¦æŠŠä¸€äº›ä¸‹z»è·ƒçš„æ•°æ®æ¢å‡ºå†…å˜ï¼Œ˜q™ä¸ªå’Œæ“作系¾lŸçš„å†…å˜æ¢é¡µå’Œäº¤æ¢å†…å˜å¾ˆç›æ€¼¼ã€‚FIFOã€LRUã€LFU都是比较¾l典的梙å늮—法。相兛_†…容å‚çœ?a target="_blank">Wikipeida的缓å˜ç®—æ³?/a>ã€?
3åQ‰ç¼“å˜çš„é‡å¾å’ŒæŒä¹…化。缓å˜åœ¨å†…å˜åQŒç³»¾lŸæ€»è¦¾l´æŠ¤åQŒæ‰€ä»¥ï¼Œ¾~“嘞®×ƒ¼šä¸¢å¤±åQŒå¦‚æžœç¼“å˜æ²¡äº†ï¼Œž®±éœ€è¦é‡å»ºï¼Œå¦‚果数æ®é‡å¾ˆå¤§ï¼Œ¾~“å˜é‡å¾çš„过½E‹ä¼šå¾ˆæ…¢åQŒè¿™ä¼šåª„å“生产环境,所以,¾~“å˜çš„æŒä¹…åŒ–ä¹Ÿæ˜¯éœ€è¦è€ƒè™‘çš„ã€?
诸多强大的NoSQL都很好支æŒäº†ä¸Šè¿°ä¸‰å¤§¾~“å˜çš„问题ã€?
åŽç«¯æ€§èƒ½ä¼˜åŒ–技æœ?/h4>
å‰é¢è®¨è®ºäº†å‰ç«¯æ€§èƒ½çš„优化技术,于是å‰ç«¯å¯èƒ½ž®×ƒ¸æ˜¯ç“¶é¢ˆé—®é¢˜äº†ã€‚那么性能问题ž®×ƒ¼šåˆ°åŽç«¯æ•°æ®ä¸Šæ¥äº†ã€‚下é¢è¯´å‡ 个åŽç«¯å¸¸è§çš„æ€§èƒ½ä¼˜åŒ–技术ã€?
ä¸€ã€æ•°æ®å†—ä½?/h5>
关于数æ®å†—ä½™åQŒä¹Ÿž®±æ˜¯è¯ß_¼ŒæŠŠæˆ‘们的数æ®åº“的数æ®å†—余处ç†åQŒä¹Ÿž®±æ˜¯å‡å°‘表连接这æ ïLš„开销比较大的æ“作åQŒä½†˜q™æ ·ä¼šç‰ºç‰²æ•°æ®çš„一致性。风险比较大。很多äh 把NoSQLç”¨åšæ•°æ®åQŒå¿«æ˜¯å¿«äº†ï¼Œå› äØ“æ•°æ®å†—余了,但这å¯ÒŽ(gu¨©)•°æ®ä¸€è‡´æ€§æœ‰å¤§çš„é£Žé™©ã€‚è¿™éœ€è¦æ ¹æ®ä¸åŒçš„业务˜q›è¡Œåˆ†æžå’Œå¤„ç†ã€‚(注æ„åQšç”¨å…³ç³»åž‹æ•°æ®åº“很容易移æ¤?到NoSQL上,但是å过æ¥ä»ŽNoSQL到关¾pÕdž‹ž®±éš¾äº†ï¼‰
äºŒã€æ•°æ®é•œåƒ?/h5>
å‡ ä¹Žæ‰€æœ‰ä¸»‹¹çš„æ•°æ®åº“都支æŒé•œåƒåQŒä¹Ÿž®±æ˜¯replication。数æ®åº“的镜åƒå¸¦æ¥çš„好处ž®±æ˜¯å¯ä»¥åšè´Ÿè½½å‡è¡¡ã€‚æŠŠä¸€å°æ•°æ®åº“的负载å‡åˆ†åˆ°å¤šå°ä¸Šï¼ŒåŒæ—¶åˆä¿è¯äº†æ•°æ®ä¸€è‡´æ€§ï¼ˆOracleçš„SCNåQ‰ã€‚最é‡è¦çš„æ˜¯åQŒè¿™æ ¯‚¿˜å¯ä»¥æœ‰é«˜å¯ç”¨æ€§ï¼Œä¸€å°åºŸäº†ï¼Œ˜q˜æœ‰å¦ä¸€å°åœ¨æœåŠ¡ã€?
æ•°æ®é•œåƒçš„æ•°æ®ä¸€è‡´æ€§å¯èƒ½æ˜¯ä¸ªé—®é¢˜ï¼Œæ‰€ä»¥æˆ‘们è¦å§åœ¨å•æ¡æ•°æ®ä¸Šè¿›è¡Œæ•°æ®åˆ†åŒºï¼Œä¹Ÿå°±æ˜¯è¯´åQŒæŠŠä¸€ä¸ªç•…销商å“的库å˜å‡åˆ†åˆ°ä¸åŒçš„æœåŠ¡å™¨ä¸Šï¼Œå¦‚ï¼Œä¸€ä¸ªç•…é”€å•†å“æœ?万的库å˜åQŒæˆ‘们å¯ä»¥è®¾¾|?0å°æœåС噍åQŒæ¯å°æœåŠ¡å™¨ä¸Šæœ‰100个库å˜ï¼Œ˜q™å°±å¥½åƒB2Cçš„ä»“åº“ä¸€æ —÷€?
ä¸‰ã€æ•°æ®åˆ†åŒ?/h5>
æ•°æ®é•œåƒä¸èƒ½è§£å†³çš„一个问题就是数æ®è¡¨é‡Œçš„记录太多åQŒå¯¼è‡´æ•°æ®åº“æ“作太慢。所以,把数æ®åˆ†åŒºã€‚æ•°æ®åˆ†åŒºæœ‰å¾ˆå¤š¿Uåšæ³•,一般æ¥è¯´æœ‰ä¸‹é¢˜q™å‡ ¿U:
1åQ‰æŠŠæ•°æ®æŠŠæŸ¿U逻辑æ¥åˆ†¾c…R€‚比如ç«è½¦ç¥¨çš„订¼œ¨ç³»¾lŸå¯ä»¥æŒ‰å„é“路局æ¥åˆ†åQŒå¯æŒ‰å„¿UèžR型分åQŒå¯ä»¥æŒ‰å§‹å‘站分åQŒå¯ä»¥æŒ‰ç›®çš„地分……åQŒåæ£å°±æ˜¯æŠŠä¸€å¼ 表拆æˆå¤šå¼ 有一æ ïLš„å—æ®µä½†æ˜¯ä¸åŒ¿U类的表åQŒè¿™æ øP¼Œ˜q™äº›è¡¨å°±å¯ä»¥å˜åœ¨ä¸åŒçš„æœºå™¨ä¸Šä»¥è¾¾åˆ°åˆ†æ‹…负载的目的ã€?
2åQ‰æŠŠæ•°æ®æŒ‰å—ŒDµåˆ†åQŒä¹Ÿž®±æ˜¯åšç€åˆ†è¡¨ã€‚比如把一些举lå¸¸æ”¹çš„æ•°æ®æ”‘Öœ¨ä¸€ä¸ªè¡¨é‡Œï¼Œ¾lå¸¸æ”¹çš„æ•°æ®æ”‘Öœ¨å¦ä¸€ä¸ªè¡¨é‡Œã€‚æŠŠä¸€å¼ è¡¨å˜æˆ1å¯?的关¾p»ï¼Œ˜q™æ ·åQŒä½ å?以凞®‘表的嗌Dµä¸ªæ•ŽÍ¼ŒåŒæ ·å¯ä»¥æå‡ä¸€å®šçš„æ€§èƒ½ã€‚å¦å¤–ï¼Œå—æ®µå¤šä¼šé€ æˆä¸€æ¡è®°å½•çš„å˜å‚¨ä¼šè¢«æ”‘Öˆ°ä¸åŒçš„页表里åQŒè¿™å¯¹äºŽè¯Õd†™æ€§èƒ½éƒ½æœ‰é—®é¢˜ã€?
3åQ‰åã^å‡åˆ†è¡¨ã€‚å› ä¸ºç¬¬ä¸€¿U方法是òq¶ä¸ä¸€å®šåã^å‡åˆ†å‡ï¼Œå¯èƒ½æŸä¸ª¿U类的数æ®è¿˜æ˜¯å¾ˆå¤šã€‚所以,也有采用òq›_‡åˆ†é…的方å¼ï¼Œé€šè¿‡ä¸»é”®ID的范围æ¥åˆ†è¡¨ã€?
4åQ‰åŒä¸€æ•°æ®åˆ†åŒºã€‚è¿™ä¸ªåœ¨ä¸Šé¢æ•°æ®é•œåƒæè¿‡ã€‚也ž®±æ˜¯æŠŠåŒä¸€å•†å“的库å˜å€¼åˆ†åˆîC¸åŒçš„æœåŠ¡å™¨ä¸ŠåQŒæ¯”如有10000个库å˜ï¼Œå¯ä»¥åˆ†åˆ°10å°æœåŠ¡å™¨ä¸Šï¼Œä¸€åîC¸Šæœ?000个库å˜ã€‚ç„¶åŽè´Ÿè½½å‡è¡¡ã€?
˜q™ä¸‰¿U分区都有好有å。最常用的还是第一¿U。数æ®ä¸€é‡åˆ†åŒºï¼Œä½ å°±éœ€è¦æœ‰ä¸€ä¸ªæˆ–是多个调度æ¥è®©ä½ çš„å‰ç«¯ç¨‹åºçŸ¥é“去哪里找数æ®ã€?strong>把ç«è½¦ç¥¨çš„æ•°æ®åˆ†åŒºï¼Œòq¶æ”¾åœ¨å„个çœå¸‚,会对12306˜q™ä¸ª¾pÈ»Ÿæœ‰éžå¸¸æœ‰æ„义的质的性能的æé«?/strong>ã€?
å››ã€åŽç«¯ç³»¾lŸè´Ÿè½½å‡è¡?/h5>
å‰é¢è¯´äº†æ•°æ®åˆ†åŒºåQŒæ•°æ®åˆ†åŒºå¯ä»¥åœ¨ä¸€å®šç¨‹åº¦ä¸Šå‡è½»è´Ÿè²åQŒä½†æ˜¯æ— 法å‡è½Èƒé”€å•†å“的负载,对于ç«èžR¼œ¨æ¥è¯ß_¼Œå¯ä»¥è®¤äؓ是大城市的æŸäº›ä¸»òq²çº¿ä¸Šçš„车票。这ž®?需è¦ä‹É用数æ®é•œåƒæ¥å‡è½»è´Ÿè²ã€‚ä‹É用数æ®é•œåƒï¼Œä½ å¿…ç„¶è¦ä½¿ç”¨è´Ÿè²å‡è¡¡åQŒåœ¨åŽç«¯åQŒæˆ‘们å¯èƒ½å¾ˆéš¾ä‹É用åƒè·¯ç”±å™¨ä¸Šçš„è´Ÿè½½å‡è¡¡å™¨åQŒå› 为那是å‡è¡¡æµé‡çš„åQŒå› 为æµé‡åƈä¸?代表æœåŠ¡å™¨çš„¾Jå¿™½E‹åºã€‚å› æ¤ï¼Œæˆ‘们需è¦ä¸€ä¸ªä“Q务分é…ç³»¾lŸï¼Œå…¶è¿˜èƒ½ç›‘控å„个æœåŠ¡å™¨çš„è´Ÿè½½æƒ…å†üc€?
ä»ÕdŠ¡åˆ†é…æœåŠ¡å™¨æœ‰ä¸€äº›éš¾ç‚¹ï¼š
- è´Ÿè²æƒ…å†µæ¯”è¾ƒå¤æ‚。什么å«å¿™ï¼Ÿæ˜¯CPU高?˜q˜æ˜¯¼‚盘I(y¨¨)/O高?˜q˜æ˜¯å†…å˜ä½¿ç”¨é«˜ï¼Ÿ˜q˜æ˜¯òq¶å‘é«˜ï¼Ÿä½ å¯èƒ½éœ€è¦å…¨éƒ¨éƒ½è¦è€ƒè™‘。这些信æ¯è¦å‘é€ç»™é‚£ä¸ªä»ÕdŠ¡åˆ†é…器上åQŒç”±ä»ÕdŠ¡åˆ†é…器挑选一å°è´Ÿè½½æœ€è½Èš„æœåŠ¡å™¨æ¥å¤„ç†ã€?/li>
- ä»ÕdŠ¡åˆ†é…æœåŠ¡å™¨ä¸Šéœ€è¦å¯¹ä»ÕdŠ¡é˜Ÿåˆ—åQŒä¸èƒ½ä¸¢ä»ÕdŠ¡å•Šï¼Œæ‰€ä»¥è¿˜éœ€è¦æŒä¹…åŒ–ã€‚åÆˆä¸”å¯ä»¥ä»¥æ‰šw‡çš„æ–¹å¼æŠŠä»ÕdŠ¡åˆ†é…¾l™è®¡½Ž—æœåС噍ã€?/li>
- ä»ÕdŠ¡åˆ†é…æœåС噍æ»äº†æ€Žä¹ˆåŠžï¼Ÿ˜q™é‡Œéœ€è¦ä¸€äº›å¦‚Live-Standby或是failover½{‰é«˜å¯ç”¨æ€§çš„æŠ€æœ¯ã€‚æˆ‘ä»¬è¿˜éœ€è¦æ³¨æ„那些æŒä¹…化了的ä»ÕdŠ¡çš„é˜Ÿåˆ—å¦‚æžœè{¿UÕdˆ°åˆ«çš„æœåŠ¡å™¨ä¸Šçš„é—®é¢˜ã€?/li>
我看到有很多¾pÈ»Ÿéƒ½ç”¨é™æ€çš„æ–¹å¼æ¥åˆ†é…,有的用hashåQŒæœ‰çš„å°±½Ž€å•地轮æµåˆ†æžã€‚这些都ä¸å¤Ÿå¥½ï¼Œä¸€ä¸ªæ˜¯ä¸èƒ½å®Œç¾Žåœ°è´Ÿè½½å‡è¡¡ï¼Œå¦ä¸€ä¸ªé™æ€çš„æ–ÒŽ(gu¨©)³•的致命缺é™äh˜¯åQŒå¦‚果有一å°è®¡½Ž—æœåС噍æÀLœºäº†ï¼Œæˆ–是我们需è¦åŠ å…¥æ–°çš„æœåС噍åQŒå¯¹äºŽæˆ‘们的分é…器æ¥è¯ß_¼Œéƒ½éœ€è¦çŸ¥é“ã€?
˜q˜æœ‰ä¸€¿U方法是使用抢å å¼çš„æ–¹å¼˜q›è¡Œè´Ÿè²å‡è¡¡åQŒç”±ä¸‹æ¸¸çš„计½Ž—æœåС噍åŽÖM“Q务æœåŠ¡å™¨ä¸Šæ‹¿ä»ÕdŠ¡ã€‚è®©˜q™äº›è®¡ç®—æœåŠ¡å™¨è‡ªå·±å†³å®šè‡ªå·±æ˜¯å¦è¦ä»ÕdŠ¡ã€‚è¿™æ ïLš„å¥½å¤„æ˜¯å¯ ä»¥ç®€åŒ–ç³»¾lŸçš„夿‚度,而且˜q˜å¯ä»¥ä“Qæ„实时地å‡å°‘æˆ–å¢žåŠ è®¡½Ž—æœåŠ¡å™¨ã€‚ä½†æ˜¯å”¯ä¸€ä¸å¥½çš„就是,如果有一些ä“Q务åªèƒ½åœ¨æŸç§æœåŠ¡å™¨ä¸Šå¤„ç†åQŒè¿™å¯èƒ½ä¼šå¼•å…¥ä¸€äº›å¤æ‚度ã€?ä¸è¿‡æ€ÖM½“æ¥è¯´åQŒè¿™¿U方法å¯èƒ½æ˜¯æ¯”较好的负è²å‡è¡¡ã€?
五ã€å¼‚æ¥ã€?throttle å’?扚w‡å¤„ç†
异æ¥ã€throttleåQˆèŠ‚‹¹é˜€åQ?和批é‡å¤„ç†éƒ½éœ€è¦å¯¹òq¶å‘è¯äh±‚æ•°åšé˜Ÿåˆ—处ç†çš„ã€?
- 异æ¥åœ¨ä¸šåŠ¡ä¸Šä¸€èˆ¬æ¥è¯´å°±æ˜¯æ”¶é›†è¯·æ±‚,然åŽå»¶æ—¶å¤„ç†ã€‚在技术上ž®±æ˜¯å¯ä»¥æŠŠå„个处ç†ç¨‹åºåšæˆåƈ行的åQŒä¹Ÿž®±å¯ä»¥æ°´òqÏx‰©å±•了。但是异æ¥çš„æŠ€æœ¯é—®é¢˜å¤§æ¦‚有 ˜q?些,aåQ‰è¢«è°ƒç”¨æ–¹çš„¾l“æžœ˜q”回åQŒä¼šæ¶‰åŠ˜q›ç¨‹¾U¿ç¨‹é—´é€šä¿¡çš„问题。båQ‰å¦‚果程åºéœ€è¦å›žæ»šï¼Œå›žæ»šä¼šæœ‰ç‚¹å¤æ‚。cåQ‰å¼‚æ¥é€šå¸¸éƒ½ä¼šä¼´éšå¤šçº¿½E‹å¤š˜q›ç¨‹åQŒåƈå‘的控制也相å¯?éºÈƒ¦ä¸€äº›ã€‚dåQ‰å¾ˆå¤šå¼‚æ¥ç³»¾lŸéƒ½ç”¨æ¶ˆæ¯æœºåˆÓž¼Œæ¶ˆæ¯çš„丢失和乱åºä¹Ÿä¼šæ˜¯æ¯”è¾ƒå¤æ‚的问题ã€?/li>
- throttle æŠ€æœ¯å…¶å®žåÆˆä¸æå‡æ€§èƒ½åQŒè¿™ä¸ªæŠ€æœ¯ä¸»è¦æ˜¯é˜²æ¢¾pÈ»Ÿè¢«è¶…˜q‡è‡ªå·×ƒ¸èƒ½å¤„ç†çš„‹¹é‡¾l™æžåž®äº†åQŒè¿™å…¶å®žæ˜¯ä¸ªä¿æŠ¤æœºåˆ¶ã€‚ä‹É用throttle技术一般æ¥è¯´æ˜¯å¯¹äºŽä¸€äº›è‡ªå·±æ— 法控制的¾pÈ»ŸåQŒæ¯”å¦‚ï¼Œå’Œä½ ¾|‘ç«™å¯ÒŽ(gu¨©)Ž¥çš„é“¶è¡Œç³»¾lŸã€?/li>
- 扚w‡å¤„ç†çš„æŠ€æœ¯ï¼Œæ˜¯æŠŠä¸€å †åŸºæœ¬ç›¸åŒçš„è¯äh±‚扚w‡å¤„ç†ã€‚æ¯”å¦‚ï¼Œå¤§å®¶åŒæ—¶è´ä¹°åŒä¸€ä¸ªå•†å“,没有必è¦ä½ 买一个我ž®±å†™ä¸€‹Æ¡æ•°æ®åº“åQŒå®Œå…¨å¯ä»¥æ”¶é›†åˆ°ä¸€å®šæ•°é‡?çš?è¯äh±‚åQŒä¸€‹Æ¡æ“作。这个技术å¯ä»¥ç”¨ä½œå¾ˆå¤šæ–¹é¢ã€‚比如节çœç½‘¾lœå¸¦å®½ï¼Œæˆ‘们都知é“网¾lœä¸Šçš„MTUåQˆæœ€å¤§ä¼ 输å•元)åQŒä»¥æ€ç½‘æ˜?500å—节åQŒå…‰¾U¤å¯ä»¥è¾¾åˆ?000 多个å—节åQŒå¦‚æžœä½ çš„ä¸€ä¸ªç½‘¾lœåŒ…没有放满˜q™ä¸ªMTUåQŒé‚£ž®±æ˜¯åœ¨æµªè´¹ç½‘¾lœå¸¦å®½ï¼Œå› 䨓¾|‘å¡çš„驱动程åºåªæœ‰ä¸€å—一å—地è¯ÀL•ˆçއæ‰ä¼šé«˜ã€‚å› æ¤ï¼Œ¾|‘络å‘包æ—Óž¼Œæˆ‘ä»¬éœ€è¦æ”¶ 集到‘›_¤Ÿå¤šçš„ä¿¡æ¯åŽå†åšç½‘¾lœI/OåQŒè¿™ä¹Ÿæ˜¯ä¸€¿U批é‡å¤„ç†çš„æ–¹å¼ã€‚批é‡å¤„ç†çš„æ•Œäh是æµé‡ä½ŽåQŒæ‰€ä»¥ï¼Œæ‰šw‡å¤„ç†çš„ç³»¾lŸä¸€èˆ¬éƒ½ä¼šè®¾¾|®ä¸Šä¸¤ä¸ªé˜€å€û|¼Œä¸€ä¸ªæ˜¯ä½œä¸šé‡ï¼Œå?一个是timeoutåQŒåªè¦æœ‰ä¸€ä¸ªæ¡ä»¶æ»¡‘»I¼Œž®×ƒ¼šå¼€å§‹æäº¤å¤„ç†ã€?/li>
所以,åªè¦æ˜¯å¼‚æ¥ï¼Œä¸€èˆ¬éƒ½ä¼šæœ‰throttle机制åQŒä¸€èˆ¬éƒ½ä¼šæœ‰é˜Ÿåˆ—æ¥æŽ’é˜Ÿï¼Œæœ‰é˜Ÿåˆ—ï¼Œž®×ƒ¼šæœ‰æŒä¹…化åQŒè€Œç³»¾lŸä¸€èˆ¬éƒ½ä¼šä‹É用批é‡çš„æ–¹å¼æ¥å¤„ç?/strong>ã€?
云风åŒå¦è®¾è®¡çš?#8220;排队¾pÈ»Ÿ” ž®±æ˜¯˜q™ä¸ªæŠ€æœ¯ã€‚这和电(sh¨´)å商务的订啾pÈ»Ÿå¾ˆç›¸ä¼û|¼Œž®±æ˜¯è¯ß_¼Œæˆ‘çš„¾pÈ»Ÿæ”¶åˆ°äº†ä½ 的贼œ¨ä¸‹å•请求,但是我还没有真æ£å¤„ç†åQŒæˆ‘的系¾lŸä¼šè·Ÿæ®æˆ‘自å·Þqš„处ç†èƒ½åŠ›æ¥throttleä½è¿™äº›å¤§é‡çš„è¯äh±‚åQŒåƈ一点一点地处ç†ã€‚一旦处ç†å®Œæˆï¼Œæˆ‘å°±å¯ä»¥å‘邮件或çŸä¿¡å‘Šè¯‰ç”¨æˆ·ä½ æ¥å¯ä»¥çœŸæ£è´ç¥¨äº†ã€?
在这里,我想通过业务和用户需求方é¢è®¨è®ÞZ¸€ä¸‹äº‘风åŒå¦çš„˜q™ä¸ªæŽ’队¾pÈ»ŸåQŒå› 为其从技术上看似解决了这个问题,但是从业务和用户需求上æ¥è¯´å¯èƒ½˜q˜æ˜¯æœ‰ä¸€äº›å€¼å¾—我们åŽÀL·±å…¥æ€è€ƒçš„地方åQ?
1åQ?strong>队列的DoSæ”Õd‡»ã€‚首先,我们æ€è€ƒä¸€ä¸‹ï¼Œ˜q™ä¸ªé˜?是个å•纯地排队的å—?˜q™æ ·åšè¿˜ä¸å¤Ÿå¥½ï¼Œå› 䨓˜q™æ ·æˆ‘们ä¸èƒ½æœç»é»„牛åQŒè€Œä¸”å•纯的ticket_id很容易å‘生DoSæ”Õd‡»åQŒæ¯”如,我å‘èµ·Nä¸?ticket_idåQŒè¿›å…¥è´¼œ¨æµ½E‹åŽåQŒæˆ‘ä¸ä¹°åQŒæˆ‘ž®Þp€—ä½ åŠä¸ªž®æ—¶åQŒå¾ˆå®ÒŽ(gu¨©)˜“我就å¯ä»¥è®©æƒ³ä¹°ç¥¨çš„ähå‡ å¤©éƒ½ä¹°ä¸åˆ°¼œ¨ã€‚æœ‰äºø™¯´åQŒç”¨æˆ·åº”该è¦ç”¨èínä»½è¯æ¥æŽ’队, ˜q™æ ·åœ¨è´ä¹°é‡Œž®±å¿…需è¦ç”¨˜q™ä¸ªíw«ä†¾è¯æ¥ä¹ŽÍ¼Œä½†è¿™ä¹Ÿè¿˜ä¸èƒ½æœç»é»„牛排队或是寂´©åã€‚å› ä¸ÞZ»–们å¯ä»¥æ³¨å†ŒN个å¸åäh¥æŽ’队åQŒä½†ž®±æ˜¯ä¸ä¹°ã€‚黄牛这些äh˜q™ä¸ªæ—¶å€™åªéœ€è¦å¹² 一个事åQŒæŠŠ¾|‘ç«™æžå¾—æ£å¸¸ä¸èƒ½è®‰K—®åQŒè®©ç”¨æˆ·åªèƒ½é€šè¿‡ä»–们æ¥ä¹°ã€?
2åQ?strong>对列的一致æ€?/strong>åQŸå¯¹˜q™ä¸ªé˜Ÿåˆ—çš„æ“ä½œæ˜¯ä¸æ˜¯éœ€è¦é”åQŸåªè¦æœ‰é”,性能一定上ä¸åŽ»ã€‚è¯•æƒ»I¼Œ100ä¸‡ä¸ªäººåŒæ—¶è¦æ±‚ä½ æ¥åˆ†é…ä½¾|®å·åQŒè¿™ä¸ªé˜Ÿåˆ—将会æˆä¸ºæ€§èƒ½ç“‰™¢ˆã€‚ä½ ä¸€å®šæ²¡æœ‰æ•°æ®åº“实现得性能好,所以,å¯èƒ½æ¯”现在还å·?
3åQ?strong>队列的ç‰å¾…æ—¶é—?/strong>。贼œ¨æ—¶é—´åŠž®æ—¶å¤Ÿä¸å¤Ÿï¼Ÿå¤šä¸ å¤šï¼Ÿè¦æ˜¯é‚£æ—¶ç”¨æˆ·æ£å¥½ä¸èƒ½ä¸Šç½‘呢?如果旉™—´çŸäº†åQŒç”¨æˆ·ä¹Ÿä¼šæŠ±æ€¨ï¼Œå¦‚果旉™—´é•¿äº†åQŒåŽé¢åœ¨æŽ’队的那些äh也会抱怨。这个方法å¯èƒ½åœ¨å®žé™…æ“ä½œä¸Šä¼šæœ‰å¾ˆå¤šé—®é¢˜ã€‚å¦ å¤–ï¼ŒåŠä¸ªž®æ—¶å¤ªé•¿äº†ï¼Œ˜q™å®Œå…¨ä¸çŽ°å®žåQŒæˆ‘们用15分钟æ¥ä‹D例:æœ?åƒä¸‡ç”¨æˆ·åQŒæ¯ä¸€ä¸ªæ—¶åˆÕdªèƒ½æ”¾˜q›åŽ»1万个åQŒè¿™1万个用户需è¦?5åˆ†é’Ÿå®Œæˆæ‰€æœ‰æ“作,那么åQŒè¿™ 1åƒä¸‡ç”¨æˆ·å…¨éƒ¨å¤„ç†å®Œï¼Œéœ€è¦?000*15m = 250ž®æ—¶åQ?0天åŠåQŒç«è½¦æ—©å¼€äº†ã€‚ï¼ˆæˆ‘åÆˆä¹Þp¯´åQ?a target="_blank">æ ÒŽ(gu¨©)®é“é“部专家的说明åQšè¿™å‡ 天åQŒåã^å‡ä¸€å¤©ä¸‹å?00万,所以,处ç†1000万的用户需è¦å天。这个计½Ž—å¯èƒ½æœ‰ç‚¹ç®€å•了åQŒæˆ‘åªæ˜¯æƒŒ™¯´åQ?strong>åœ¨è¿™æ ·ä½Žè´Ÿè²çš„ç³»¾lŸä¸‹ç”¨æŽ’队å¯èƒ½éƒ½ä¸èƒ½è§£å†³é—®é¢˜åQ?
4åQ?strong>队列的分分å¼ã€‚这个排队系¾lŸåªæœ‰ä¸€ä¸ªé˜Ÿåˆ—好å—? ˜q˜ä¸‘›_¤Ÿå¥½ã€‚å› ä¸ºï¼Œå¦‚æžœä½ æ”¾˜q›åŽ»çš„å¯ä»¥è´¼œ¨çš„人如果在买åŒä¸€ä¸ªèžR‹Æ¡çš„åŒæ ·çš„类型的¼œ¨ï¼ˆæ¯”如æŸåŠ¨è½¦å§é“ºï¼‰åQŒè¿˜æ˜¯ç‰äºŽåœ¨æŠ¢ç¥¨åQŒä¹Ÿž®±æ˜¯è¯´ç³»¾lŸçš„负貘q˜æ˜¯ä¼šæœ‰å¯èƒ½ 集ä¸åˆ°å…¶ä¸æŸå°æœåŠ¡å™¨ä¸Šã€‚å› æ¤ï¼Œæœ€å¥½çš„æ–ÒŽ(gu¨©)³•æ˜¯æ ¹æ®ç”¨æˆïLš„需æ±?#8212;—æä¾›å‡ºå‘地和目的圎ͼŒæ¥å¯¹ç”¨æˆ·˜q›è¡ŒæŽ’é˜Ÿã€‚è€Œè¿™æ ·ä¸€æ¥ï¼Œé˜Ÿåˆ—也就å¯ä»¥æ˜¯å¤šä¸ªï¼Œåªè¦æ˜¯å¤šä¸ªé˜Ÿ 列,ž®±å¯ä»¥æ°´òqÏx‰©å±•了ã€?
我觉得完全å¯ä»¥å‘¾|‘上è´ç‰©å¦ä¹ 。在排队åQˆä¸‹å•)的时候,攉™›†å¥½ç”¨æˆïLš„ä¿¡æ¯å’Œæƒ³è¦ä¹°çš„票åQŒåƈå…许用户讄¡½®è´ç¥¨çš„优先çñ”åQŒæ¯”如,A车次å§é“ºä¹?ä¸åˆ°ž®×ƒ¹° B车次的å§é“ºï¼Œå¦‚æžœ˜q˜ä¹°ä¸åˆ°ž®×ƒ¹°¼‹¬åñ”½{‰ç‰åQŒç„¶åŽç”¨æˆähŠŠæ‰€éœ€çš„é’±å…ˆå……å€¼å¥½åQŒæŽ¥ä¸‹æ¥ž®±æ˜¯¾pÈ»Ÿå®Œå…¨è‡ªåŠ¨åœ°å¼‚æ¥å¤„ç†è®¢å•。æˆåŠŸä¸æˆåŠŸéƒ½å‘çŸä¿¡æˆ–邮仉™€šçŸ¥ç”¨æˆ·ã€‚è¿™ æ øP¼Œ¾pÈ»Ÿä¸ä»…å¯ä»¥çœå޻那åŠä¸ªå°æ—¶çš„用户交互旉™—´åQŒè‡ªåŠ¨åŒ–åŠ å¿«å¤„ç†åQŒè¿˜å¯ä»¥åˆåƈ相åŒè´ç¥¨è¯äh±‚çš„ähåQŒè¿›è¡Œæ‰¹å¤„ç†åQˆå‡ž®‘æ•°æ®åº“çš„æ“作次敎ͼ‰ã€‚è¿™¿U方法最妙的事是 å¯ä»¥çŸ¥é“˜q™äº›æŽ’队用户的需求,ä¸ä½†å¯ä»¥ä¼˜åŒ–用户的队列,把用户分布到ä¸åŒçš„队列,˜q˜å¯ä»¥åƒäºšé©¬é€Šçš„心愿å•ä¸€æ øP¼Œè®©é“é“部åšèžR‹Æ¡ç»Ÿ½{¹å®‰æŽ’和调整åQˆæœ€åŽï¼ŒæŽ’队 ¾pÈ»ŸåQˆä¸‹å•ç³»¾lŸï¼‰˜q˜æ˜¯è¦ä¿å˜åœ¨æ•°æ®åº“é‡Œçš„æˆ–åšæŒä¹…化åQŒä¸èƒ½åªæ”‘Öœ¨å†…å˜ä¸ï¼Œä¸ç„¶æœºå™¨ä¸€downåQŒå°±½{‰ç€è¢«éª‚å§ï¼‰ã€?
ž®ç»“
写了那么多,我尾l“一下:
0åQ‰æ— è®ÞZ½ 怎么设计åQŒä½ 的系¾lŸä¸€å®šè¦èƒ½å®¹æ˜“地水åã^扩展。也ž®±æ˜¯è¯ß_¼Œä½ 的整个数残¹ä¸åQŒæ‰€æœ‰çš„环节都è¦èƒ½å¤Ÿæ°´åã^æ‰©å±•ã€‚è¿™æ øP¼Œå½“ä½ çš„ç³»¾lŸæœ‰æ€§èƒ½é—®é¢˜æ—Óž¼Œ“åŠ?å€çš„æœåŠ¡å™?#8221;æ‰ä¸ä¼šè¢«äºø™®¥½W‘ã€?
1åQ‰ä¸Š˜q°çš„æŠ€æœ¯ä¸æ˜¯ä¸€æœä¸€å¤•能æžå®šçš„ï¼Œæ²¡æœ‰é•¿æœŸçš„ç§¯ç´¯ï¼ŒåŸºæœ¬æ— æœ›ã€?
2åQ‰é›†ä¸å¼çš„å–¼œ¨å¾ˆéš¾æžå®šï¼Œä½¿ç”¨ä¸Šè¿°çš„æŠ€æœ¯å¯ä»¥è®©è®¢ç¥¨¾pÈ»Ÿèƒ½æœ‰å‡ 䘪å€çš„æ€§èƒ½æå‡ã€‚而在å„个çœå¸‚建分站,分开å–票åQŒæ˜¯èƒ½è®©çŽ°æœ‰¾pÈ»Ÿæ€§èƒ½æœ‰è´¨çš„æå‡çš„æœ€å¥½æ–¹æ³•ã€?
3åQ‰æ˜¥˜qå‰å¤•抢¼œ¨ä¸”¼œ¨é‡ä¾›è¿œž®äºŽæ±‚è¿™¿Uä¸šåŠ¡æ¨¡å¼æ˜¯ç›¸å½“å˜æ€çš„åQŒè®©å‡ åƒä¸‡ç”šè‡³ä¸Šäº¿çš„人在æŸä¸ªæ—©æ™¨çš?炚w’ŸåŒæ—¶ç™Õd½•åŒæ—¶æŠ¢ç¥¨çš„è¿™¿Uä¸šåŠ¡æ¨¡å¼æ˜¯å˜æ€ä¸çš„å˜æ€ã€‚业务åÅžæ€çš„å˜æ€å†³å®šäº†æ— 论他们怎么办干一定会被骂ã€?
4åQ‰äؓ了那么一两个星期而æžé‚£ä¹ˆå¤§çš„¾pÈ»ŸåQŒè€Œå…¶å®ƒæ—¶é—´éƒ½åœ¨é—²ç€åQŒä¹Ÿž®±æ˜¯é“èµ\æ‰å¹²å¾—出æ¥è¿™æ ïLš„事了ã€?

]]>
- é“èµ\的售¼œ¨ç³»¾lŸæ¥è¯´æ˜Žåˆ†åº“分表å¯ÒŽ(gu¨©)ž¶æž„的影å“http://www.aygfsteel.com/paulwong/archive/2012/01/17/368653.htmlpaulwongpaulwongTue, 17 Jan 2012 05:24:00 GMThttp://www.aygfsteel.com/paulwong/archive/2012/01/17/368653.htmlhttp://www.aygfsteel.com/paulwong/comments/368653.htmlhttp://www.aygfsteel.com/paulwong/archive/2012/01/17/368653.html#Feedback0http://www.aygfsteel.com/paulwong/comments/commentRss/368653.htmlhttp://www.aygfsteel.com/paulwong/services/trackbacks/368653.html
䏿˜¯ã€‚å› ä¸ºæ•°æ®é‡ä¸å¤§åQŒçœŸä¸å¤§ã€?br />
æ¯ä¸€ä¸ªèžR‹Æ¡ä¸Žè½¦æ¬¡é—´æ˜¯ç‹¬ç«‹çš„,æ¯èžR‹Æ¡ä¸‘…过2000å¼ ç¥¨åQŒä¸€å¤©å‘车丑…过50万èžR‹Æ¡ï¼›
以预售期15天æ¥è®ÔŒ¼Œ15*0.1äº¿å¼ ä¸è¶…˜q?.5亿笔的烾U¿æ•°æ®ï¼Œ¿UîC¸ä¸Šæ“v釿•°æ®çš„ã€?br /> å†åŠ ä¸Šå¯ä»¥æŒ‰¾U¿èµ\分库åQŒæ›´æ˜¯ä¸åˆ°åƒä¸‡çñ”çš„å•表容é‡ã€‚å·²¾lå‘车完æˆçš„˜q›å…¥å½’档分æžã€?br /> åÏx•°æ®åº“按èµ\¾U¿ä‹É用ä¸åŒçš„æœåŠ¡å™¨ï¼Œä¸åŒçš„èžR‹Æ¡æ”¾åœ¨ä¸åŒçš„表ä¸ã€‚åÆˆå‘é‡é”真ä¸å¤§ã€?br />
当然åQŒå¦‚æžœä¸åˆ†åº“分表åQŒå†åŠ ä¸Šä¸å½’档处ç†ï¼Œé“èµ\的售¼œ¨ç³»¾lŸçš„æ•°æ®é‡çœ‹èµäh¥æ˜¯æ“vé‡çš„åQ?br />关键是这‹¹·é‡çš„æ•°æ®æ²¡æœ‰æ„义ã€?br />
二ã€å¦‚何分库分表?
2.1 分库åQŒè€ƒè™‘æ•°æ®é—´æ²¡æœ‰ç›´æŽ¥å…³¾pÕd’ŒæœåŠ¡å™¨å¦‚ä½•éƒ¨¾|?br />
é“èµ\的售¼œ¨ç³»¾lŸäؓ例æ¥è¯ß_¼ŒæŒ‰èµ\¾U¿åˆ†åº“ï¼Œå†æŒ‰è½¦æ¬¡åˆ†è¡¨æ˜¯åˆç†çš„ã€?br /> 设èµ\¾U¿æœ‰1万æ¡åQŒæŒ‰æ¯?000æ¡éœ€è¦ä¸¤å°æœåС噍(一å°çƒæœºæ²‰ä½?åQŒä¸åˆ?0å°æœåС噍
如果使用SANå˜å‚¨åQŒåˆ™ä½¿ç”¨SANä½œäØ“å˜å‚¨åQŒæœ¬æœÞZ½œä¸ºçƒæœºæ²‰ä½™ï¼Œåªéœ€è¦?0å°ã€?br /> 当然使用mySQL˜q™ç§¾l济型数æ®åº“åQŒæœåŠ¡å™¨éœ€è¦æ›´å¤šæ¥é˜²ç¾åQ?br /> å›_¯ä»¥é‡‡ç”¨åŒå†™æˆ–å¤šå†™çš„æ–¹å¼æ¥ä¿è¯æ•°æ®çš„ç»å¯¹å®‰å…¨ã€?br />
2.2分表åQŒè€ƒè™‘æ•°æ®é—´ä¸å˜åœ¨é‡å åQŒå³æ•°æ®æ»¡èƒö二分原则
é“èµ\的售¼œ¨ç³»¾lŸçš„ä»ÀL„两个车次是没有关¾pÈš„åQŒæ‰€ä»¥å¯ä»¥åˆ†è¡¨ã€?br /> ç”?sh¨´)ä¿¡çš„æŸä¸ªç”¨æˆïLš„通è¯å’Œå…¶å®ƒç”¨æˆïLš„通è¯è®°å½•åQŒä¹Ÿæ˜¯æ²¡æœ‰å…³¾p»ï¼Œæ‰€ä»¥å¯ä»¥åˆ†è¡¨å¤„ç?br /> åQˆå®žé™…上ç”?sh¨´)信的系¾lŸï¼Œåˆ†åº“分表åŽä¹Ÿæ˜¯ä¸å¤§çš„åQŒéš¾åœ¨åŽå°çš„计费ã€ç»“½Ž—ç‰è§„则åQ?br />
ä¸‰ã€æ•°æ®åº“讉K—®æŽ¥å£
1. 元数æ®ï¼šå¦‚何识别到当å‰è¦å¤„ç†çš„æ•°é‡åœ¨å“ªå¼ 表?
é“èµ\的售¼œ¨ç³»¾lŸä¼šæœ‰ä¸€ä¸ªèžR‹Æ¡ç®¡ç†ç³»¾lŸï¼Œä¾?012òq?æœ?2æ—?D3206 车次åQ?br /> æŒ‰é¢„å…ˆè®¾è®¡çš„åœ¨å“ªå°æœåŠ¡å™¨çš„å“ªä¸ªåº“åQŒå¾å“ªä¸ªè¡¨ã€?br />
2.建立元数æ®çš„规则åQšå³å…·ä½“如何分库分表的规åˆ?br />
˜q™ä¸ªž®±æ˜¯æ•°æ®åº“的讉K—®æŽ¥å£ã€?br />
3.æ•°æ®åº“访问接å£çš„逿˜Ž½E‹åº¦
å›_“ªä¸ªå±‚知é“哪些元数æ®ä¿¡æ¯ã€?br /> 例,是å¦è®©çª—å£å”®¼œ¨çš„客户端æ¥è§£æžå…ƒæ•°æ®çš„规则然厾~“å˜åQŒè¿˜æ˜¯é€šè¿‡ä¸é—´ä»¶æ¥è§£æž¾~“å˜çš?br />
具体å„å±‚ä½¿ç”¨æ€Žæ ·é€æ˜Ž½E‹åº¦åQŒå’Œä¸šåŠ¡æ€§è´¨ã€èŠ‚ç‚¹å’Œæ•°æ®ä¸å¿ƒçš„æ‹“æ‰‘ç‰æœ‰å…³ã€?br />
å››ã€åކ岿•°æ®å½’档与分æž
1.使用分库分表åŽï¼Œæ•°æ®éœ€è¦å½’档,分æžå¤„ç†çš„程åºå˜å¾—夿‚,但ä‹Éè”æœºäº¤æ˜“å˜å¾—½Ž€å?br /> 2.分æžåQšè¦æ³¨æ„是针对烾U¿æ•°æ®åˆ†æžã€å½’档数æ®åˆ†æžã€æØœåˆåˆ†æžæœ‰å…»I¼Œ
通过分库分表和归档,更方便ä‹É用分布å¼çš„统计方案ã€?br />
具体å¯ä»¥å‚考,淘å®çš„开攑Öã^å°æž¶æž„å¸ˆå†™çš„æ–‡ç« åQ?br />
¾l“论åQšåˆ†åº“分表跟ä¸åˆ†åº“分表,整个架构是完全ä¸ä¸€æ ïLš„ã€?br />
åƒé“¼œ¨çš„售票¾pÈ»Ÿã€æ·˜å®ã€ç”µ(sh¨´)ä¿¡ã€é“¶è¡Œç‰åQŒç»å¯¹è¦é‡‡ç”¨åˆ†åº“分表的数æ®å˜å‚¨æ–¹æ¡ˆï¼Œ
æ¥è§£å†Ïx•°æ®é‡çš„增长而ä¸å½±å“性能的问题ã€?br />
åƒæ·˜å®ç‰äº’蔾|‘应用还è¦è§£å†›_¸¦å®½å³CDN问题ã€?img src ="http://www.aygfsteel.com/paulwong/aggbug/368653.html" width = "1" height = "1" />
]]>
Ö÷Õ¾Ö©Öë³ØÄ£°å£º
¹ÅÕÉÏØ|
Ë«Á÷ÏØ|
äÀ´¨ÏØ|
±¾Ïª|
ÑôË·ÏØ|
¼ÎÒñÏØ|
ĵµ¤½ÊÐ|
Õý¶¨ÏØ|
¶«Ïç×å×ÔÖÎÏØ|
ËÞǨÊÐ|
ÃÅÍ·¹µÇø|
ƾÏéÊÐ|
׿ÄáÏØ|
Á«»¨ÏØ|
³Î½ÏØ|
ͨ»¯ÏØ|
½¹×÷ÊÐ|
Îñ´¨|
ɽ¶«Ê¡|
ÏóÖÝÏØ|
Ëì²ýÏØ|
´óÐÂÏØ|
¸£¶¦ÊÐ|
ƾÏéÊÐ|
À³ÑôÊÐ|
ÐÂÏçÏØ|
¸¡ÁºÏØ|
Æô¶«ÊÐ|
ÖÐÄ²ÏØ|
³ØÖÝÊÐ|
ÏɾÓÏØ|
ÎåָɽÊÐ|
Ã÷ÐÇ|
Ñô´ºÊÐ|
¼ÃÑôÏØ|
ÒËÖÝÊÐ|
ÁÉÔ´ÊÐ|
¿â¶ûÀÕÊÐ|
ÓÀ´¨ÊÐ|
ÄþÄÏÏØ|
»¢ÁÖÊÐ|