±à¼ÍƼö: |
È«Á´Â·Ñ¹²âƽ̨£¨Quake£©ÔÚÃÀÍÅÖеÄʵ¼ù£¬½â¾ö·½°¸¡¢Quake ÕûÌå¼Ü¹¹Éè¼Æ¼°¹ÜÀí¶ËºËÐŦÄܵȡ£
±¾ÎÄÀ´×ÔÓÚÃÀÍż¼ÊõÍŶӣ¬ÓÉLinda±à¼¡¢ÍƼö¡£ |
|
±³¾°
ÔÚÃÀÍŵļÛÖµ¹ÛÖУ¬¡°ÒÔ¿Í»§ÎªÖÐÐÄ¡±±»·ÅÔÚÒ»¸ö·Ç³£ÖØÒªµÄλÖã¬ËùÒÔÎÒÃǶԷþÎñ³öÏÖ¹ÊÕÏÔ½À´Ô½²»ÄÜÈÝÈÌ¡£ÌرðÊÇĿǰ¹«Ë¾ÒµÎñÕýÔÚ¸ßËÙÔö³¤½×¶Î£¬Ã¿Ò»´Î¹ÊÕ϶Թ«Ë¾À´Ëµ¶¼ÊÇÒ»±Ê·Ç³£²»Ð¡µÄËðʧ¡£¶øÕû¸öIT»ù´¡ÉèÊ©·Ç³£¸´ÔÓ£¬°üÀ¨ÍøÂç¡¢·þÎñÆ÷¡¢²Ù×÷ϵͳÒÔ¼°Ó¦ÓòãÃæ¶¼¿ÉÄܳöÏÖÎÊÌâ¡£ÔÚÕâÖÖ±³¾°Ï£¬ÎÒÃDZØÐë¶Ô·þÎñ½øÐÐÒ»´ÎÈ«·½Î»µÄ¡°Ìå¼ì¡±£¬´Ó¶øÀ´±£ÕÏÃÀÍŶà¸öÒµÎñ·þÎñµÄÎȶ¨ÐÔ£¬ÌṩÓÅÖʵÄÓû§·þÎñÌåÑé¡£ÕæÕýͨ¹ýÒÔϼ¼ÊõÊֶΣ¬À´°ïÖú´ó¼Ò³ÔµÄ¸üºÃ£¬Éú»î¸üºÃ£º
ÑéÖ¤·åÖµÁ÷Á¿Ï·þÎñµÄÎȶ¨ÐÔºÍÉìËõÐÔ¡£
ÑéÖ¤ÐÂÉÏÏß¹¦ÄܵÄÎȶ¨ÐÔ¡£
½øÐнµ¼¶¡¢±¨¾¯µÈ¹ÊÕÏÑÝÁ·¡£
¶ÔÏßÉÏ·þÎñ½øÐиü׼ȷµÄÈÝÁ¿ÆÀ¹À¡£
¡¡
È«Á´Â·Ñ¹²âÊÇ»ùÓÚÏßÉÏÕæÊµ»·¾³ºÍʵ¼ÊÒµÎñ³¡¾°£¬Í¨¹ýÄ£Ä⺣Á¿µÄÓû§ÇëÇó£¬À´¶ÔÕû¸öϵͳ½øÐÐѹÁ¦²âÊÔ¡£ÔçÆÚ£¬ÎÒÃÇÔÚûÓÐÈ«Á´Â·Ñ¹²âµÄÇé¿öÏ£¬Ö÷ÒªµÄѹ²â·½Ê½ÓУº
¶ÔÏßÉϵĵ¥»ú»ò¼¯Èº·¢Æð·þÎñµ÷Óá£
½«ÏßÉÏÁ÷Á¿½øÐÐÂ¼ÖÆ£¬È»ºóÔÚµ¥Ì¨»úÆ÷ÉϽøÐлطš£
ͨ¹ýÐÞ¸ÄÈ¨ÖØµÄ·½Ê½½øÐÐÒýÁ÷ѹ²â¡£
µ«ÒÔÉÏ·½Ê½ºÜÄÑÈ«ÃæµÄ¶ÔÕû¸ö·þÎñ¼¯Èº½øÐÐѹ²â£¬Èç¹ûÒÔ¾Ö²¿½á¹ûÍÆËãÕû¸ö¼¯ÈºµÄ½¡¿µ×´¿ö£¬ÍùÍù»á¡°ÒÔÆ«¸ÅÈ«¡±£¬ÎÞ·¨ÆÀ¹ÀÕû¸öϵͳµÄÕæÊµÐÔÄÜˮƽ£¬Ö÷ÒªµÄÔÒò°üÀ¨£º
Ö»¹Ø×¢Éæ¼°µÄºËÐÄ·þÎñ£¬ÎÞ·¨¸²¸Çµ½ËùÓеĻ·½Ú¡£
ϵͳ֮¼ä¶¼ÊÇͨ¹ýһЩ»ù´¡·þÎñ½øÐд®Áª£¬Èç Nginx¡¢Redis »º´æ¡¢Êý¾Ý¿â¡¢´ÅÅÌ¡¢ÍøÂçµÈµÈ£¬¶ø»ù´¡·þÎñÎÊÌâÔÚµ¥·þÎñѹ²âÖÐÍùÍù²»Äܱ»±©Â¶³öÀ´¡£
×ۺ϶àÖÖÒòËØ¿¼ÂÇ£¬È«Á´Â·Ñ¹²âÊÇÎÒÃÇ׼ȷÆÀ¹ÀÕû¸öϵͳÐÔÄÜˮƽµÄ±Ø¾Ö®Â·¡£Ä¿Ç°£¬¹«Ë¾ÄÚËùÓкËÐÄÒµÎñÏß¶¼ÒѽÓÈëÈ«Á´Â·Ñ¹²â£¬ÔÂÆ½¾ùѹ²â´ÎÊý´ïÉÏÍò´Î£¬°ïÖúÒµÎñƽÎȵضȹýÁË´ó´óССÈô¸É³¡¸ß·åÁ÷Á¿µÄ³å»÷¡£
½â¾ö·½°¸
Quake £¨À×ÉñÖ®´¸£©×÷Ϊ¹«Ë¾¼¶µÄÈ«Á´Â·Ñ¹²âƽ̨£¬ËüµÄÄ¿±êÊÇÌṩ¶ÔÕûÌõÁ´Â·½øÐÐÈ«·½Î»¡¢°²È«¡¢ÕæÊµµÄѹ²â£¬À´°ïÖúÒµÎñ×ö³ö¸ü¾«×¼µÄÈÝÁ¿ÆÀ¹À¡£Òò´ËÎÒÃǶÔ
Quake Ìá³öÁËÈçϵÄÒªÇó£º
ÌṩģÄâÏßÉÏÕæÊµÁ÷Á¿µÄÄÜÁ¦
ѹ²âºÍ DDoS ¹¥»÷²»Í¬µÄÊÇ£¬Ñ¹²âÓÐÓ¦Óó¡¾°£¬¶ø DDoS ¿ÉÄÜÖ»ÐèÒªÒ»¸öÇëÇó¡£ÎªÁ˸üÕæÊµµÄ»¹ÔÓû§ÐÐΪ£¬ÎÒÃÇÐèÒª»ñÈ¡ÏßÉϵÄÕæÊµÁ÷Á¿½øÐÐѹ²â¡£
¾ß±¸¿ìËÙ´´½¨Ñ¹²â»·¾³µÄÄÜÁ¦
ÕâÀïµÄ»·¾³Ö¸µÄÊÇÏßÉÏ»·¾³£¬ÒòΪÈç¹ûѹ²âµÄÊÇÏßÏ»·¾³£¬¼´Ê¹²»¿¼ÂÇ¡°»úÆ÷ÅäÖÃÊÇ·ñÏàͬ¡±Õâ¸öÒòËØ£¬Ïñ¼¯Èº¹æÄ£¡¢Êý¾Ý¿âÌåÁ¿¡¢ÍøÂçÌõ¼þµÈÕâЩÒòËØ£¬ÔÚÏßÏ»·¾³Ï¶¼ÎÞ·¨½øÐÐÄ£Ä⣬ÕâÑùµÃ³öѹ²â½á¹û£¬Æä²Î¿¼¼ÛÖµ²¢²»´ó¡£
Ö§³Ö¶àÖÖѹ²âÀàÐÍ
ѹ²âÀàÐͳýÁËÖ§³Ö±ê×¼µÄ HTTP ÐÒ飬»¹ÐèÒª¶ÔÃÀÍÅÄÚ²¿µÄ RPC ºÍÒÆ¶¯¶ËÐÒé½øÐÐÖ§³Ö¡£
Ìṩѹ²â¹ý³ÌµÄʵʱ¼à¿ØÓë¹ýÔØ±£»¤
È«Á´Â·Ñ¹²âÊÇÒ»¸öÐèҪʵʱ¹Ø×¢·þÎñ״̬µÄ¹ý³Ì£¬ÓÈÆäÔÚ̽²â¼«ÏÞµÄʱºò£¬ÐèÒª¾ß±¸¾«×¼µ÷¿Ø QPS µÄÄÜÁ¦£¬Ãë¼¶¼à¿ØµÄÄÜÁ¦£¬Ô¤ÉèÈ۶Ͻµ¼¶µÄÄÜÁ¦£¬ÒÔ¼°¿ìËÙ¶¨Î»ÎÊÌâµÄÄÜÁ¦¡£
Quake ÕûÌå¼Ü¹¹Éè¼Æ
Quake ¼¯Êý¾Ý¹¹Ô졢ѹ²â¸ôÀë¡¢³¡¾°¹ÜÀí¡¢¶¯Ì¬µ÷¿Ø¡¢¹ý³Ì¼à¿Ø¡¢Ñ¹²â±¨¸æÎªÒ»Ì壬ѹ²âÁ÷Á¿¾¡Á¿Ä£ÄâÕæÊµ£¬¾ß±¸·Ö²¼Ê½Ñ¹²âÄÜÁ¦µÄÈ«Á´Â·Ñ¹²âϵͳ£¬Í¨¹ýÄ£Ä⺣Á¿Óû§ÕæÊµµÄÒµÎñ²Ù×÷³¡¾°£¬Ìáǰ¶ÔÒµÎñ½øÐиßѹÁ¦²âÊÔ£¬È«·½Î»Ì½²âÒµÎñÓ¦ÓõÄÐÔÄÜÆ¿¾±£¬È·±£Æ½ÎȵØÓ¦¶ÔÒµÎñ·åÖµ¡£
¼Ü¹¹Í¼£º

Quake ÕûÌå¼Ü¹¹ÉÏ·ÖΪ£º
Quake-Web£ºÑ¹²â¹ÜÀí¶Ë£¬¸ºÔðѹ²âÊý¾Ý¹¹Ô졢ѹ²â»·¾³×¼±¸¡¢³¡¾°¹ÜÀí¡¢Ñ¹²â¹ý³ÌµÄ¶¯Ì¬µ÷ÕûÒÔ¼°Ñ¹²â±¨±íչʾµÈ¡£
Quake-Brain£ºµ÷¶ÈÖÐÐÄ£¬¸ºÔðʩѹ×ÊÔ´µÄµ÷¶È¡¢ÈÎÎñ·Ö·¢Óë»úÆ÷×ÊÔ´¹ÜÀí¡£
Quake-Agent£ºÑ¹²âÒýÇæ£¬¸ºÔðÄ£Äâ¸÷ÖÖѹ²âÁ÷Á¿¡£
Quake-Monitor£º¼à¿ØÄ£¿é£¬Í³¼ÆÑ¹²â½á¹û£¬¼à¿Ø·þÎñ¸÷ÏîÖ¸±ê¡£
¹ÜÀí¶ËºËÐŦÄÜ
Êý¾Ý¹¹Ôì
´«Í³µÄÊý¾Ý¹¹Ô죬һ°ãÓɲâÊÔÈËÔ±×Ô¼ºÎ¬»¤Ò»Åúѹ²âÊý¾Ý¡£µ«ÕâÖÖ·½Ê½´æÔںܴóµÄ±×¶Ë£¬Ò»·½ÃæÎ¬»¤³É±¾Ïà¶Ô½Ï¸ß£¬ÁíÒ»·½Ã棬Æä¹¹Ôì³öµÄÊý¾Ý¶àÑùÐÔÒ²²»×ã¹»¡£ÔÚÕæÊµÒµÎñ³¡¾°ÖУ¬ÎÒÃÇÐèÒªµÄÊÇÄÜÖ±½Ó»Ø·ÅÒµÎñ¸ß·åÆÚ²úÉúµÄÁ÷Á¿£¬Ö»ÓÐÃæ¶ÔÕâÑùµÄÁ÷Á¿³å»÷£¬²ÅÄÜÕæÊµµÄ·´Ó³ÏµÍ³¿ÉÄÜ»á²úÉúµÄÎÊÌâ¡£
Quake Ö÷ÒªÌṩÁË HTTP ºÍ RPC µÄÁ½ÖÖÊý¾Ý¹¹Ô췽ʽ£º
HTTP ·þÎñµÄ·ÃÎÊÈÕÖ¾ÊÕ¼¯
¶ÔÓÚ HTTP ·þÎñ£¬ÔÚ Nginx ²ã¶¼»á²úÉúÇëÇóµÄ·ÃÎÊÈÕÖ¾£¬ÎÒÃǶÔÕâЩÈÕÖ¾½øÐÐÁËͳһ½ÓÈ룬±ä³É·ûºÏѹ²âÐèÒªµÄÁ÷Á¿Êý¾Ý¡£¼Ü¹¹Í¼ÈçÏ£º

S3Ϊ×îÖÕÈÕÖ¾´æ´¢Æ½Ì¨
µ×²ãʹÓÃÁË Hive ×÷ΪÊý²ÖµÄ¹¤¾ß£¬Ê¹ÒµÎñÔÚÆ½Ì¨ÉÏ¿ÉÒÔͨ¹ý¼òµ¥µÄÀà SQL ÓïÑÔ½øÐÐÊý¾Ý¹¹Ôì¡£Quake
»á´ÓÊý²ÖÖÐɸѡ³öÏàÓ¦µÄÊý¾Ý£¬×÷Ϊѹ²âËùÐèµÄ´Ê±íÎļþ£¬½«Æä´æ´¢ÔÚ S3 ÖС£
´Ê±í£ºÑ¹²âËùÐèµÄÔªÊý¾Ý£¬Ã¿Ò»Ðдú±íÒ»¸öÇëÇ󣬰üº¬ÇëÇóµÄ method¡¢path¡¢params¡¢header¡¢bodyµÈµÈ¡£

RPC ÏßÉÏÁ÷Á¿ÊµÊ±Â¼ÖÆ
¶ÔÓÚ RPC ·þÎñ£¬·þÎñµ÷ÓÃÁ¿Ô¶³¬ HTTP µÄÁ¿¼¶£¬ËùÒÔÔÚÏßÉÏ»·¾³²»Ì«¿ÉÄÜÈ¥¼Ç¼ÏàÓ¦µÄÈÕÖ¾¡£ÕâÀïÎÒÃÇʹÓöÔÏßÉÏ·þÎñ½øÐÐʵʱÁ÷Á¿Â¼ÖÆ£¬½áºÏ
RPC ¿ò¼ÜÌṩµÄÂ¼ÖÆ¹¦ÄÜ£¬¶Ô¼¯ÈºÖеÄij¼¸Ì¨»úÆ÷¿ªÆôÂ¼ÖÆ£¬¸ù¾ÝÒªÂ¼ÖÆµÄ½Ó¿ÚºÍ·½·¨Ãû£¬½«ÇëÇóÊý¾ÝÉϱ¨µ½Â¼ÖÆÁ÷Á¿µÄ»º³å·þÎñ£¨Broker£©ÖУ¬ÔÙÓÉ
Broker Éú³É×îÖÕµÄѹ²â´Ê±í£¬ÉÏ´«µ½´æ´¢Æ½Ì¨£¨S3£©¡£

RPC Client£º·þÎñµÄµ÷Ó÷½
Server£º·þÎñÌṩ·½
Broker£ºÂ¼ÖƺóÁ÷Á¿»º³å·þÎñÆ÷
S3£ºÁ÷Á¿×îÖմ洢ƽ̨
ÆäËûÓÅ»¯£º
Á÷Á¿²ÎÊýÆ«ÒÆ
ÓÐЩ³¡¾°Ï£¬¹¹Ôì³öÀ´µÄÁ÷Á¿ÊDz»ÄÜÖ±½ÓʹÓõģ¬ÎÒÃÇÐèÒª¶ÔÓû§ ID¡¢ÊÖ»úºÅµÈÐÅÏ¢½øÐÐÊý¾ÝÆ«ÒÆ¡£Quake
Ò²ÊÇÌṩÁ˰üº¬ËÄÔòÔËËã¡¢Çø¼äÏÞ¶¨¡¢Ëæ»úÊý¡¢Ê±¼äÀàÐ͵ȶàÖÖÌæ»»¹æÔò¡£
´Ê±íÎļþµÄ·ÖƬ
Êý¾Ý¹¹Ôì²úÉúµÄ´Ê±íÎļþ£¬ÎÒÃÇÐèÒª½øÐÐÎïÀíÉ쵀ᅮ¬£¬ÒÔ±£Ö¤Ã¿¸ö·ÖƬÎļþ´óС¾¡¿ÉÄܾùÔÈ£¬²¢ÇÒ¿ØÖÆÔÚÒ»¶¨´óС֮ÄÚ¡£Õâô×öµÄÖ÷ÒªÔÒòÊÇ£¬ºóÐøÑ¹²â¿Ï¶¨ÊÇÓÉÒ»¸ö·Ö²¼Ê½µÄѹ²â¼¯Èº½øÐÐÁ÷Á¿µÄ´òÈ룬¿¼Âǵ½µ¥»úÀÈ¡´Ê±íµÄËٶȺͼÓÔØ´Ê±íµÄ´óСÏÞÖÆ£¬Èç¹û½«´Ê±í½øÐÐ·ÖÆ¬µÄ»°£¬¿ÉÒÔÓÐÖúÓÚÈÎÎñµ÷¶È¸üºÏÀíµÄ½øÐзÖÅä¡£
ѹ²â¸ôÀë
×öÏßÉÏѹ²âÓëÏßÏÂѹ²â×î´ó²»Í¬ÔÚÓÚ£¬ÏßÉÏѹ²âÒª±£Ö¤Ñ¹²âÐÐΪ°²È«Çҿɿأ¬²»»áÓ°ÏìÓû§µÄÕý³£Ê¹Ó㬲¢ÇÒ²»»á¶ÔÏßÉÏ»·¾³Ôì³ÉÈκεÄÊý¾ÝÎÛȾ¡£Òª×öµ½ÕâÒ»µã£¬Ê×Òª½â¾öµÄÊÇѹ²âÁ÷Á¿µÄʶ±ðÓë͸´«ÎÊÌâ¡£ÓÐÁËѹ²â±êʶºó£¬¸÷·þÎñÓëÖмä¼þ¾Í¿ÉÒÔÒÀ¾Ý±êʶÀ´½øÐÐѹ²â·þÎñ·Ö×éÓëÓ°×Ó±í·½°¸µÄʵʩ¡£
²âÊÔ±êʶ͸´«
¶ÔÓÚµ¥·þÎñÀ´Ëµ£¬Ê¶±ðѹ²âÁ÷Á¿ºÜÈÝÒ×£¬Ö»ÒªÔÚÇëÇóÍ·ÖмӸöÌØÊâµÄѹ²â±êʶ¼´¿É£¬HTTP ºÍ RPC ·þÎñÊÇÒ»ÑùµÄ¡£µ«ÊÇ£¬ÒªÔÚÕûÌõÍêÕûµÄµ÷ÓÃÁ´Â·ÖÐҪʼÖÕ±£³Öѹ²â±êʶ£¬Õâ¼þʾͷdz£À§ÄÑ¡£
¿çÏ̼߳äµÄ͸´«£º
¶ÔÓÚÉæ¼°¶àÏ̵߳÷ÓõķþÎñÀ´Ëµ£¬Òª±£Ö¤²âÊÔ±êʶÔÚ¿çÏ̵߳ÄÇé¿öϲ»¶ªÊ§¡£ÕâÀïÒÔ Java Ó¦ÓÃΪÀý£¬Ö÷Ï̸߳ù¾Ýѹ²âÇëÇ󣬽«²âÊÔ±êʶдÈ뵱ǰÏ̵߳Ä
ThreadLocal ¶ÔÏóÖУ¨ThreadLocal »áΪÿ¸öÏ̴߳´½¨Ò»¸ö¸±±¾£¬ÓÃÀ´±£´æÏß³Ì×ÔÉíµÄ¸±±¾±äÁ¿£©£¬ÀûÓÃ
InheritableThreadLocal µÄÌØÐÔ£¬¶ÔÓÚ¸¸Ïß³Ì ThreadLocal ÖеıäÁ¿»á´«µÝ¸ø×ÓỊ̈߳¬±£Ö¤ÁËѹ²â±êʶµÄ´«µÝ¡£¶ø¶ÔÓÚ²ÉÓÃÏ̳߳صÄÇé¿ö£¬Í¬Ñù¶ÔÏ̳߳ؽøÐÐÁË·â×°£¬ÔÚÍùÏ̳߳ØÖÐÌí¼ÓÏß³ÌÈÎÎñʱ£¬¶îÍâ±£´æÁË
ThreadLocal ÖеıäÁ¿£¬Ö´ÐÐÈÎÎñʱÔÙ½øÐÐÌæ»» ThreadLocal ÖеıäÁ¿¡£
¿ç·þÎñ¼äµÄ͸´«£º
¶ÔÓÚ¿ç·þÎñµÄµ÷Ó㬼ܹ¹ÍŶӶÔËùÓÐÉæ¼°µ½µÄÖмä¼þ½øÐÐÁËÒ»Ò»¸ÄÔì¡£ÀûÓà Mtrace £¨¹«Ë¾ÄÚ²¿Í³Ò»µÄ·Ö²¼Ê½»á»°¸ú×Ùϵͳ£©µÄ·þÎñ¼ä´«µÝÉÏÏÂÎÄÌØÐÔ£¬ÔÚÔÓд«ÊäÉÏÏÂÎĵĻù´¡ÉÏ£¬Ìí¼ÓÁ˲âÊÔ±êʶµÄÊôÐÔ£¬ÒÔ±£Ö¤´«ÊäÖÐʼÖÕ´ø×ŲâÊÔ±êʶ¡£ÏÂͼÊÇ
Mtrace ÉÏÏÂÓε÷ÓõĹØÏµÍ¼£º

Á´Â·Õï¶Ï
ÓÉÓÚÁ´Â·¹ØÏµµÄ¸´ÔÓÐÔ£¬Ò»´Îѹ²âÉæ¼°µÄÁ´Â·¿ÉÄܷdz£¸´ÔÓ¡£ºÜ¶àʱºò£¬ÎÒÃǺÜÄÑÈ·Èϼä½ÓÒÀÀµµÄ·þÎñÓÖÒÀÀµÁËÄÄЩ·þÎñ£¬¶øÈκÎÒ»¸ö»·½ÚÖ»Òª³öÏÖÎÊÌ⣬±ÈÈçij¸öÖмä¼þ°æ±¾²»´ï±ê£¬²âÊÔ±êʶ¾Í²»»áÔÙÍùϽøÐÐ͸´«¡£Quake
ÌṩÁËÁ´Â·Æ¥Åä·ÖÎöµÄÄÜÁ¦£¬Í¨¹ýƽ̨ÊÔ̽ÐԵط¢ËÍÒµÎñʵ¼ÊÐèҪѹ²âµÄÇëÇ󣬸ù¾Ý MtraceÌṩµÄÊý¾Ý£¬°ïÖúÒµÎñ¿ìËÙ¶¨Î»µ½±ê¼Ç͸´«Ê§°ÜµÄ·þÎñ½Úµã¡£
Á´Â·Õï¶Ï×ÜÀÀ

Á´Â·Õï¶ÏÏêÇ鶨λ

ѹ²â·þÎñ¸ôÀë
һЩ´óÐ͵Äѹ²âͨ³£Ñ¡ÔñÔÚÉîÒ¹µÍ·åʱÆÚ½øÐУ¬½¨ÒéÏà¹ØµÄÈËԱҪʱ¿Ì¹Ø×¢¸÷×Ô¸ºÔðµÄϵͳָ±ê£¬ÒÔÃâÓ°ÏìÏßÉϵÄÕý³£Ê¹Ó᣶ø¶ÔÓÚһЩÈÕ³£»¯µÄѹ²â£¬Quake
ÌṩÁ˸ü¼Ó°²È«±ã½ÝµÄ·½Ê½½øÐС£ÔڵͷåÆÚ£¬»úÆ÷»ù±¾¶¼ÊÇ´¦ÓڱȽϿÕÏеÄ״̬¡£ÎÒÃǽ«¸ù¾ÝÒµÎñµÄÐèÇóÔÚÏßÉ϶ÔÕûÌõÁ´Â·¿ìËÙ´´½¨Ò»¸öѹ²â·Ö×飬¸ô³öÒ»Åú¿ÕÏеĻúÆ÷ÓÃÓÚѹ²â¡£½«Õý³£Á÷Á¿Óë²âÊÔÁ÷Á¿ÔÚ»úÆ÷¼¶±ð½øÐиôÀ룬´Ó¶ø½µµÍѹ²â¶Ô·þÎñ¼¯Èº´øÀ´µÄÓ°Ïì¡£

ÒÀÀµ±êʶ͸´«µÄ»úÖÆ£¬ÔÚ Quake ƽ̨ÉÏÌṩÁË»ùÓÚ IP¡¢»úÆ÷Êý¡¢°Ù·Ö±È²»Í¬·½Ê½µÄ¸ôÀë²ßÂÔ£¬ÒµÎñÖ»ÐèÌṩËùÐè¸ôÀëµÄ·þÎñÃû£¬ÓÉ
Quake ½øÐÐÒ»¼ü»¯µÄ¿ªÆôÓë¹Ø±Õ¡£
ѹ²âÊý¾Ý¸ôÀë
»¹ÓÐÒ»¸ö±È½Ï¼¬ÊÖµÄÎÊÌâÊÇÕë¶ÔдÇëÇóµÄѹ²â£¬ÒòΪËü»áÏòÕæÊµµÄÊý¾Ý¿âÖÐдÈë´óÁ¿µÄÔàÊý¾Ý¡£ÎÒÃÇ½è¼øÁ˰¢Àï×îÔçÌá³öµÄ¡°Ó°×Ó±í¡±¸ôÀëµÄ·½°¸¡£¡°Ó°×Ó±í¡±µÄºËÐÄ˼ÏëÊÇ£¬Ê¹ÓÃÏßÉÏͬһ¸öÊý¾Ý¿â£¬°üÀ¨¹²ÏíÊý¾Ý¿âÖеÄÄÚ´æ×ÊÔ´£¬ÒòΪÕâÑù²ÅÄܸü½Ó½üÕæÊµ³¡¾°£¬Ö»ÊÇÔÚдÈëÊý¾Ýʱ»áдÔÚÁËÁíÒ»ÕÅ¡°Ó°×Ó±í¡±ÖС£

¶ÔÓÚ KV ´æ´¢£¬Ò²ÊÇÀàËÆµÄ˼·¡£ÕâÀイһϠMQ£¨ÏûÏ¢¶ÓÁУ©µÄʵÏÖ£¬MQ °üÀ¨Éú²úºÍÏû·ÑÁ½¶Ë£¬ÒµÎñ¿ÉÒÔ¸ù¾Ýʵ¼ÊµÄÐèҪѡÔñÔÚÉú²ú¶ËºöÂÔ´ø²âÊÔ±êʶµÄÏûÏ¢£¬»òÕßÔÚÏû·Ñ¶Ë½ÓÊÕÏûÏ¢ºóÔÙºöÂÔÁ½ÖÖÑ¡Ôñ¡£
µ÷¶ÈÖÐÐĺËÐÄÉè¼Æ
µ÷¶ÈÖÐÐÄ×÷ΪÕû¸öѹ²âϵͳµÄ´óÄÔ£¬Ëü¹ÜÀíÁËËùÓеÄѹ²âÈÎÎñºÍѹ²âÒýÇæ¡£»ùÓÚ×ÔÉíµÄµ÷¶ÈËã·¨£¬µ÷¶ÈÖÐÐĽ«Ã¿¸öѹ²âÈÎÎñ²ð·Ö³ÉÈô¸É¸ö¿ÉÔÚµ¥Ì¨Ñ¹²âÒýÇæÉÏÖ´Ðеļƻ®£¬²¢½«¼Æ»®ÒÔÖ¸ÁîµÄ·½Ê½Ï·¢¸ø²»Í¬µÄÒýÇæ£¬´Ó¶øÖ´ÐÐѹ²âÈÎÎñ¡£
×ÊÔ´¼ÆËã
²»Í¬µÄѹ²â³¡¾°£¬ÐèÒªµÄ»úÆ÷×ÊÔ´²»Ò»Ñù¡£ÒÔ HTTP ·þÎñΪÀý£¬ÔÚÇëÇó/ÏìÓ¦Ìå¶¼ÔÚ 1K ÒÔÄÚ£¬ÏìӦʱ¼äÔÚ
50ms ÒÔÄÚºÍ 1s ×óÓÒµÄÁ½¸öÇëÇ󣬵¥¸öʩѹ»úÄÜ´ïµ½µÄ¼«ÏÞÖµÍêÈ«²»Í¬¡£Ó°Ïìѹ²âÄÜÁ¦µÄÒòËØÓкܶ࣬¼ÆËãÖÐÐÄ»áÒÀ¾Ýѹ²âÄ£Ð͵IJ»Í¬²ÎÊý£¬½øÐÐ×ÊÔ´µÄ¼ÆËã¡£
Ö÷Òª²Î¿¼µÄÊý¾Ý°üÀ¨£º
ѹ²âÆÚÍûµ½´ïµÄ QPS¡£
ѹ²âÇëÇóµÄƽ¾ùÏìӦʱ¼äºÍÇëÇó/ÏìÓ¦Ìå´óС¡£
ѹ²âµÄ´Ê±í´óС¡¢·ÖƬÊý¡£
ѹ²âÀàÐÍ¡£
ËùÐèѹ²âµÄ»ú·¿¡£
ʼþ×¢Èë»úÖÆ
ÒòΪÕû¸öѹ²â¹ý³ÌÒ»Ö±´¦ÔÚ¶¯Ì¬±ä»¯Ö®ÖУ¬ÒµÎñ»á¸ù¾ÝϵͳµÄʵ¼ÊÇé¿ö¶ÔѹÁ¦½øÐÐÏàÓ¦µÄµ÷Õû¡£ÔÚÕû¸ö¹ý³ÌÖвúÉúµÄʼþÀàÐͱȽ϶࣬°üÀ¨µ÷Õû
QPS µÄʼþ¡¢´¥·¢È۶ϵÄʼþ¡¢¿ªÆôʹÊ×¢Èë¡¢¿ªÆô´úÂë¼¶ÐÔÄÜ·ÖÎöµÄʼþµÈµÈ£¬Í¬Ê±´¥·¢Ê¼þµÄÇé¿öÒ²ÓкܶàÖÖ£¬°üÀ¨Óû§ÊÖ¶¯´¥·¢¡¢ÓÉÓÚϵͳ±£»¤»úÖÆ´¥µÈµÈ¡£ËùÒÔ£¬ÎÒÃÇÔڼܹ¹ÉÏÒ²×öÁËÏàÓ¦µÄÓÅ»¯£¬Æä´óÖ¼ܹ¹ÈçÏ£º

ÔÚ´úÂëÉè¼Æ²ãÃæ£¬ÎÒÃDzÉÓÃÁ˹۲ìÕߺÍÔðÈÎÁ´Ä£Ê½£¬½«»á´¥·¢Ê¼þµÄ¾ßÌåÇé¿ö×÷Ϊ¹Û²ìÖ÷Ì⣬Ö÷ÌâµÄ¶©ÔÄÕß»áÊÓÇé¿öÀàÐͲúÉúÒ»Á¬´®Ö´ÐÐʼþ¡£¶øÔÚÖ´ÐÐʼþÖÐÓÖÒýÈëÔðÈÎÁ´Ä£Ê½£¬½«¸÷×ԵĴ¦ÀíÂß¼½øÐÐÓÐЧµÄ²ð·Ö£¬ÒÔ±ãºóÆÚ½øÐÐά»¤ºÍÄÜÁ¦À©³ä¡£
»úÆ÷¹ÜÀí
µ÷¶ÈÖÐÐĹÜÀíÁËËùÓеÄʩѹ»ú×ÊÔ´£¬ÕâЩʩѹ»ú·Ö²¼ÔÚ±±¾©¡¢ÉϺ£µÄ¶à¸ö»ú·¿£¬Ê©Ñ¹»ú²ÉÓÃÈÝÆ÷»¯·½Ê½½øÐв¿Êð£¬ÎªºóÐøµÄ¶¯Ì¬À©ÈÝ¡¢Ê©Ñ¹»ú»Ò¶ÈÉý¼¶ÒÔ¼°Òì³£Õª³ýµÄÌṩÁË»ù´¡±£ÕÏ¡£
¶¯Ì¬À©ÈÝ
ÒµÎñ¶Ôѹ²âµÄÐèÇóÓиߵͷåÖ®·Ö£¬ËùÒÔÆ½Ì¨Ò²ÐèÒªÊÂÏȲ¿ÊðÒ»²¿·Ö»úÆ÷ÓÃÓÚÈÕ³£µÄÒµÎñѹ²â¡£µ±ÒµÎñÉêÇë×ÊÔ´²»×ãʱ£¬Æ½Ì¨»á°´Ðèͨ¹ýÈÝÆ÷»¯·½Ê½¶¯Ì¬µÄ½øÐÐÀ©ÈÝ¡£ÕâÑù×öµÄºÃ´¦£¬Ò»·½ÃæÊǽÚÊ¡»úÆ÷×ÊÔ´£¬ÁíÒ»·½Ãæ¾ÍÊDZãÓÚÉý¼¶¡£²»ÄÑÏëÏó£¬Éý¼¶50̨»úÆ÷Ïà¶ÔÉý¼¶200̨»úÆ÷£¬Ç°Õ߸¶³öµÄ´ú¼Û¿Ï¶¨¸üСһЩ¡£
»Ò¶ÈÉý¼¶
Õû¸ö»úÆ÷³ØÎ¬»¤×ż¸°Ų̀»úÆ÷£¬Èç¹ûÐèÒª¶ÔÕâЩ»úÆ÷½øÐÐÉý¼¶²Ù×÷£¬ÄѶÈϵÊýÒ²±È½Ï¸ß¡£ÎÒÃÇÒÔǰµÄ×ö·¨ÊÇ£¬ÔÚûÓÐÒµÎñѹ²âµÄʱºò£¬½«»úÆ÷È«²¿ÏÂÏߣ¬È»ºóÔÙÅúÁ¿²¿Êð£¬Õû¸öÉý¼¶¹ý³Ì¼ÈºÄʱÓÖÍ´¿à¡£Îª´Ë£¬ÎÒÃÇÒýÈëÁ˻ҶÈÉý¼¶µÄ¸ÅÄ¶Ôÿ̨ʩѹ»úÌṩÁ˰汾µÄ¸ÅÄ»úÆ÷Ñ¡Ôñʱ£¬ÓÅÏÈʹÓÃÎȶ¨°æµÄ»úÆ÷¡£¸ù¾Ý»úÆ÷ĿǰʹÓõÄ״̬£¬·ÖÅúÌæ»»Î´Ê¹ÓõĻúÆ÷£¬´ýа汾µÄ»úÆ÷ÅÜÍê»ù×¼ºÍ»Ø¹é²âÊԺ󣬽«»úÆ÷Ñ¡ÔñµÄ²ßÂÔ¸ÄΪ×îа档ͨ¹ýÕâÖÖ·½Ê½£¬ÎÒÃÇ¿ÉÒÔÈÃÕû¸öÉý¼¶¹ý³Ì£¬Ïà¶Ôƽ˳¡¢Îȶ¨£¬ÇÒÄܹ»ÈÃÒµÎñÎÞ¸ÐÖª¡£

Òì³£Õª³ý
µ÷¶ÈÖÐÐÄά³ÖÁËÓëËùÓÐʩѹ»úµÄÐÄÌø¼ì²â£¬¶ÔÓÚÒì³£½ÚµãÌṩÁËÕª³ýÌæ»»µÄÄÜÁ¦¡£»úÆ÷Õª³ýÄÜÁ¦ÔÚѹ²â¹ý³ÌÖзdz£ÓбØÒª£¬ÒòΪѹ²âÆÚ¼ä£¬ÎÒÃÇÐèÒª±£Ö¤ËùÓеĻúÆ÷ÐÐΪ¿É¿Ø¡£²»È»ÔÚÐèÒª½µµÍѹÁ¦»òֹͣѹ²âʱ£¬Èç¹ûʩѹ»ú²»ÄÜÕý³£×ö³öÏìÓ¦£¬Æäµ¼Öµĺó¹û½«»á·Ç³£ÑÏÖØ¡£
ѹ²âÒýÇæÓÅ»¯
ÔÚѹ²âÒýÇæµÄÑ¡ÔñÉÏ£¬Quake Ñ¡ÔñÁË×ÔÑÐѹ²âÒýÇæ¡£ÕâÒ²ÊdzöÓÚÀ©Õ¹ÐÔºÍÐÔÄܲãÃæµÄ¿¼ÂÇ£¬ÌرðÔÚÀ©Õ¹ÐÔ²ãÃæ£¬Ö÷ÒªÊǶԸ÷ÖÖÐÒéµÄÖ§³Ö£¬ÕâÀï²»Õ¹¿ª½øÐвûÊö¡£ÐÔÄÜ·½Ã棬ΪÁ˱£Ö¤ÒýÇæÃ¿ÃëÄܲúÉú×ã¹»¶àµÄÇëÇó£¬ÎÒÃǶÔÒýÇæ×öÁ˺ܶàÐÔÄÜÓÅ»¯µÄ¹¤×÷¡£
ÐÔÄÜÎÊÌâ
ͨ³£µÄѹ²âÒýÇæ£¬²ÉÓõÄÊÇ BIO µÄ·½Ê½£¬ÀûÓöàÏß³ÌÀ´Ä£Äâ²¢·¢µÄÓû§Êý£¬Ã¿¸öÏ̵߳Ť×÷·½Ê½ÊÇ£ºÇëÇó-µÈ´ý-ÏìÓ¦¡£
ͨÐÅͼ£º

ÕâÖÖ·½Ê½Ö÷ÒªµÄÎÊÌâÊÇ£¬ÖмäµÄµÈ´ý¹ý³Ì£¬Ïß³Ì×ÊÔ´ÍêÈ«±»ÀË·Ñ¡£ÕâÖÖ×éºÏģʽÏ£¬ÐÔÄÜÎÊÌâÒ²»á¸üÑÏÖØ£¨×éºÏģʽ£º¼´Ä£ÄâÓû§Ò»Á¬´®µÄÓû§ÐÐΪ£¬ÒÔϵ¥ÎªÀý£¬ÇëÇó×éÖлá°üº¬Óû§µÇ¼¡¢¼ÓÈ빺Îï³µ¡¢´´½¨¶©µ¥¡¢Ö§¸¶¶©µ¥¡¢²é¿´Ö§¸¶×´Ì¬¡£ÕâЩÇëÇó±Ë´Ë¼äÊÇ´æÔÚÏȺó¹ØÏµµÄ£¬ÏÂÒ»¸öÇëÇó»áÒÀÀµÓÚÉÏÒ»¸öÇëÇóµÄ½á¹û¡££©£¬ÈôÇëÇó×éÖÐÓÐ5¸ö´®ÁªÇëÇó£¬Ã¿¸öÇëÇóµÄʱ³¤ÊÇ200ms£¬ÄÇÍê³ÉÒ»×éÇëÇó¾ÍÐèÒª
1s ¡£ÕâÑùµÄ»°£¬µ¥»úµÄ×î´ó QPS ¾ÍÊÇÄÜ´´½¨µÄ×î´óÏß³ÌÊý¡£ÎÒÃÇÖªµÀ»úÆ÷ÄÜ´´½¨µÄÏß³ÌÊýÓÐÏÞ£¬Í¬Ê±Ïß³Ì¼äÆµ·±Çл»Ò²Óгɱ¾¿ªÏú£¬ÖÂʹÕâÖÖͨÐÅ·½Ê½ÄÜ´ïµ½µÄµ¥»ú×î´ó
QPS Ò²ºÜÓÐÏÞ¡£
ÕâÖÖÄ£Ð͵ڶþ¸öÎÊÌâÊÇ£¬Ïß³ÌÊý¿ØÖƵÄÁ£¶ÈÌ«´Ö£¬Èç¹ûÇëÇóÏìÓ¦ºÜ¿ì£¬½ö¼¸Ê®ºÁÃ룬Èç¹ûÔö¼ÓÒ»¸öỊ̈߳¬¿ÉÄÜ
QPS ¾ÍÉÏÕÇÁ˽«½ü100£¬Í¨¹ýÔö¼ÓÏß³ÌÊýµÄ·½Ê½ÎÞ·¨¾«×¼µÄ¿ØÖÆ QPS£¬Õâ¶Ô̽²âϵͳµÄ¼«ÏÞÀ´Ëµ£¬Ê®·ÖΣÏÕ¡£
IO Ä£ÐÍÓÅ»¯
ÎÒÃÇÏÈ¿´Ï NIO µÄʵÏÖ»úÖÆ£¬´Ó¿Í»§¶Ë·¢ÆðÇëÇóµÄ½Ç¶È¿´£¬´æÔÚµÄ IO ʼþ·Ö±ðÊǽ¨Á¢Á¬½Ó¾ÍÐ÷ʼþ£¨OP_CONNECT£©¡¢IO
¾ÍÐ÷µÄ¿É¶Áʼþ £¨OP_READ£© ºÍ IO ¾ÍÐ÷µÄ¿Éдʼþ£¨OP_WRITE£©£¬ËùÓÐ IO ʼþ»áÏòʼþÑ¡ÔñÆ÷£¨Selector£©½øÐÐ×¢²á£¬²¢ÓÉËü½øÐÐͳһµÄ¼àÌýºÍ´¦Àí£¬Selector
ÕâÀï²ÉÓõÄÊÇ IO ¶à·¸´Óõķ½Ê½¡£
ÔÚÁ˽â NIO µÄ´¦Àí»úÖÆºó£¬ÎÒÃÇÔÙ¿¼ÂÇ¿´ÈçºÎ½øÐÐÓÅ»¯¡£Õû¸öºËÐÄ˼Ïë¾ÍÊǸù¾ÝÔ¤ÉèµÄ QPS£¬±£Ö¤Ã¿Ãë·¢³öÖ¸¶¨ÊýÁ¿µÄÇëÇó£¬ÔÙÒÔ
IO ·Ç×èÈûµÄ·½Ê½½øÐкóÐøµÄ¶Áд²Ù×÷£¬È¡ÏûÁË BIO ÖÐÇëÇóµÈ´ýµÄʱ¼ä¡£ÓÅ»¯ºóµÄÂß¼ÈçÏ£º

ÓÅ»¯Ò»£º²ÉÓà Reactor ¶àÏß³ÌÄ£ÐÍ
ÕâÀïÖ÷ÒªºÄʱ¶¼ÔÚ IO µÄ¶ÁдʼþÉÏ£¬ÎªÁË´ïµ½µ¥Î»Ê±¼äÄÚ¾¡¿ÉÄܶàµÄ·¢Æðѹ²âÇëÇó£¬ÎÒÃǽ«Á¬½ÓʼþÓë¶Áдʼþ·ÖÀë¡£Á¬½Óʼþ²ÉÓõ¥Ïß³Ì
Selector µÄ·½Ê½À´´¦Àí£¬¶Áдʼþ·Ö±ðÓɶà¸ö Worker Ï̴߳¦Àí£¬Ã¿¸ö Worker Ïß³ÌÒ²ÊÇÒÔ
NIO ·½Ê½½øÐд¦Àí£¬Óɸ÷×﵀ Selector ´¦Àí IO ʼþµÄ¶Áд²Ù×÷¡£ÕâÀïÿ¸ö Worker
Ï̶߳¼ÓÐ×Ô¼ºµÄʼþ¶ÓÁУ¬Êý¾Ý±Ë´Ë¸ôÀ룬ÕâÑù×öÖ÷ÒªÊÇΪÁ˱ÜÃâÊý¾Ýͬ²½´øÀ´µÄÐÔÄÜ¿ªÏú¡£
ÓÅ»¯¶þ£ºÒµÎñÂß¼Óë IO ¶Áдʼþ·ÖÀë
ÕâÀï˵µÄÒµÎñÂß¼Ö÷ÒªÊÇÕë¶ÔÇëÇó½á¹ûµÄ´¦Àí£¬°üÀ¨¶ÔÇëÇóÊý¾ÝµÄ²ÉÑùÉϱ¨£¬¶Ôѹ²â½á¹ûµÄ½âÎöУÑ飬¶ÔÇëÇóת»»ÂÊµÄÆ¥ÅäµÈ¡£Èç¹û½«ÕâЩÂß¼·ÅÔÚ
Worker Ïß³ÌÖд¦Àí£¬±ØÈ»»áÓ°Ïì IO ¶ÁÈ¡µÄËÙ¶È¡£ÒòΪ Selector ÔÚ¼àÌýµ½ IO ¾ÍÐ÷ʼþºó£¬»á½øÐе¥Ï̴߳¦Àí£¬ËùÒÔËüµÄ´¦ÀíÒª¾¡¿ÉÄܵļòµ¥ºÍ¿ìËÙ£¬²»È»»áÓ°ÏìÆäËû¾ÍÐ÷ʼþµÄ´¦Àí£¬ÉõÖÁÔì³É¶ÓÁлýѹºÍÄÚ´æÎÊÌâ¡£
ÄÚ´æÓÅ»¯
ѹ²âÒýÇæÁíÒ»¸öÖØÒªµÄÖ¸±êÊÇ Full GC µÄʱ¼ä£¬ÒòΪÈç¹ûÒýÇæÆµ·±³öÏÖ Full GC£¬ÄÇ»áÔì³Éʵ¼Êѹ²âÇúÏߣ¨QPS£©µÄ¶¶¶¯£¬ÕâÖÖ¶¶¶¯»á·Å´ó±»Ñ¹·þÎñÕæÊµµÄÏìӦʱ¼ä£¬Ôì³ÉÕæÊµ
QPS ÔÚÔ¤ÉèÖµµÄÉÏϲ¨¶¯¡£ÑÏÖØµÄÇé¿ö£¬Èç¹ûÊdz¤Ê±¼ä³öÏÖ Full GC£¬Ö±½Ó¾Íµ¼ÖÂԤѹµÄ QPS
ѹ²»ÉÏÈ¥µÄÎÊÌâ¡£
ÏÂÃæ¿´Ò»×é Full GC ²úÉúµÄѹ²âÇúÏߣº


ΪÁ˽â¾ö GC µÄÎÊÌ⣬Ö÷Òª´ÓÓ¦ÓÃ×ÔÉíµÄÄÚ´æ¹ÜÀíºÍ JVM ²ÎÊýÁ½¸öά¶ÈÀ´½øÐÐÓÅ»¯¡£
ºÏÀí·ÖÅäÄÚ´æ¶ÔÏó
ÇëÇó¶ÔÏó¼ÓÔØ»úÖÆÓÅ»¯
ÒýÇæÊ×ÏȼÓÔØ´Ê±íÊý¾Ýµ½ÄÚ´æÖУ¬È»ºó¸ù¾Ý´Ê±íÊý¾ÝÉú³ÉÇëÇó¶ÔÏó½øÐз¢ËÍ¡£¶ÔÓڴʱíÊý¾ÝµÄ¼ÓÔØ£¬ÐèÒªÉèÖÃÒ»¸ö´óСÉÏÏÞ£¬ÕâЩÊý¾ÝÊÇ»á½øÈë¡°ÀÏÄê´ú¡±£¬Èç¹û¡°ÀÏÄê´ú¡±Õ¼ÓõıÈÀý¹ý¸ß£¬ÄÇ¾Í»áÆµ·¢³öÏÖ
Full GC µÄÇé¿ö¡£ÕâÀï¶ÔÓڴʱíÊý¾Ý¹ý´óµÄÇé¿ö£¬¿ÉÒÔ¿¼ÂDzÉÓÃÁ÷ʽ¼ÓÔØµÄ·½Ê½£¬ÔÚ¶ÓÁÐÖÐά³ÖÒ»¶¨ÊýÁ¿µÄÇëÇó£¬Í¨¹ý±ß»Ø·Å±ß¼ÓÔØµÄ·½Ê½À´¿ØÖÆÄÚ´æ´óС¡£
ÇëÇó¶ÔÏóµÄ¿ìÓÿìÏú
ÒýÇæÔÚʵ¼Êѹ²â¹ý³ÌÖУ¬¼ÙÉèµ¥»úÊÇ 1W µÄ QPS£¬ÄÇËüÿÃë¾Í»á´´½¨ 1W ¸öÇëÇó¶ÔÏó£¬ÕâЩ¶ÔÏó¿ÉÄÜÔÚÏÂÒ»Ãë´¦ÀíÍêºó¾Í»á½øÐÐÏú»Ù¡£Èç¹ûÏú»Ù¹ýÂý£¬¾Í»áÔì³É´óÁ¿ÎÞЧ¶ÔÏó½úÉýÀÏÄê´ú£¬ËùÒÔÔÚ¶ÔÏìÓ¦½á¹ûµÄ´¦ÀíÖУ¬²»ÒªÓкÄʱµÄ²Ù×÷£¬±£Ö¤ÇëÇó¶ÔÏóµÄ¿ìËÙÊÍ·Å¡£
ÕâÀï·ÅÆú¶ÔÏó¸´ÓõÄÔÒòÊÇ£¬ÇëÇóµÄ»ù±¾ÐÅÏ¢Õ¼ÓõÄÄÚ´æ¿Õ¼ä±È½ÏС¡£¿ÉÒ»µ©×ª»»³ÉÁË´ý·¢ËͶÔÏóºó£¬Õ¼ÓõÄÄÚ´æ¿Õ¼ä»á±ÈÔʼÊý¾Ý´óºÜ¶à£¬ÔÚ
HTTP ºÍ RPC ·þÎñÖж¼´æÔÚͬÑùµÄÎÊÌâ¡£¶øÇÒ֮ǰʹÓà Apache HttpAsyncClient
×÷Ϊ HTTP ÇëÇóµÄÒì²½¿ò¼Üʱ£¬·¢ÏÖʵ¼ÊÇëÇóµÄ Response ¶ÔÏó¹ÒÔÚÇëÇó¶ÔÏóÉíÉÏ¡£Ò²¾ÍÊÇ˵һ¸öÇëÇó¶ÔÏóÔÚ½ÓÊÕµ½½á¹ûºó£¬¸Ã¶ÔÏóÄÚ´æÔö¼ÓÁËÏìÓ¦½á¹ûµÄ¿Õ¼äÕ¼Óã¬Èç¹û²ÉÓø´ÓÃÇëÇó¶ÔÏóµÄ·½Ê½£¬ºÜÈÝÒ×Ôì³ÉÄÚ´æÐ¹Â¶µÄÎÊÌâ¡£
JVM ²ÎÊýµ÷ÓÅ
ÕâÀïÒÔ JVM µÄ CMS ÊÕ¼¯Æ÷ΪÀý£¬¶ÔÓڸ߲¢·¢µÄ³¡¾°£¬Ë²¼ä²úÉú´óÁ¿µÄ¶ÔÏó£¬ÕâЩ¶ÔÏóµÄ´æ»îʱ¼äÓַdz£¶Ì£¬ÎÒÃÇÐèÒª£º
Êʵ±Ôö´óÐÂÉú´úµÄ´óС£¬±£Ö¤ÐÂÉú´úÓÐ×ã¹»µÄ¿Õ¼äÀ´ÈÝÄÉвúÉúµÄ¶ÔÏó¡£µ±È»Èç¹ûÀÏÄê´úÉèÖõĹýС£¬»áµ¼ÖÂÆµ·±µÄ
Full GC¡£
Êʵ±µ÷´óÐÂÉú´úÏò½úÉýÀÏÄê´úµÄ´æ»î´ÎÊý£¬¼õÉÙÎÞЧ¶ÔÏó½úÉýÀÏÄê´úµÄ»úÂÊ£»Í¬Ê±¿ØÖÆÐÂÉú´ú´æ»îÇøµÄ´óС£¬Èç¹ûÉèÖõĹýС£¬ºÜÈÝÒ×Ôì³ÉÄÇЩÎÞ·¨ÈÝÄɵÄÐÂÉú´ú¶ÔÏóÌáǰ½úÉý¡£
Ìáǰ´¥·¢ÀÏÄê´úµÄ Full GC£¬ÒòΪÈç¹ûµÈ´ýÀÏÄê´úÂúÁËÔÙ¿ªÊ¼»ØÊÕ£¬¿ÉÄÜ»áÌ«Íí£¬ÕâÑùºÜÈÝÒ×Ôì³É³¤Ê±¼äµÄ
Full GC¡£Ò»°ãÉèÔÚ 70% µÄ°²È«Ë®Î»½øÐлØÊÕ¡£¶øÇÒ»ØÊÕµÄʱºò£¬ÐèÒª´¥·¢Ò»´Î Young GC£¬Õâ¿ÉÒÔ¼õÉÙÖØÐ±ê¼Ç½×¶ÎÓ¦ÓÃÔÝÍ£µÄʱ¼ä£¬ÁíÒ»·½Ã棬Ҳ·ÀÖ¹ÔÚ»ØÊÕ½áÊøºó£¬ÓдóÁ¿ÎÞЧµÄ¶ÔÏó½øÈëÀÏÄê´úÖС£
ÉèÖÃÐèÒª½øÐÐÄÚ´æÑ¹ËõÕûÀíµÄ GC ´ÎÊý£¬ÄÚ´æÕûÀí£¬ºÜ¶àʱºòÊÇÔì³É³¤Ê±¼ä GC µÄÖ÷ÒªÔÒò¡£ÒòΪÄÚ´æÕûÀíÊDzÉÓÃ
Serial Old Ëã·¨£¬ÒÔµ¥Ï̵߳ķ½Ê½½øÐд¦Àí£¬Õâ¸ö¹ý³Ì»á·Ç³£Âý¡£ÓÈÆäÊÇÔÚÀÏÄê´ú¿Õ¼ä²»×ãµÄÇé¿öÏ£¬GC
µÄʱ¼ä»á±äµÃ¸ü³¤¡£
¼à¿ØÄ£¿é
ѹ²â¿Ï¶¨»á¶ÔÏßÉÏ·þÎñ²úÉúÒ»¶¨µÄÓ°Ïì£¬ÌØ±ðÊÇһЩ̽²âϵͳ¼«ÏÞµÄѹ²â£¬ÎÒÃÇÐèÒª¾ß±¸Ãë¼¶¼à¿ØµÄÄÜÁ¦£¬ÒÔ¼°¿É¿¿µÄÈ۶Ͻµ¼¶»úÖÆ¡£
¿Í»§¶Ë¼à¿Ø
ѹ²âÒýÇæ»á½«Ã¿ÃëµÄÊý¾Ý»ã×ܺóÉϱ¨¸ø¼à¿ØÄ£¿é£¬¼à¿ØÄ£¿é»ùÓÚËùÓÐÉϱ¨À´µÄÊý¾Ý½øÐÐͳ¼Æ·ÖÎö¡£ÕâÀïµÄ·ÖÎöÐèҪʵʱ½øÐд¦Àí£¬ÕâÑù²ÅÄÜ×öµ½¿Í»§¶ËµÄÃë¼¶¼à¿Ø¡£¼à¿ØµÄÊý¾Ý°üÀ¨¸÷
TP ÏßµÄÏìÓ¦Çé¿ö¡¢QPS ÇúÏß²¨¶¯¡¢´íÎóÂÊÇé¿öÒÔ¼°²ÉÑùÈÕÖ¾·ÖÎöµÈµÈ¡£
ʵʱ QPS ÇúÏß


´íÎóÂÊͳ¼Æ


²ÉÑùÈÕÖ¾

·þÎñ¶Ë¼à¿Ø
³ýÁËͨ¹ýÒýÇæÉϱ¨µÄѹ²â½á¹ûÀ´½øÐÐÏàÓ¦µÄ¼à¿Ø·ÖÎöÖ®Í⣬Quake »¹¼¯³ÉÁ˹«Ë¾ÄÚ²¿Í³Ò»µÄ¼à¿Ø×é¼þ£¬ÓÐ¼à¿Ø»úÆ÷Ö¸±êµÄ
Falcon ϵͳ£¨Ð¡Ã׿ªÔ´£©£¬»¹ÓÐ¼à¿Ø·þÎñÐÔÄÜµÄ CATϵͳ£¨ÃÀÍÅÒѾ¿ªÔ´£©¡£Quake ÌṩÁËͳһµÄ¹ÜÀíÅäÖ÷þÎñ£¬ÈÃÒµÎñÄÜÔÚ
Quake ÉÏ·½±ã¹Û²ìÕû¸öϵͳµÄ½¡¿µ×´¿ö¡£
È۶ϱ£»¤»úÖÆ
Quake ÌṩÁ˿ͻ§¶ËºÍ·þÎñ¶ËÁ½·½ÃæµÄÈ۶ϱ£»¤´ëÊ©¡£
Ê×ÏÈÊǿͻ§¶ËÈÛ¶Ï£¬¸ù¾ÝÒµÎñ×Ô¶¨ÒåµÄÈÛ¶ÏãÚÖµ£¬Quake »áʵʱ·ÖÎö¼à¿ØÊý¾Ý£¬µ±´ïµ½ÈÛ¶ÏãÚֵʱ£¬ÈÎÎñµ÷¶ÈÆ÷»áÏòѹ²âÒýÇæ·¢ËͽµµÍ
QPS »òÕßÖ±½ÓÖжÏѹ²âµÄÖ¸Á·Àֹϵͳ±»Ñ¹¹Ò¡£

±»Ñ¹·þÎñͬÑùÒ²ÌṩÁËÈÛ¶Ï»úÖÆ£¬Quake ¼¯³ÉÁ˹«Ë¾ÄÚ²¿µÄÈÛ¶Ï×é¼þ£¨Rhino£©£¬ÌṩÁËѹ²â¹ý³ÌÖеÄÈ۶Ͻµ¼¶ºÍÏÞÁ÷ÄÜÁ¦¡£Óë´Ëͬʱ£¬Quake
»¹ÌṩÁËѹ²â¹ÊÕÏÑÝÁ·µÄÄÜÁ¦£¬ÔÚѹ²â¹ý³ÌÖнøÐÐÈËΪµÄ¹ÊÕÏ×¢È룬À´ÑéÖ¤Õû¸öϵͳµÄ½µ¼¶Ô¤°¸¡£
ÏîÄ¿×ܽá
×îºó£¬×ܽáÒ»ÏÂ×ö Quake Õâ¸öÏîÄ¿µÄһЩÐĵá£
С²½¿ìÅÜ
ÆäʵÔÚ Quake ³öÀ´Ö®Ç°£¬ÃÀÍŹ«Ë¾ÄÚ²¿ÒÑÓÐÒ»¸öѹ²âƽ̨£¨Ptest £©£¬ËüµÄ¶¨Î»ÊÇÕë¶Ôµ¥·þÎñµÄÐÔÄÜѹ²â¡£ÎÒÃÇ·ÖÎöÁË
Ptest ƽ̨´æÔÚµÄһЩÎÊÌ⣬Æäѹ²âÒýÇæÄÜÁ¦Ò²·Ç³£ÓÐÏÞ¡£ÔÚÃÀÍÅ·¢Õ¹ÔçÆÚ£¬Èç¹ûÓÐÁ½¸ö´óÒµÎñÏßÒª½øÐÐѹ²âµÄ»°£¬»úÆ÷×ÊÔ´ÍùÍù»á²»×㣬ÕâÐèÒªÒµÎñ·½±Ë´Ëе÷¡£ÒòΪ׼±¸Ò»´Îѹ²â£¬Ç°ÆÚͶÈë³É±¾Ì«¸ß£¬Óû§ÐèÒª×Ô¼º¹¹Ôì´Ê±í£¬ÓÈÆäÊÇ
RPC ·þÎñ£¬Óû§»¹ÐèÒª×Ô¼ºÉÏ´« IDL ÎļþµÈµÈ£¬·Ç³£·±Ëö¡£
Quake Õë¶ÔÒµÎñµÄÕâЩʹµã£¬Õû¸öÍŶӴó¸Å»¨·ÑÒ»¸ö¶àÔµÄʱ¼ä¿ª·¢³öÁ˵ÚÒ»¸ö°æ±¾£¬²¢ÇÒ¿ìËÙʵÏÖÁËÉÏÏß¡£µ±Ê±£¬ÕýÃæÁÙèÑÛʮһ½ÚǰµÄÒ»´Îѹ²â£¬ÄÇÒ²ÊÇ
Quake µÄµÚÒ»´ÎÁÁÏ࣬¶øÇÒÈ¡µÃÁ˲»´íµÄ³É¼¨¡£ºóÐø£¬ÎÒÃÇ»ù±¾Æ½¾ùÁ½ÖÜʵÏÖÒ»´Îµü´ú£¬È»ºóÖð²½¼ÓÈëÁË»úÆ÷¸ôÀë¡¢Ó°×Ó±í¸ôÀë¡¢Êý¾ÝÆ«ÒÆ¹æÔò¡¢È۶ϱ£»¤»úÖÆ¡¢´úÂë¼¶±ðµÄÐÔÄÜ·ÖÎöµÈ¹¦ÄÜ¡£
¿ìËÙÏìÓ¦
ÏîÄ¿¸ÕÏßÉÏʱ£¬¿Í·þÃæÁÙÎÊÌâ·Ç³£¶à£¬²»½öÓÐʹÓòãÃæµÄÎÊÌ⣬ϵͳ×ÔÉíÒ²´æÔÚһЩ Bug ȱÏÝ¡£µ±Ê±£¬Ò»µ©Óöµ½ÒµÎñÏß´ó¹æÄ£µÄѹ²â£¬ÎÒÃÇÍŶӶ¼ÊÇȫԱ´ýÃü£¬Ö±½ÓÔÚÏÖ³¡½â¾öÎÊÌâ¡£ºóÐøÏµÍ³Îȶ¨ºó£¬ÎÒÃÇ×éÄÚ²ÉÓÃÁ˿ͷþÂÖ°àÖÆ¶È£¬Ã¿¸öµü´úÓÉһλͬѧרߺÔð¿Í·þ¹¤×÷£¬±£Õϵ±ÒµÎñÓöµ½µÄÎÊÌâÄܹ»×öµ½¿ìËÙÏìÓ¦¡£ÓÈÆäÊÇÔÚÏîÄ¿ÉÏÏß³õÆÚ£¬Õâµã·Ç³£ÓбØÒª¡£Èç¹ûÒµÎñ²¿ÃÅʹÓÃÌåÑéÇ·¼Ñ£¬ÏîÄ¿¿Ú±®Ò²»á±ä²î£¬¾Í»á¶ÔºóÐøµÄÍÆ¹ãÔì³ÉºÜ´óµÄÎÊÌâ¡£
ÏîÄ¿ÍÆ¹ã
ÕâÓ¦¸ÃÊÇËùÓÐÄÚ²¿ÏîÄ¿¶¼»áÓöµ½µÄÎÊÌ⣬ºÜ¶àʱºò£¬Íƹã³É¹û¾ö¶¨ÏîÄ¿µÄÉúËÀ¡£Ç°ÆÚÎÒÃÇÏÈÔÚһЩ±È½ÏÓдú±íÐÔµÄÒµÎñÏß½øÐÐÊԵ㡣Èç¹ûÔÚÊÔµã¹ý³ÌÖÐÓöµ½µÄÎÊÌ⣬»òÕßÒµÎñͬѧÌṩµÄһЩºÃµÄÏë·¨ºÍ½¨Ò飬ÎÒÃÇÄܹ»¿ìËٵؽøÐеü´úÓëÂ䵨¡£È»ºóÔÙ²»¶ÏµØÀ©´óÊԵ㷶Χ£¬°üÀ¨ÃÀÍÅÍâÂô¡¢Ã¨ÑÛ¡¢¾ÆÂᢽðÈڵȼ¸¸ö´óµÄ
BG ¶¼ÔÚ Quake ÉϽøÐÐÁ˼¸ÂÖÈ«Á÷³Ì¡¢´ó¹æÄ£µÄÈ«Á´Â·Ñ¹²â¡£
Ëæ×Å Quake ÕûÌ幦ÄÜÇ÷ÓÚÍêÉÆ£¬Í¬Ê±½â¾öÁË Ptest£¨ÏÈǰµÄѹ²âϵͳ£©ÉϵĶà¸öÍ´µã£¬ÎÒÃÇÖð²½ÔÚ¸÷¸öÒµÎñÏß½øÐÐÁËÈ«ÃæÍÆ¹ãºÍÄÚ²¿Åàѵ¡£´ÓĿǰÊÕ¼¯µÄÊý¾Ý¿´£¬ÃÀÍų¬¹ý
90% µÄÒµÎñÒÑ´Ó Ptest Ç¨ÒÆµ½ÁË Quake ¡£¶øÇÒÕûÌåµÄͳ¼ÆÊý¾Ý£¬Ò²±È Ptest ÓÐÁËÃ÷ÏÔµÄÌáÉý¡£
¿ª·ÅÉú̬
Quake Ä¿±êÊÇ´òÔìÈ«Á´Â·µÄѹ²âƽ̨£¬µ«ÊÇÔÚÆ½Ì¨½¨ÉèÕâ¼þÊÂÉÏ£¬ÎÒÃDz¢Ã»ÓпÌÒâÈ¥×·Çó¡£¹«Ë¾ÄÚ²¿Ò²Óв¿·ÖÍŶÓ×ߵıȽϿ¿Ç°£¬ËûÃÇÒ²×öһЩºÜ¶à¡°ÊÔË®ÐÔ¡±µÄ¹¤×÷¡£ÕâÆäʵҲÊÇÒ»¼þºÃÊ£¬Èç¹ûËùÓÐÊÂÇé¶¼ÒÀÍÐÆ½Ì¨À´Íê³É£¬¾Í»áÃæÁÙ×ö²»ÍêµÄÐèÇ󣬶øÇҺܶàÊÂÇé·ÅÔÚÆ½Ì¨²ãÃæ£¬Ò²¿ÉÄÜÎ޽⡣
ͬʱ£¬Quake Ò²ÌṩÁ˺ܶà API ¹©ÆäËûƽ̨½øÐнÓÈ룬һЩҵÎñ¸ß¶È¶¨ÖÆ»¯µÄ¹¤×÷£¬¾ÍÓÉÒµÎñƽ̨¶À×ÔÈ¥Íê³É¡£Æ½Ì¨½öÌṩ»ù´¡µÄÄÜÁ¦ºÍÊý¾ÝÖ§³Ö£¬ÎÒÃÇÍŶӰѺËÐľ«Á¦¾Û½¹ÔÚ¶ÔÆ½Ì¨·¢Õ¹¸üÓмÛÖµµÄÊÂÇéÉÏ¡£
¿çÍŶӺÏ×÷
Æäʵ£¬È«Á´Â·Ñ¹²âÕû¸öÏîÄ¿Éæ¼°µÄÍŶӷdz£Ö®¶à£¬ÉÏÊöÌáµ½µÄºÜ¶à×é¼þ¶¼ÐèÒª¼Ü¹¹ÍŶӵÄÖ§³Ö¡£ÔÚ¿çÍŶӵĺÏ×÷²ãÃæ£¬ÎÒÃÇÓ¦¸ÃÓС°Ë«Ó®¡±µÄÐÄ̬¡£Ïñ
Quake ƽ̨ʹÓõĺܶà¼à¿Ø×é¼þ¡¢ÈÛ¶Ï×é¼þÒÔ¼°ÐÔÄÜ·ÖÎö¹¤¾ß£¬ÓÐһЩҲÊÇÐÖµÜÍŶӸÕÏßÉÏû¶à¾ÃµÄ²úÆ·¡£
Quake ½«Æä¼¯³Éµ½Æ½Ì¨ÖУ¬Ò»·½ÃæÊǼõÉÙ×ÔÉíÖØ¸´ÔìÂÖ×Ó£»ÁíÒ»·½ÃæÒ²¿ÉÒÔ°ïÖúÐÖµÜÍŶÓÍÆ¶¯²úÆ·µÄÑз¢¹¤×÷¡£ |