ï»??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/

paulwong 2012-10-08 21:38 å‘表评论
]]>
ç”?2306.cn谈谈¾|‘站性能技æœ?/title><link>http://www.aygfsteel.com/paulwong/archive/2012/01/17/368659.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Tue, 17 Jan 2012 07:23:00 GMT</pubDate><guid>http://www.aygfsteel.com/paulwong/archive/2012/01/17/368659.html</guid><wfw:comment>http://www.aygfsteel.com/paulwong/comments/368659.html</wfw:comment><comments>http://www.aygfsteel.com/paulwong/archive/2012/01/17/368659.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.aygfsteel.com/paulwong/comments/commentRss/368659.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/paulwong/services/trackbacks/368659.html</trackback:ping><description><![CDATA[<div> 12306.cn¾|‘站挂了åQŒè¢«å…¨å›½äººæ°‘骂了。我˜q™ä¸¤å¤©ä¹Ÿåœ¨æ€è€ƒè¿™ä¸ªäº‹åQŒæˆ‘想以˜q™ä¸ªäº‹æ¥¾_—略地和大家讨论一下网站性能的问题。因ä¸ÞZ»“促,而且完全åŸÞZºŽ 本äh有é™çš„ç»éªŒå’Œäº†è§£åQŒæ‰€ä»¥ï¼Œå¦‚果有什么问题还请大家一赯‚®¨è®ºå’ŒæŒ‡æ­£ã€‚(˜q™åˆæ˜¯ä¸€½‹‡é•¿æ–‡ï¼Œåªè®¨è®ºæ€§èƒ½é—®é¢˜åQŒä¸è®¨è®ºé‚£äº›UIåQŒç”¨æˆ·ä½“éªŒï¼Œæˆ–æ˜¯æ˜¯å¦æŠŠæ”¯ä»˜å’Œè´?¼œ¨ä¸‹å•环节分开的功能性的东西åQ? <h4>业务</h4> ä»ÖM½•技术都¼›ÖM¸å¼€ä¸šåŠ¡éœ€æ±‚ï¼Œæ‰€ä»¥ï¼Œè¦è¯´æ˜Žæ€§èƒ½é—®é¢˜åQŒé¦–先还是想先说说业务问题ã€? <ul> <li><strong>其一</strong>åQ?strong>有ähå¯èƒ½æŠŠè¿™ä¸ªä¸œè¥¿å’ŒQQ或是¾|‘游相比</strong>。但我觉得这两者是ä¸ä¸€æ ïLš„åQŒç½‘游和QQ在线或是ç™Õd½•时访问的更多的是用户自己的数æ®ï¼Œè€Œè®¢¼œ¨ç³»¾lŸè®¿é—®çš„æ˜¯ä¸­å¿ƒçš„¼œ¨é‡æ•°æ®åQŒè¿™æ˜¯ä¸ä¸€æ ïLš„。ä¸è¦è§‰å¾—网游或是QQèƒ½è¡Œä½ å°±ä»¥äØ“˜q™æ˜¯ä¸€æ ïLš„。网游和QQ çš„åŽç«¯è´Ÿè½½ç›¸å¯¹äºŽç”?sh¨´)å­å•†åŠ¡çš„ç³»¾lŸè¿˜æ˜¯ç®€å•ã€?/li> </ul> <ul> <li><strong>其二</strong>åQ?strong>有äh说春节期间订ç«èžR的这个事好僾|‘站的秒怋zÕdЍ</strong>。的¼‹®å¾ˆç›æ€¼¼å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> </ul> <ul> <li><strong>其三</strong>åQ?strong>有äh拿这个系¾lŸå’Œå¥¥è¿ä¼šçš„¼œ¨åŠ¡¾pÈ»Ÿæ¯”较</strong>。我觉得˜q˜æ˜¯ä¸ä¸€æ —÷€‚虽然奥˜q会的票务系¾lŸå½“òq´ä¹Ÿä¸€ä¸Šçº¿ž®±åºŸäº†ã€‚但是奥˜q会用的是抽奖的方å¼åQŒä¹Ÿž®±æ˜¯è¯´ä¸å­˜åœ¨å…ˆæ¥å…ˆå¾—的抢的方å¼ï¼Œè€Œä¸”åQŒæ˜¯äº‹å޿н奖åQŒäº‹å‰åªéœ€è¦æ”¶ä¿¡æ¯åQŒäº‹å‰ä¸éœ€è¦ä¿è¯æ•°æ®ä¸€è‡´æ€§ï¼Œæ²¡æœ‰é”,很容易水òqÏx‰©å±•ã€?/li> </ul> <ul> <li><strong>å…¶å››</strong>å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> </ul> <ul> <li><strong>其五</strong>åQ?strong>é“èµ\çš„ç¥¨åŠ¡ä¸šåŠ¡å¾ˆå˜æ€?/strong>åQŒå…¶é‡‡ç”¨çš„æ˜¯½H然攄¡¥¨åQŒè€Œæœ‰çš„票åˆè¿œ˜qœä¸å¤?大家分,所以,大家æ‰ä¼šæœ‰æŠ¢¼œ¨è¿™¿Uæœ‰ä¸­å›½ç‰¹è‰²çš„ä¸šåŠ¡çš„åšæ³•。于是当¼œ¨æ”¾å‡ºæ¥çš„æ—¶å€™ï¼Œž®×ƒ¼šæœ‰å‡ ç™¾ä¸‡äººç”šè‡³ä¸Šåƒä¸‡äººæ€ä¸ŠåŽ»åQŒæŸ¥è¯¢ï¼Œä¸‹å•。几å分钟内åQŒä¸€ä¸ªç½‘ç«?能接å—几åƒä¸‡çš„访问é‡åQŒè¿™ä¸ªæ˜¯å¾ˆææ€–的事情。æ®è¯?2306的高峰访问是10亿PVåQŒé›†ä¸­åœ¨æ—?点到10点,æ¯ç§’PV在高峰时上åƒä¸‡ã€?/li> </ul> 多说几å¥åQ? <ul> <li><strong>库存是B2Cçš„æ¶æ¢¦ï¼Œåº“å­˜½Ž¡ç†ç›¸å½“çš„å¤æ?/strong>。ä¸ä¿¡ï¼Œä½ å¯ä»¥é—®é—®æ‰€æœ‰ä¼ ¾lŸå’Œç”?sh¨´)务零售业的ä¼ä¸šåQŒçœ‹çœ‹ä»–们管ç†åº“存是多么隄¡š„一件事。ä¸ç„Óž¼Œž®×ƒ¸ä¼šæœ‰é‚£ä¹ˆå¤šäh在问凡客的库存问题了。(你还å¯ä»¥çœ‹çœ‹ã€Šä¹”布斯传》,你就知é“ä¸ÞZ»€ä¹ˆTim会接任Appleçš„CEOäº†ï¼Œå› äØ“ä»–æžå®šäº†è‹ÒŽ(gu¨©)žœçš„库存问题)</li> </ul> <ul> <li><strong>对于一个网站æ¥è¯ß_¼Œ‹¹è§ˆ¾|‘页的高负è²å¾ˆå®¹æ˜“æžå®šï¼ŒæŸ¥è¯¢çš„负载有一定的隑ֺ¦åŽÕd¤„ç†ï¼Œä¸è¿‡˜q˜æ˜¯å¯ä»¥é€šè¿‡¾~“存查询¾l“æžœæ¥æžå®šï¼Œæœ€éš„¡š„ž®±æ˜¯ä¸‹å•的负è½?/strong>ã€‚å› ä¸ø™¦è®‰K—®åº“存啊,对于下å•åQŒåŸºæœ¬ä¸Šæ˜¯ç”¨å¼‚æ­¥æ¥æžå®šçš„。去òq´åŒ11节,淘å®çš„æ¯ž®æ—¶çš„è®¢å•æ•°å¤§çº¦åœ?0万左å»I¼Œäº¬ä¸œä¸€å¤©ä¹Ÿæ‰èƒ½æ”¯æŒ40万(居然æ¯?2306˜q˜å·®åQ‰ï¼Œäºšé©¬é€?òq´å‰ä¸€ž®æ—¶å¯æ”¯æŒ?0万订å•é‡ã€‚å¯è§ï¼Œä¸‹è®¢å•çš„æ“作òq¶æ²¡æœ‰æˆ‘们相åƒçš„那么性能高ã€?/li> </ul> <ul> <li><strong>æ·˜å®è¦æ¯”B2Cçš„ç½‘ç«™è¦½Ž€å•å¾—å¤šï¼Œå› äØ“æ²¡æœ‰ä»“åº“</strong>åQŒæ‰€ä»¥ï¼Œä¸å­˜åœ¨åƒB2C˜q™æ ·æœ‰N个仓库对åŒä¸€å•†å“库存更新å’?æŸ?询的æ“作。下å•的时候,B2Cçš?¾|‘ç«™è¦åŽ»æ‰¾ä¸€ä¸ªä»“åº“ï¼Œåˆè¦¼›È”¨æˆ¯‚¿‘åQŒåˆè¦æœ‰åº“å­˜åQŒè¿™éœ€è¦å¾ˆå¤šè®¡½Ž—。试惻I¼Œä½ åœ¨åŒ—京ä¹îCº†ä¸€æœ¬ä¹¦åQŒåŒ—京的仓库没货了,ž®Þp¦ä»Žå‘¨è¾¹çš„仓库调,那就è¦åŽ»çœ‹çœ‹æ²ˆé˜³æˆ?是西安的仓库有没有货åQŒå¦‚果没有,åˆå¾—看看江è‹çš„仓库,½{‰ç­‰ã€‚æ·˜å®çš„ž®±æ²¡æœ‰é‚£ä¹ˆå¤šäº‹äº†åQŒæ¯ä¸ªå•†æˆähœ‰è‡ªå·±çš„库存,库存分到商户头上了,å而有利于性能ã€?/li> </ul> <ul> <li><strong>æ•°æ®ä¸€è‡´æ€§æ‰æ˜¯çœŸæ­£çš„æ€§èƒ½ç“‰™¢ˆ</strong>。有 äºø™¯´nginxå¯ä»¥æžå®šæ¯ç§’10ä¸‡çš„é™æ€è¯·æ±‚ï¼Œæˆ‘ä¸æ€€ç–‘。但˜q™åªæ˜¯é™æ€è¯·æ±‚,ç†è®ºå€û|¼Œåªè¦å¸¦å®½ã€I/O够强åQŒæœåŠ¡å™¨è®¡ç®—èƒ½åŠ›å¤Ÿï¼Œòq¶æ”¯æŒçš„òq¶å‘˜qžæŽ¥æ•°é¡¶å¾—ä½ 10万TCP链接的å¾ç«?çš„è¯åQŒé‚£æ²¡æœ‰é—®é¢˜ã€‚但在数æ®ä¸€è‡´æ€§é¢å‰ï¼Œ˜q?0万就完完全全æˆäº†ä¸€ä¸ªå¯æœ›ä¸å¯åŠçš„ç†è®ºå€égº†ã€?/li> </ul> æˆ‘è¯´é‚£ä¹ˆå¤šï¼Œæˆ‘åªæ˜¯æƒ³ä»Žä¸šåŠ¡ä¸Šå‘Šè¯‰å¤§å®¶åQŒæˆ‘们需è¦ä»Žä¸šåŠ¡ä¸ŠçœŸæ­£äº†è§£æ˜¥˜qé“路订¼œ¨è¿™æ ·ä¸šåŠ¡çš„å˜æ€ä¹‹å¤„ã€? <h4>å‰ç«¯æ€§èƒ½ä¼˜åŒ–技æœ?/h4> è¦è§£å†Ïx€§èƒ½çš„问题,有很多ç§å¸¸ç”¨çš„æ–¹æ³•,我在下é¢åˆ—ä‹D一下,我相ä¿?2306˜q™ä¸ª¾|‘站使用下é¢çš„这些技术会让其性能有质的飞跃ã€? <h5>一ã€å‰ç«¯è´Ÿè½½å‡è¡?/h5> 通过DNS的负载å‡è¡¡å™¨åQˆä¸€èˆ¬åœ¨è·¯ç”±å™¨ä¸Šæ ÒŽ(gu¨©)®è·¯ç”±çš„è´Ÿè½½é‡å®šå‘åQ‰å¯ä»¥æŠŠç”¨æˆ·çš„访问å‡åŒ€åœ°åˆ†æ•£åœ¨å¤šä¸ªWebæœåŠ¡å™¨ä¸Šã€‚è¿™æ ·å¯ä»¥å‡ž®‘WebæœåŠ¡å™¨çš„è¯äh±‚ è´Ÿè²ã€‚因为http的请求都是短作业åQŒæ‰€ä»¥ï¼Œå¯ä»¥é€šè¿‡å¾ˆç®€å•的负è²å‡è¡¡å™¨æ¥å®Œæˆ˜q™ä¸€åŠŸèƒ½ã€‚æœ€å¥½æ˜¯æœ‰CDN¾|‘络让用戯‚¿žæŽ¥ä¸Žå…¶æœ€˜q‘çš„æœåŠ¡å™¨ï¼ˆCDNé€šå¸¸ä¼´éš ç€åˆ†å¸ƒå¼å­˜å‚¨ï¼‰ã€‚(关于负è²å‡è¡¡æ›´äؓ详细的说明觓åŽç«¯çš„è´Ÿè½½å‡è¡?#8221;åQ? <h5>二ã€å‡ž®‘å‰ç«¯é“¾æŽ¥æ•°</h5> 我看了一ä¸?2306.cnåQŒæ‰“开主页需è¦å¾60多个HTTP˜qžæŽ¥åQŒèžR¼œ¨é¢„订页é¢åˆ™æœ?0多个HTTPè¯äh±‚åQŒçŽ°åœ¨çš„‹¹è§ˆå™¨éƒ½æ˜¯åƈå‘请求的。所以,å?è¦æœ‰100万个用户åQŒå°±ä¼šæœ‰6000万个链接åQŒå¤ªå¤šäº†ã€‚一个登录查询页é¢å°±å¥½äº†ã€‚把js打æˆä¸€ä¸ªæ–‡ä»Óž¼ŒæŠŠcss也打æˆä¸€ä¸ªæ–‡ä»Óž¼ŒæŠŠå›¾æ ‡ä¹Ÿæ‰“æˆä¸€ä¸ªæ–‡ä»Óž¼Œç”?css分å—展示。把链接数å‡åˆ°æœ€ä½Žã€? <h5>三ã€å‡ž®‘网™åµå¤§ž®å¢žåР另å®?/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之类的错误。这说明æœåŠ¡å™¨åž®äº†ã€? <h5>å››ã€å‰ç«¯é¡µé¢é™æ€åŒ–</h5> 陿€åŒ–一些ä¸è§‰å˜çš„页é¢å’Œæ•°æ®åQŒåƈgzipä¸€ä¸‹ã€‚è¿˜æœ‰ä¸€ä¸ªåÆˆæ€çš„æ–ÒŽ(gu¨©)³•是把˜q™äº›é™æ€é¡µé¢æ”¾åœ?dev/shm下,˜q™ä¸ªç›®å½•ž®±æ˜¯å†…å­˜åQŒç›´æŽ¥ä»Žå†…存中把文äšgè¯Õd‡ºæ¥è¿”回,˜q™æ ·å¯ä»¥å‡å°‘昂贵的ç£ç›˜I(y¨¨)/Oã€? <h5>五ã€ä¼˜åŒ–查è¯?/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Œåƈæå‡æ€§èƒ½ã€? <h5>å…­ã€ç¼“存的问题</h5> ¾~“å­˜å¯ä»¥ç”¨æ¥¾~“存动æ€é¡µé¢ï¼Œä¹Ÿå¯ä»¥ç”¨æ¥ç¼“存查询的数æ®ã€‚缓存通常有那么几个问题: 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>åŽç«¯æ€§èƒ½ä¼˜åŒ–技æœ?/h4> å‰é¢è®¨è®ºäº†å‰ç«¯æ€§èƒ½çš„优化技术,于是å‰ç«¯å¯èƒ½ž®×ƒ¸æ˜¯ç“¶é¢ˆé—®é¢˜äº†ã€‚那么性能问题ž®×ƒ¼šåˆ°åŽç«¯æ•°æ®ä¸Šæ¥äº†ã€‚下é¢è¯´å‡ ä¸ªåŽç«¯å¸¸è§çš„æ€§èƒ½ä¼˜åŒ–技术ã€? <h5>ä¸€ã€æ•°æ®å†—ä½?/h5> 关于数æ®å†—ä½™åQŒä¹Ÿž®±æ˜¯è¯ß_¼ŒæŠŠæˆ‘们的数æ®åº“的数æ®å†—余处ç†åQŒä¹Ÿž®±æ˜¯å‡å°‘表连接这æ ïLš„开销比较大的æ“作åQŒä½†˜q™æ ·ä¼šç‰ºç‰²æ•°æ®çš„一致性。风险比较大。很多äh 把NoSQLç”¨åšæ•°æ®åQŒå¿«æ˜¯å¿«äº†ï¼Œå› äؓ数æ®å†—余了,但这å¯ÒŽ(gu¨©)•°æ®ä¸€è‡´æ€§æœ‰å¤§çš„é£Žé™©ã€‚è¿™éœ€è¦æ ¹æ®ä¸åŒçš„业务˜q›è¡Œåˆ†æžå’Œå¤„ç†ã€‚(注æ„åQšç”¨å…³ç³»åž‹æ•°æ®åº“很容易移æ¤?到NoSQL上,但是å过æ¥ä»ŽNoSQL到关¾pÕdž‹ž®±éš¾äº†ï¼‰ <h5>äºŒã€æ•°æ®é•œåƒ?/h5> 几乎所有主‹¹çš„æ•°æ®åº“都支æŒé•œåƒåQŒä¹Ÿž®±æ˜¯replication。数æ®åº“的镜åƒå¸¦æ¥çš„好处ž®±æ˜¯å¯ä»¥åšè´Ÿè½½å‡è¡¡ã€‚æŠŠä¸€å°æ•°æ®åº“的负载å‡åˆ†åˆ°å¤šå°ä¸Šï¼ŒåŒæ—¶åˆä¿è¯äº†æ•°æ®ä¸€è‡´æ€§ï¼ˆOracleçš„SCNåQ‰ã€‚最é‡è¦çš„æ˜¯åQŒè¿™æ ¯‚¿˜å¯ä»¥æœ‰é«˜å¯ç”¨æ€§ï¼Œä¸€å°åºŸäº†ï¼Œ˜q˜æœ‰å¦ä¸€å°åœ¨æœåŠ¡ã€? æ•°æ®é•œåƒçš„æ•°æ®ä¸€è‡´æ€§å¯èƒ½æ˜¯ä¸ªé—®é¢˜ï¼Œæ‰€ä»¥æˆ‘们è¦å§åœ¨å•æ¡æ•°æ®ä¸Šè¿›è¡Œæ•°æ®åˆ†åŒºï¼Œä¹Ÿå°±æ˜¯è¯´åQŒæŠŠä¸€ä¸ªç•…销商å“的库存å‡åˆ†åˆ°ä¸åŒçš„æœåŠ¡å™¨ä¸Šï¼Œå¦‚ï¼Œä¸€ä¸ªç•…é”€å•†å“æœ?万的库存åQŒæˆ‘们å¯ä»¥è®¾¾|?0å°æœåС噍åQŒæ¯å°æœåŠ¡å™¨ä¸Šæœ‰100个库存,˜q™å°±å¥½åƒB2C的仓库一栗÷€? <h5>ä¸‰ã€æ•°æ®åˆ†åŒ?/h5> æ•°æ®é•œåƒä¸èƒ½è§£å†³çš„一个问题就是数æ®è¡¨é‡Œçš„记录太多åQŒå¯¼è‡´æ•°æ®åº“æ“作太慢。所以,把数æ®åˆ†åŒºã€‚æ•°æ®åˆ†åŒºæœ‰å¾ˆå¤š¿Uåšæ³•,一般æ¥è¯´æœ‰ä¸‹é¢˜q™å‡ ¿U: <br /> <br /> 1åQ‰æŠŠæ•°æ®æŠŠæŸ¿U逻辑æ¥åˆ†¾c…R€‚比如ç«è½¦ç¥¨çš„订¼œ¨ç³»¾lŸå¯ä»¥æŒ‰å„é“路局æ¥åˆ†åQŒå¯æŒ‰å„¿UèžR型分åQŒå¯ä»¥æŒ‰å§‹å‘站分åQŒå¯ä»¥æŒ‰ç›®çš„地分……åQŒå正就是把一张表拆æˆå¤šå¼ æœ‰ä¸€æ ïLš„字段但是ä¸åŒ¿U类的表åQŒè¿™æ øP¼Œ˜q™äº›è¡¨å°±å¯ä»¥å­˜åœ¨ä¸åŒçš„æœºå™¨ä¸Šä»¥è¾¾åˆ°åˆ†æ‹…负载的目的ã€? <br /> <br /> 2åQ‰æŠŠæ•°æ®æŒ‰å­—ŒDµåˆ†åQŒä¹Ÿž®±æ˜¯åšç€åˆ†è¡¨ã€‚比如把一些举lå¸¸æ”¹çš„æ•°æ®æ”‘Öœ¨ä¸€ä¸ªè¡¨é‡Œï¼Œ¾lå¸¸æ”¹çš„æ•°æ®æ”‘Öœ¨å¦ä¸€ä¸ªè¡¨é‡Œã€‚æŠŠä¸€å¼ è¡¨å˜æˆ1å¯?的关¾p»ï¼Œ˜q™æ ·åQŒä½ å?以凞®‘表的字ŒDµä¸ªæ•ŽÍ¼ŒåŒæ ·å¯ä»¥æå‡ä¸€å®šçš„æ€§èƒ½ã€‚å¦å¤–,字段多会造æˆä¸€æ¡è®°å½•的存储会被攑ֈ°ä¸åŒçš„页表里åQŒè¿™å¯¹äºŽè¯Õd†™æ€§èƒ½éƒ½æœ‰é—®é¢˜ã€? <br /> <br /> 3åQ‰åã^å‡åˆ†è¡¨ã€‚因为第一¿U方法是òq¶ä¸ä¸€å®šåã^å‡åˆ†å‡ï¼Œå¯èƒ½æŸä¸ª¿U类的数æ®è¿˜æ˜¯å¾ˆå¤šã€‚所以,也有采用òq›_‡åˆ†é…的方å¼ï¼Œé€šè¿‡ä¸»é”®ID的范围æ¥åˆ†è¡¨ã€? <br /> <br /> 4åQ‰åŒä¸€æ•°æ®åˆ†åŒºã€‚è¿™ä¸ªåœ¨ä¸Šé¢æ•°æ®é•œåƒæè¿‡ã€‚也ž®±æ˜¯æŠŠåŒä¸€å•†å“的库存值分åˆîC¸åŒçš„æœåŠ¡å™¨ä¸ŠåQŒæ¯”如有10000个库存,å¯ä»¥åˆ†åˆ°10å°æœåŠ¡å™¨ä¸Šï¼Œä¸€åîC¸Šæœ?000个库存。然åŽè´Ÿè½½å‡è¡¡ã€? ˜q™ä¸‰¿U分区都有好有å。最常用的还是第一¿U。数æ®ä¸€é‡åˆ†åŒºï¼Œä½ å°±éœ€è¦æœ‰ä¸€ä¸ªæˆ–是多个调度æ¥è®©ä½ çš„å‰ç«¯ç¨‹åºçŸ¥é“去哪里找数æ®ã€?strong>把ç«è½¦ç¥¨çš„æ•°æ®åˆ†åŒºï¼Œòq¶æ”¾åœ¨å„个çœå¸‚,会对12306˜q™ä¸ª¾pÈ»Ÿæœ‰éžå¸¸æœ‰æ„义的质的性能的æé«?/strong>ã€? <h5>å››ã€åŽç«¯ç³»¾lŸè´Ÿè½½å‡è¡?/h5> å‰é¢è¯´äº†æ•°æ®åˆ†åŒºåQŒæ•°æ®åˆ†åŒºå¯ä»¥åœ¨ä¸€å®šç¨‹åº¦ä¸Šå‡è½»è´Ÿè²åQŒä½†æ˜¯æ— æ³•å‡è½Èƒ­é”€å•†å“的负载,对于ç«èžR¼œ¨æ¥è¯ß_¼Œå¯ä»¥è®¤äؓ是大城市的æŸäº›ä¸»òq²çº¿ä¸Šçš„车票。这ž®?需è¦ä‹É用数æ®é•œåƒæ¥å‡è½»è´Ÿè²ã€‚ä‹É用数æ®é•œåƒï¼Œä½ å¿…ç„¶è¦ä½¿ç”¨è´Ÿè²å‡è¡¡åQŒåœ¨åŽç«¯åQŒæˆ‘们å¯èƒ½å¾ˆéš¾ä‹É用åƒè·¯ç”±å™¨ä¸Šçš„è´Ÿè½½å‡è¡¡å™¨åQŒå› ä¸ºé‚£æ˜¯å‡è¡¡æµé‡çš„åQŒå› ä¸ºæµé‡åƈä¸?代表æœåŠ¡å™¨çš„¾Jå¿™½E‹åºã€‚因此,我们需è¦ä¸€ä¸ªä“Q务分é…ç³»¾lŸï¼Œå…¶è¿˜èƒ½ç›‘控å„个æœåŠ¡å™¨çš„è´Ÿè½½æƒ…å†üc€? ä»ÕdŠ¡åˆ†é…æœåŠ¡å™¨æœ‰ä¸€äº›éš¾ç‚¹ï¼š <ul> <li>è´Ÿè²æƒ…å†µæ¯”è¾ƒå¤æ‚。什么å«å¿™ï¼Ÿæ˜¯CPU高?˜q˜æ˜¯¼‚盘I(y¨¨)/O高?˜q˜æ˜¯å†…存使用高?˜q˜æ˜¯òq¶å‘高?你å¯èƒ½éœ€è¦å…¨éƒ¨éƒ½è¦è€ƒè™‘。这些信æ¯è¦å‘é€ç»™é‚£ä¸ªä»ÕdŠ¡åˆ†é…器上åQŒç”±ä»ÕdŠ¡åˆ†é…器挑选一å°è´Ÿè½½æœ€è½Èš„æœåŠ¡å™¨æ¥å¤„ç†ã€?/li> </ul> <ul> <li>ä»ÕdŠ¡åˆ†é…æœåŠ¡å™¨ä¸Šéœ€è¦å¯¹ä»ÕdŠ¡é˜Ÿåˆ—åQŒä¸èƒ½ä¸¢ä»ÕdŠ¡å•Šï¼Œæ‰€ä»¥è¿˜éœ€è¦æŒä¹…åŒ–ã€‚åÆˆä¸”å¯ä»¥ä»¥æ‰šw‡çš„æ–¹å¼æŠŠä»ÕdŠ¡åˆ†é…¾l™è®¡½Ž—æœåС噍ã€?/li> </ul> <ul> <li>ä»ÕdŠ¡åˆ†é…æœåŠ¡å™¨æ­»äº†æ€Žä¹ˆåŠžï¼Ÿ˜q™é‡Œéœ€è¦ä¸€äº›å¦‚Live-Standby或是failover½{‰é«˜å¯ç”¨æ€§çš„æŠ€æœ¯ã€‚æˆ‘ä»¬è¿˜éœ€è¦æ³¨æ„那些æŒä¹…化了的ä»ÕdŠ¡çš„é˜Ÿåˆ—å¦‚æžœè{¿UÕdˆ°åˆ«çš„æœåŠ¡å™¨ä¸Šçš„é—®é¢˜ã€?/li> </ul> 我看到有很多¾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方法å¯èƒ½æ˜¯æ¯”较好的负è²å‡è¡¡ã€? <h5>五ã€å¼‚æ­¥ã€?throttle å’?扚w‡å¤„ç†</h5> 异步ã€throttleåQˆèŠ‚‹¹é˜€åQ?和批é‡å¤„ç†éƒ½éœ€è¦å¯¹òq¶å‘è¯äh±‚æ•°åšé˜Ÿåˆ—处ç†çš„ã€? <ul> <li>异步在业务上一般æ¥è¯´å°±æ˜¯æ”¶é›†è¯·æ±‚,然åŽå»¶æ—¶å¤„ç†ã€‚在技术上ž®±æ˜¯å¯ä»¥æŠŠå„个处ç†ç¨‹åºåšæˆåƈ行的åQŒä¹Ÿž®±å¯ä»¥æ°´òqÏx‰©å±•了。但是异步的技术问题大概有 ˜q?些,aåQ‰è¢«è°ƒç”¨æ–¹çš„¾l“æžœ˜q”回åQŒä¼šæ¶‰åŠ˜q›ç¨‹¾U¿ç¨‹é—´é€šä¿¡çš„问题。båQ‰å¦‚果程åºéœ€è¦å›žæ»šï¼Œå›žæ»šä¼šæœ‰ç‚¹å¤æ‚。cåQ‰å¼‚步通常都会伴éšå¤šçº¿½E‹å¤š˜q›ç¨‹åQŒåƈå‘的控制也相å¯?éºÈƒ¦ä¸€äº›ã€‚dåQ‰å¾ˆå¤šå¼‚步系¾lŸéƒ½ç”¨æ¶ˆæ¯æœºåˆÓž¼Œæ¶ˆæ¯çš„丢失和乱åºä¹Ÿä¼šæ˜¯æ¯”è¾ƒå¤æ‚的问题ã€?/li> </ul> <ul> <li>throttle æŠ€æœ¯å…¶å®žåÆˆä¸æå‡æ€§èƒ½åQŒè¿™ä¸ªæŠ€æœ¯ä¸»è¦æ˜¯é˜²æ­¢¾pÈ»Ÿè¢«è¶…˜q‡è‡ªå·×ƒ¸èƒ½å¤„ç†çš„‹¹é‡¾l™æžåž®äº†åQŒè¿™å…¶å®žæ˜¯ä¸ªä¿æŠ¤æœºåˆ¶ã€‚ä‹É用throttle技术一般æ¥è¯´æ˜¯å¯¹äºŽä¸€äº›è‡ªå·±æ— æ³•控制的¾pÈ»ŸåQŒæ¯”如,和你¾|‘ç«™å¯ÒŽ(gu¨©)Ž¥çš„é“¶è¡Œç³»¾lŸã€?/li> </ul> <ul> <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> </ul> 所以,<strong>åªè¦æ˜¯å¼‚步,一般都会有throttle机制åQŒä¸€èˆ¬éƒ½ä¼šæœ‰é˜Ÿåˆ—æ¥æŽ’é˜Ÿï¼Œæœ‰é˜Ÿåˆ—ï¼Œž®×ƒ¼šæœ‰æŒä¹…化åQŒè€Œç³»¾lŸä¸€èˆ¬éƒ½ä¼šä‹É用批é‡çš„æ–¹å¼æ¥å¤„ç?/strong>ã€? <a target="_blank">云风åŒå­¦è®¾è®¡çš?#8220;排队¾pÈ»Ÿ”</a> ž®±æ˜¯˜q™ä¸ªæŠ€æœ¯ã€‚这和电(sh¨´)å­å•†åŠ¡çš„è®¢å•¾pÈ»Ÿå¾ˆç›¸ä¼û|¼Œž®±æ˜¯è¯ß_¼Œæˆ‘çš„¾pÈ»Ÿæ”¶åˆ°äº†ä½ çš„è´­¼œ¨ä¸‹å•请求,但是我还没有真正处ç†åQŒæˆ‘的系¾lŸä¼šè·Ÿæ®æˆ‘自å·Þqš„处ç†èƒ½åŠ›æ¥throttleä½è¿™äº›å¤§é‡çš„è¯äh±‚åQŒåƈ一点一点地处ç†ã€‚一旦处ç†å®Œæˆï¼Œæˆ‘å°±å¯ä»¥å‘邮件或短信告诉用户你æ¥å¯ä»¥çœŸæ­£è´­ç¥¨äº†ã€? <br /> <br /> 在这里,我想通过业务和用户需求方é¢è®¨è®ÞZ¸€ä¸‹äº‘风åŒå­¦çš„˜q™ä¸ªæŽ’队¾pÈ»ŸåQŒå› ä¸ºå…¶ä»ŽæŠ€æœ¯ä¸Šçœ‹ä¼¼è§£å†³äº†è¿™ä¸ªé—®é¢˜ï¼Œä½†æ˜¯ä»Žä¸šåŠ¡å’Œç”¨æˆ·éœ€æ±‚ä¸Šæ¥è¯´å¯èƒ½˜q˜æ˜¯æœ‰ä¸€äº›å€¼å¾—我们åŽÀL·±å…¥æ€è€ƒçš„地方åQ? <br /> <br /> 1åQ?strong>队列的DoSæ”Õd‡»</strong>。首先,我们æ€è€ƒä¸€ä¸‹ï¼Œ˜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Œè®©ç”¨æˆ·åªèƒ½é€šè¿‡ä»–们æ¥ä¹°ã€? <br /> <br /> 2åQ?strong>对列的一致æ€?/strong>åQŸå¯¹˜q™ä¸ªé˜Ÿåˆ—çš„æ“ä½œæ˜¯ä¸æ˜¯éœ€è¦é”åQŸåªè¦æœ‰é”,性能一定上ä¸åŽ»ã€‚è¯•æƒ»I¼Œ100ä¸‡ä¸ªäººåŒæ—¶è¦æ±‚ä½ æ¥åˆ†é…ä½¾|®å·åQŒè¿™ä¸ªé˜Ÿåˆ—将会æˆä¸ºæ€§èƒ½ç“‰™¢ˆã€‚你一定没有数æ®åº“实现得性能好,所以,å¯èƒ½æ¯”现在还å·? <br /> <br /> 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¨©)®é“é“部专家的说明</a>åQšè¿™å‡ å¤©åQŒåã^å‡ä¸€å¤©ä¸‹å?00万,所以,处ç†1000万的用户需è¦å天。这个计½Ž—å¯èƒ½æœ‰ç‚¹ç®€å•了åQŒæˆ‘åªæ˜¯æƒŒ™¯´åQ?strong>在这样低负è²çš„ç³»¾lŸä¸‹ç”¨æŽ’队å¯èƒ½éƒ½ä¸èƒ½è§£å†³é—®é¢˜</strong>åQ? <br /> <br /> 4åQ?strong>队列的分分å¼</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Œå°±½{‰ç€è¢«éª‚å§ï¼‰ã€? <h4>ž®ç»“</h4> 写了那么多,我尾l“一下: <br /> 0åQ‰æ— è®ÞZ½ æ€Žä¹ˆè®¾è®¡åQŒä½ çš„ç³»¾lŸä¸€å®šè¦èƒ½å®¹æ˜“地水åã^扩展。也ž®±æ˜¯è¯ß_¼Œä½ çš„æ•´ä¸ªæ•°æ®‹¹ä¸­åQŒæ‰€æœ‰çš„环节都è¦èƒ½å¤Ÿæ°´åã^æ‰©å±•ã€‚è¿™æ øP¼Œå½“你的系¾lŸæœ‰æ€§èƒ½é—®é¢˜æ—Óž¼Œ“åŠ?å€çš„æœåŠ¡å™?#8221;æ‰ä¸ä¼šè¢«äºø™®¥½W‘ã€? <br /> <br /> 1åQ‰ä¸Š˜q°çš„æŠ€æœ¯ä¸æ˜¯ä¸€æœä¸€å¤•能æžå®šçš„,没有长期的积累,基本无望ã€? <br /> <br /> 2åQ‰é›†ä¸­å¼çš„å–¼œ¨å¾ˆéš¾æžå®šï¼Œä½¿ç”¨ä¸Šè¿°çš„æŠ€æœ¯å¯ä»¥è®©è®¢ç¥¨¾pÈ»Ÿèƒ½æœ‰å‡ ä˜ªå€çš„æ€§èƒ½æå‡ã€‚而在å„个çœå¸‚建分站,分开å–票åQŒæ˜¯èƒ½è®©çŽ°æœ‰¾pÈ»Ÿæ€§èƒ½æœ‰è´¨çš„æå‡çš„æœ€å¥½æ–¹æ³•ã€? <br /> <br /> 3åQ‰æ˜¥˜qå‰å¤•抢¼œ¨ä¸”¼œ¨é‡ä¾›è¿œž®äºŽæ±‚è¿™¿Uä¸šåŠ¡æ¨¡å¼æ˜¯ç›¸å½“å˜æ€çš„åQŒè®©å‡ åƒä¸‡ç”šè‡³ä¸Šäº¿çš„人在æŸä¸ªæ—©æ™¨çš?炚w’ŸåŒæ—¶ç™Õd½•åŒæ—¶æŠ¢ç¥¨çš„è¿™¿Uä¸šåŠ¡æ¨¡å¼æ˜¯å˜æ€ä¸­çš„å˜æ€ã€‚业务åÅžæ€çš„å˜æ€å†³å®šäº†æ— è®ºä»–们怎么办干一定会被骂ã€? <br /> <br /> 4åQ‰äؓ了那么一两个星期而æžé‚£ä¹ˆå¤§çš„¾pÈ»ŸåQŒè€Œå…¶å®ƒæ—¶é—´éƒ½åœ¨é—²ç€åQŒä¹Ÿž®±æ˜¯é“èµ\æ‰å¹²å¾—出æ¥è¿™æ ïLš„事了ã€? </div><img src ="http://www.aygfsteel.com/paulwong/aggbug/368659.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/paulwong/" target="_blank">paulwong</a> 2012-01-17 15:23 <a href="http://www.aygfsteel.com/paulwong/archive/2012/01/17/368659.html#Feedback" target="_blank" style="text-decoration:none;">å‘表评论</a></div>]]></description></item><item><title>é“èµ\的售¼œ¨ç³»¾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" />

paulwong 2012-01-17 13:24 å‘表评论
]]>
Ö÷Õ¾Ö©Öë³ØÄ£°å£º ¹ÅÕÉÏØ| Ë«Á÷ÏØ| äÀ´¨ÏØ| ±¾Ïª| ÑôË·ÏØ| ¼ÎÒñÏØ| ĵµ¤½­ÊÐ| Õý¶¨ÏØ| ¶«Ïç×å×ÔÖÎÏØ| ËÞǨÊÐ| ÃÅÍ·¹µÇø| ƾÏéÊÐ| ׿ÄáÏØ| Á«»¨ÏØ| ³Î½­ÏØ| ͨ»¯ÏØ| ½¹×÷ÊÐ| Îñ´¨| ɽ¶«Ê¡| ÏóÖÝÏØ| Ëì²ýÏØ| ´óÐÂÏØ| ¸£¶¦ÊÐ| ƾÏéÊÐ| À³ÑôÊÐ| ÐÂÏçÏØ| ¸¡ÁºÏØ| Æô¶«ÊÐ| ÖÐÄ²ÏØ| ³ØÖÝÊÐ| ÏɾÓÏØ| ÎåָɽÊÐ| Ã÷ÐÇ| Ñô´ºÊÐ| ¼ÃÑôÏØ| ÒËÖÝÊÐ| ÁÉÔ´ÊÐ| ¿â¶ûÀÕÊÐ| ÓÀ´¨ÊÐ| ÄþÄÏÏØ| »¢ÁÖÊÐ|