# 设计ä¸ä¸ªç§æç³»ç» 主è¦åå°ä»¥ä¸ä¸¤ç¹: - å°½éå°è¯·æ±è¿æ»¤å¨ä¸æ¸¸ã - å°½å¯è½çå©ç¨ç¼å(大夿°åºæ¯ä¸é½æ¯**æ¥å¤äºå**)ã 常ç¨çç³»ç»åå±ç»æ:  éå¯¹äºæµè§å¨ç«¯ï¼å¯ä»¥ä½¿ç¨ JS è¿è¡è¯·æ±è¿æ»¤ï¼æ¯å¦äºç§éä¹ç±»åªè½ç¹ä¸æ¬¡æ¢è´æé®ï¼äºç§éåªè½å 许请æ±ä¸æ¬¡å端æå¡ã(APP åç) è¿æ ·å ¶å®å°±å¯ä»¥è¿æ»¤æå¤§é¨åæ®éç¨æ·ã 使¯é²ä¸ä½ç´æ¥æå 循ç¯è°ç¨ãè¿ç§æ åµå¯ä»¥æç®åçå¤ç:å¨`Webå±`éè¿éå¶ä¸ä¸ª UID äºç§ä¹ç±»çè¯·æ±æå¡å±ç次æ°(å¯å©ç¨ Redis å®ç°)ã ä½å¦ææ¯ççæ 10W 个ä¸åç UID æ¥è¯·æ±ï¼æ¯å¦é»å®¢æèé¸¡çæ¹å¼ã è¿ç§æ åµå¯ä»¥å¨`æå¡å±` é对äºå请æ±ä½¿ç¨è¯·æ±éåï¼åéè¿éæµç®æ³([éæµç®æ³](https://github.com/crossoverJie/Java-Interview/blob/master/MD/Limiting.md))æ¯ç§éæ¾ä¸é¨å请æ±å°éåã 对äºè¯»è¯·æ±åå°½é使ç¨ç¼åï¼å¯ä»¥æåå°æ°æ®åå¤å¥½ï¼ä¸ç®¡æ¯ `Redis` è¿æ¯å ¶ä»ç¼åä¸é´ä»¶æç齿¯é常é«çã > ps : å·æ°ç¼åæ åµï¼æ¯å¦åºåæ£é¤æåè¿ç§æ åµä¸ç¨é©¬ä¸å·æ°ç¼åï¼å¦æåºåæ£å°äº 0 åå·æ°ç¼åãå ä¸ºå¤§å¤æ°ç¨æ·é½åªå ³å¿æ¯å¦æè´§ï¼å¹¶ä¸å ³å¿ç°å¨è¿å©ä½å¤å°ã ## æ»ç» - 妿æµé巨大ï¼å¯¼è´å个å±çååé½å¾å¤§å¯ä»¥éå½çå æºå¨æ¨ªåæ©å®¹ã妿å ä¸äºæºå¨é£å°±åªææ¾å¼æµéç´æ¥è¿å失败ãå¿«é失败é常éè¦ï¼è³å°å¯ä»¥ä¿è¯ç³»ç»çå¯ç¨æ§ã - ä¸å¡åæ¹æ§è¡ï¼å¯¹äºä¸åã仿¬¾çæä½å¯ä»¥å¼æ¥æ§è¡æé«ååçã - 主è¦ç®çå°±æ¯å°½éå°ç请æ±ç´æ¥è®¿é®å° `DB`ã