µ¼¶Á£º×î³õµÄÃëɱϵͳµÄÔÐÍÊÇÌÔ±¦ÏêÇéÉϵĶ¨Ê±Éϼܹ¦ÄÜ£¬ÓÉÓÚÓÐЩÂô¼ÒΪÁËÎüÒýÑÛÇò£¬°Ñ¼Û¸ñѹµÃºÜµÍ¡£µ«Õâ¸øµÄÏêÇéϵͳ´øÀ´Á˺ܴóѹÁ¦£¬ÎªÁ˽«ÕâÖÖÍ»·¢Á÷Á¿¸ôÀ룬²ÅÉè¼ÆÁËÃëɱϵͳ£¬ÎÄÕÂÖ÷Òª½éÉÜ´óÃëϵͳÒÔ¼°ÕâÖÖµäÐͶÁÊý¾ÝµÄÈȵãÎÊÌâµÄ½â¾ö˼·ºÍʵ¼ù¾Ñé¡£
һЩÊý¾Ý
´ó¼Ò»¹¼ÇµÃ2013ÄêµÄСÃ×ÃëɱÂð£¿Èý¿îСÃ×ÊÖ»ú¸÷11Íǫ̀¿ªÂô£¬×ߵͼÊÇ´óÃëϵͳ£¬3·ÖÖÓºó³ÉΪ˫ʮһµÚÒ»¼ÒÒ²ÊÇ×î¿ìÆÆÒÚµÄÆì½¢µê¡£¾¹ýÈÕ־ͳ¼Æ£¬Ç°¶Ëϵͳ˫11·åÖµÓÐЧÇëÇóÔ¼60wÒÔÉϵÄQPS
£¬¶øºó¶ËcacheµÄ¼¯Èº·åÖµ½ü2000w/s¡¢µ¥»úÒ²½ü30w/s£¬µ«µ½ÕæÕýµÄдʱÁ÷Á¿ÒªÐ¡ºÜ¶àÁË£¬µ±Ê±×î¸ßϵ¥¼õ¿â´ætpsÊǺìÃ×´´Ô죬´ïµ½1500/s¡£
Èȵã¸ôÀë
ÃëɱϵͳÉè¼ÆµÄµÚÒ»¸öÔÔò¾ÍÊǽ«ÕâÖÖÈȵãÊý¾Ý¸ôÀë³öÀ´£¬²»ÒªÈÃ1%µÄÇëÇóÓ°Ïìµ½ÁíÍâµÄ99%£¬¸ôÀë³öÀ´ºóÒ²¸ü·½±ã¶ÔÕâ1%µÄÇëÇó×öÕë¶ÔÐÔÓÅ»¯¡£Õë¶ÔÃëɱÎÒÃÇ×öÁ˶à¸ö²ã´ÎµÄ¸ôÀ룺
ÒµÎñ¸ôÀë¡£°ÑÃëɱ×ö³ÉÒ»ÖÖÓªÏú»î¶¯£¬Âô¼ÒÒª²Î¼ÓÃëɱÕâÖÖÓªÏú»î¶¯ÐèÒªµ¥¶À±¨Ãû£¬´Ó¼¼ÊõÉÏÀ´Ëµ£¬Âô¼Ò±¨Ãûºó¶ÔÎÒÃÇÀ´Ëµ¾ÍÊÇÒÑÖªÈȵ㣬µ±ÕæÕý¿ªÊ¼Ê±ÎÒÃÇ¿ÉÒÔÌáǰ×öºÃÔ¤ÈÈ¡£
ϵͳ¸ôÀ롣ϵͳ¸ôÀë¸ü¶àÊÇÔËÐÐʱµÄ¸ôÀ룬¿ÉÒÔͨ¹ý·Ö×鲿ÊðµÄ·½Ê½ºÍÁíÍâ99%·Ö¿ª¡£Ãëɱ»¹ÉêÇëÁ˵¥¶ÀµÄÓòÃû£¬Ä¿µÄÒ²ÊÇÈÃÇëÇóÂäµ½²»Í¬µÄ¼¯ÈºÖС£
Êý¾Ý¸ôÀë¡£ÃëɱËùµ÷ÓõÄÊý¾Ý´ó²¿·Ö¶¼ÊÇÈÈÊý¾Ý£¬±ÈÈç»áÆôÓõ¥¶Àcache¼¯Èº»òMySQLÊý¾Ý¿âÀ´·ÅÈȵãÊý¾Ý£¬Ä¿Ç°Ò²ÊDz»Ïë0.01%µÄÊý¾ÝÓ°ÏìÁíÍâ99.99%¡£
µ±È»ÊµÏÖ¸ôÀëºÜÓжà°ì·¨£¬Èç¿ÉÒÔ°´ÕÕÓû§À´Çø·Ö£¬¸ø²»Í¬Óû§·ÖÅ䲻ͬcookie£¬ÔÚ½ÓÈë²ã·Óɵ½²»Í¬·þÎñ½Ó¿ÚÖУ»»¹ÓÐÔÚ½ÓÈë²ã¿ÉÒÔ¶ÔURLµÄ²»Í¬PathÀ´ÉèÖÃÏÞÁ÷²ßÂԵȡ£·þÎñ²ãͨ¹ýµ÷Óò»Í¬µÄ·þÎñ½Ó¿Ú£»Êý¾Ý²ã¿ÉÒÔ¸øÊý¾Ý´òÉÏÌØÊâµÄ±êÀ´Çø·Ö¡£Ä¿µÄ¶¼ÊǰÑÒѾʶ±ð³öÀ´µÄÈȵãºÍÆÕͨÇëÇóÇø·Ö¿ªÀ´¡£
¶¯¾²·ÖÀë
Ç°Ãæ½éÉÜÔÚϵͳ²ãÃæÉϵÄÔÔòÊÇÒª×ö¸ôÀ룬½ÓÏÂÈ¥¾ÍÊÇÒª°ÑÈȵãÊý¾Ý½øÐж¯¾²·ÖÀ룬ÕâÒ²Êǽâ¾ö´óÁ÷Á¿ÏµÍ³µÄÒ»¸öÖØÒªÔÔò¡£ÈçºÎ¸øÏµÍ³×ö¶¯¾²·ÖÀëµÄ¾²Ì¬»¯¸ÄÔìÎÒÒÔǰд¹ýһƪ¡¶¸ß·ÃÎÊÁ¿ÏµÍ³µÄ¾²Ì¬»¯¼Ü¹¹Éè¼Æ¡·Ïêϸ½éÉÜÁËÌÔ±¦ÉÌÆ·ÏµÍ³µÄ¾²Ì¬»¯Éè¼ÆË¼Â·£¬¸ÐÐËȤµÄ¿ÉÒÔÔÚ¡¶³ÌÐòÔ±¡·ÔÓÖ¾ÉÏÕÒһϡ£ÎÒÃǵĴóÃëϵͳÊÇ´ÓÉÌÆ·ÏêÇéϵͳ·¢Õ¹¶øÀ´£¬ËùÒÔ±¾ÉíÒѾʵÏÖÁ˶¯¾²·ÖÀ룬Èçͼ1¡£
ͼ1 ´óÃëϵͳ¶¯¾²·ÖÀë
³ý´ËÖ®Í⻹ÓÐÈçÏÂÌØµã£º
°ÑÕû¸öÒ³ÃæCacheÔÚÓû§ä¯ÀÀÆ÷
Èç¹ûÇ¿ÖÆË¢ÐÂÕû¸öÒ³Ãæ£¬Ò²»áÇëÇóµ½CDN
ʵ¼ÊÓÐЧÇëÇóÖ»ÊÇ¡°Ë¢ÐÂÇÀ±¦¡±°´Å¥
ÕâÑù°Ñ90%µÄ¾²Ì¬Êý¾Ý»º´æÔÚÓû§¶Ë»òÕßCDNÉÏ£¬µ±ÕæÕýÃëɱʱÓû§Ö»ÐèÒªµã»÷ÌØÊâµÄ°´Å¥¡°Ë¢ÐÂÇÀ±¦¡±¼´¿É£¬¶ø²»ÐèҪˢÐÂÕû¸öÒ³Ãæ£¬ÕâÑùÖ»Ïò·þÎñ¶ËÇëÇóºÜÉÙµÄÓÐЧÊý¾Ý£¬¶ø²»ÐèÒªÖØ¸´ÇëÇó´óÁ¿¾²Ì¬Êý¾Ý¡£ÃëɱµÄ¶¯Ì¬Êý¾ÝºÍÆÕͨµÄÏêÇéÒ³ÃæµÄ¶¯Ì¬Êý¾ÝÏà±È¸üÉÙ£¬ÐÔÄÜÒ²±ÈÆÕͨµÄÏêÇéÌáÉý3±¶ÒÔÉÏ¡£ËùÒÔ¡°Ë¢ÐÂÇÀ±¦¡±ÕâÖÖÉè¼ÆË¼Â·ºÜºÃµØ½â¾öÁ˲»Ë¢ÐÂÒ³Ãæ¾ÍÄÜÇëÇóµ½·þÎñ¶Ë×îÐµĶ¯Ì¬Êý¾Ý¡£
»ùÓÚʱ¼ä·ÖƬÏ÷·å
ÊìϤÌÔ±¦ÃëɱµÄ¶¼ÖªµÀ£¬µÚÒ»°æµÄÃëɱϵͳ±¾Éí²¢Ã»ÓдðÌ⹦ÄÜ£¬ºóÃæ²ÅÔö¼ÓÁËÃëɱ´ðÌ⣬µ±È»Ãëɱ´ðÌâÒ»¸öºÜÖØÒªµÄÄ¿µÄÊÇΪÁË·ÀÖ¹ÃëɱÆ÷£¬2011ÄêÃëɱ·Ç³£»ðµÄʱºò£¬ÃëɱÆ÷Ò²±È½Ï²þâ±£¬¶øÃ»ÓдﵽȫÃñ²ÎÓëºÍÓªÏúµÄÄ¿µÄ£¬ËùÒÔÔö¼ÓµÄ´ðÌâÀ´ÏÞÖÆÃëɱÆ÷¡£Ôö¼Ó´ðÌâºó£¬Ïµ¥µÄʱ¼ä»ù±¾¿ØÖÆÔÚ2sºó£¬ÃëɱÆ÷µÄϵ¥±ÈÀýҲϽµµ½5%ÒÔÏ¡£ÐµĴðÌâÒ³ÃæÈçͼ2¡£

ͼ2 Ãë´ðÌâÒ³Ãæ
ÆäʵÔö¼Ó´ðÌ⻹ÓÐÒ»¸öÖØÒªµÄ¹¦ÄÜ£¬¾ÍÊǰѷåÖµµÄϵ¥ÇëÇó¸øÀ³¤ÁË£¬´ÓÒÔǰµÄ1sÖ®ÄÚÑÓ³¤µ½2~10s×óÓÒ£¬ÇëÇó·åÖµ»ùÓÚʱ¼ä·ÖƬÁË£¬Õâ¸öʱ¼äµÄ·ÖƬ¶Ô·þÎñ¶Ë´¦Àí²¢·¢·Ç³£ÖØÒª£¬»á¼õÇáºÜ´óѹÁ¦£¬ÁíÍâÓÉÓÚÇëÇóµÄÏȺ󣬿¿ºóµÄÇëÇó×ÔȻҲûÓÐ¿â´æÁË£¬Ò²¸ù±¾µ½²»ÁË×îºóµÄϵ¥²½Ö裬ËùÒÔÕæÕýµÄ²¢·¢Ð´¾Í·Ç³£ÓÐÏÞÁË¡£ÆäʵÕâÖÖÉè¼ÆË¼Â·Ä¿Ç°Ò²·Ç³£ÆÕ±é£¬ÈçÖ§¸¶±¦µÄ¡°ßÝÒ»ßÝ¡±ÒѼ°Î¢ÐŵÄÒ¡Ò»Ò¡¡£
³ýÁËÔÚǰ¶Ëͨ¹ý´ðÌâÔÚÓû§¶Ë½øÐÐÁ÷Á¿Ï÷·åÍ⣬ÔÚ·þÎñ¶ËÒ»°ãͨ¹ýËø»òÕß¶ÓÁÐÀ´¿ØÖÆË²¼äÇëÇó¡£
Êý¾Ý·Ö²ãУÑé

ͼ3 ·Ö²ãУÑé
¶Ô´óÁ÷Á¿ÏµÍ³µÄÊý¾Ý×ö·Ö²ãУÑéÒ²ÊÇ×îÖØÒªµÄÉè¼ÆÔÔò£¬Ëùν·Ö²ãУÑé¾ÍÊǶԴóÁ¿µÄÇëÇó×ö³É¡°Â©¶·¡±Ê½Éè¼Æ£¬Èçͼ3Ëùʾ£ºÔÚ²»Í¬²ã´Î¾¡¿ÉÄܰÑÎÞЧµÄÇëÇó¹ýÂË£¬¡°Â©¶·¡±µÄ×îÄ©¶Ë²ÅÊÇÓÐЧµÄÇëÇó£¬Òª´ïµ½Õâ¸öЧ¹û±ØÐë¶ÔÊý¾Ý×ö·Ö²ãµÄУÑ飬ÏÂÃæÊÇһЩÔÔò£º
ÏÈ×öÊý¾ÝµÄ¶¯¾²·ÖÀë
½«90%µÄÊý¾Ý»º´æÔÚ¿Í»§¶Ëä¯ÀÀÆ÷
½«¶¯Ì¬ÇëÇóµÄ¶ÁÊý¾ÝCacheÔÚWeb¶Ë
¶Ô¶ÁÊý¾Ý²»×öǿһÖÂÐÔУÑé
¶ÔдÊý¾Ý½øÐлùÓÚʱ¼äµÄºÏÀí·ÖƬ
¶ÔдÇëÇó×öÏÞÁ÷±£»¤
¶ÔдÊý¾Ý½øÐÐǿһÖÂÐÔУÑé
ÃëɱϵͳÕýÊǰ´ÕÕÕâ¸öÔÔòÉè¼ÆµÄϵͳ¼Ü¹¹£¬Èçͼ4Ëùʾ¡£
ͼ4 Ãëɱϵͳ·Ö²ã¼Ü¹¹
°Ñ´óÁ¿¾²Ì¬²»ÐèÒª¼ìÑéµÄÊý¾Ý·ÅÔÚÀëÓû§×î½üµÄµØ·½£»ÔÚǰ¶Ë¶ÁϵͳÖмìÑéһЩ»ù±¾ÐÅÏ¢£¬ÈçÓû§ÊÇ·ñ¾ßÓÐÃëɱ×ʸñ¡¢ÉÌÆ·×´Ì¬ÊÇ·ñÕý³£¡¢Óû§´ðÌâÊÇ·ñÕýÈ·¡¢ÃëɱÊÇ·ñÒѾ½áÊøµÈ£»ÔÚдÊý¾ÝϵͳÖÐÔÙУÑéһЩÈçÊÇ·ñÊÇ·Ç·¨ÇëÇó£¬ÓªÏúµÈ¼ÛÎïÊÇ·ñ³ä×㣨ÌÔ½ð±ÒµÈ£©£¬Ð´µÄÊý¾ÝÒ»ÖÂÐÔÈç¼ì²é¿â´æÊÇ·ñ»¹Óеȣ»×îºóÔÚÊý¾Ý¿â²ã±£Ö¤Êý¾Ý×îÖÕ׼ȷÐÔ£¬Èç¿â´æ²»ÄܼõΪ¸ºÊý¡£
ʵʱÈȵ㷢ÏÖ
ÆäʵÃëɱϵͳ±¾ÖÊÊÇ»¹ÊÇÒ»¸öÊý¾Ý¶ÁµÄÈȵãÎÊÌ⣬¶øÇÒÊÇ×î¼òµ¥Ò»ÖÖ£¬ÒòΪÔÚÎÄÌᵽͨ¹ýÒµÎñ¸ôÀ룬ÎÒÃÇÒÑÄÜÌáǰʶ±ð³öÕâЩÈȵãÊý¾Ý£¬ÎÒÃÇ¿ÉÒÔÌáǰ×öһЩ±£»¤£¬Ìáǰʶ±ðµÄÈȵãÊý¾Ý´¦ÀíÆðÀ´»¹Ïà¶Ô¼òµ¥£¬±ÈÈç·ÖÎöÀúÊ·³É½»¼Ç¼·¢ÏÖÄÄЩÉÌÆ·±È½ÏÈÈÃÅ£¬·ÖÎöÓû§µÄ¹ºÎï³µ¼Ç¼Ҳ¿ÉÒÔ·¢ÏÖÄÇЩÉÌÆ·¿ÉÄÜ»á±È½ÏºÃÂô£¬ÕâЩ¶¼ÊÇ¿ÉÒÔÌáǰ·ÖÎö³öÀ´µÄÈȵ㡣±È½ÏÀ§ÄѵÄÊÇÄÇÖÖÎÒÃÇÌáǰ·¢ÏÖ²»ÁËͻȻ³ÉΪÈȵãµÄÉÌÆ·³ÉΪÈȵ㣬ÕâÖÖ¾ÍҪͨ¹ýʵʱÈȵãÊý¾Ý·ÖÎöÁË£¬Ä¿Ç°ÎÒÃÇÉè¼Æ¿ÉÒÔÔÚ3sÄÚ·¢ÏÖ½»Ò×Á´Â·ÉϵÄʵʱÈȵãÊý¾Ý£¬È»ºó¸ù¾Ýʵʱ·¢ÏÖµÄÈȵãÊý¾Ýÿ¸öϵͳ×öʵʱ±£»¤¡£
¾ßÌåʵÏÖÈçÏ£º
¹¹½¨Ò»¸öÒì²½µÄ¿ÉÒÔÊÕ¼¯½»Ò×Á´Â·Éϸ÷¸öÖмä¼þ²úÆ·ÈçTengine¡¢Tair»º´æ¡¢HSFµÈ±¾ÉíµÄͳ¼ÆµÄÈȵãkey£¨TengineºÍTair»º´æµÈÖмä¼þ²úÆ·±¾ÉíÒѾÓÐÈȵãͳ¼ÆÄ£¿é£©¡£
½¨Á¢Ò»¸öÈȵãÉϱ¨ºÍ¿ÉÒÔ°´ÕÕÐèÇó¶©ÔĵÄÈȵã·þÎñµÄÏ·¢¹æ·¶£¬Ö÷ҪĿµÄÊÇͨ¹ý½»Ò×Á´Â·Éϸ÷¸öϵͳ£¨ÏêÇé¡¢¹ºÎï³µ¡¢½»Òס¢ÓŻݡ¢¿â´æ¡¢ÎïÁ÷£©·ÃÎʵÄʱ¼ä²î£¬°ÑÉÏÓÎÒѾ·¢ÏÖµÄÈȵãÄܹ»Í¸´«¸øÏÂÓÎϵͳ£¬Ìáǰ×öºÃ±£»¤¡£±ÈÈç´ó´Ù¸ß·åÆÚÏêÇéϵͳÊÇ×îÔçÖªµÀµÄ£¬ÔÚͳ¼Æ½ÓÈë²ãÉÏTengineÄ£¿éͳ¼ÆµÄÈȵãURL¡£
½«ÉÏÓεÄϵͳÊÕ¼¯µ½ÈȵãÊý¾Ý·¢Ë͵½Èȵã·þÎñ̨ÉÏ£¬È»ºóÏÂÓÎϵͳÈç½»Ò×ϵͳ¾Í»áÖªµÀÄÄЩÉÌÆ·±»Æµ·±µ÷Óã¬È»ºó×öÈȵ㱣»¤¡£Èçͼ5Ëùʾ¡£

ͼ5 ʵʱÈȵãÊý¾Ýºǫ́
ÖØÒªµÄ¼¸¸ö£ºÆäÖйؼü²¿·Ö°üÀ¨£º
Õâ¸öÈȵã·þÎñºǫ́ץȡÈȵãÊý¾ÝÈÕÖ¾×îºÃÊÇÒì²½µÄ£¬Ò»·½Ãæ±ãÓÚ×öµ½Í¨ÓÃÐÔ£¬ÁíÒ»·½Ãæ²»Ó°ÏìÒµÎñϵͳºÍÖмä¼þ²úÆ·µÄÖ÷Á÷³Ì¡£
Èȵã·þÎñºǫ́¡¢ÏÖÓи÷¸öÖмä¼þºÍÓ¦ÓÃÔÚ×öµÄûÓÐÈ¡´ú¹ØÏµ£¬Ã¿¸öÖмä¼þºÍÓ¦Óû¹ÐèÒª±£»¤×Ô¼º£¬Èȵã·þÎñºǫ́Ìṩһ¸öÊÕ¼¯ÈȵãÊý¾ÝÌṩÈȵ㶩ÔÄ·þÎñµÄͳһ¹æ·¶ºÍ¹¤¾ß£¬±ãÓڰѸ÷¸öϵͳÈȵãÊý¾Ý͸Ã÷³öÀ´¡£
Èȵ㷢ÏÖÒª×öµ½ÊµÊ±£¨3sÄÚ£©¡£
¹Ø¼ü¼¼ÊõÓÅ»¯µã
Ç°Ãæ½éÉÜÁËһЩÈçºÎÉè¼Æ´óÁ÷Á¿¶ÁϵͳÖÐÓõ½µÄÔÔò£¬µ«Êǵ±ÕâЩÊֶζ¼ÓÃÁË£¬»¹ÊÇÓдóÁ÷Á¿Ó¿Èë¸ÃÈçºÎ´¦ÀíÄØ£¿ÃëɱϵͳҪ½â¾ö¼¸¸ö¹Ø¼üÎÊÌâ¡£
Java´¦Àí´ó²¢·¢¶¯Ì¬ÇëÇóÓÅ»¯
ÆäʵJavaºÍͨÓõÄWeb·þÎñÆ÷Ïà±È£¨Nginx»òApache£©ÔÚ´¦Àí´ó²¢·¢HTTPÇëÇóʱҪÈõÒ»µã£¬ËùÒÔÒ»°ãÎÒÃǶ¼»á¶Ô´óÁ÷Á¿µÄWebϵͳ×ö¾²Ì¬»¯¸ÄÔ죬Èô󲿷ÖÇëÇóºÍÊý¾ÝÖ±½ÓÔÚNginx·þÎñÆ÷»òÕßWeb´úÀí·þÎñÆ÷£¨Varnish¡¢SquidµÈ£©ÉÏÖ±½Ó·µ»Ø£¨¿ÉÒÔ¼õÉÙÊý¾ÝµÄÐòÁл¯Óë·´ÐòÁл¯£©£¬²»Òª½«ÇëÇóÂäµ½Java²ãÉÏ£¬ÈÃJava²ãÖ»´¦ÀíºÜÉÙÊý¾ÝÁ¿µÄ¶¯Ì¬ÇëÇ󣬵±È»Õë¶ÔÕâЩÇëÇóÒ²ÓÐһЩÓÅ»¯ÊֶοÉÒÔʹÓãº
Ö±½ÓʹÓÃServlet´¦ÀíÇëÇó¡£±ÜÃâʹÓô«Í³µÄMVC¿ò¼ÜÒ²ÐíÄÜÈÆ¹ýÒ»´ó¶Ñ¸´ÔÓÇÒÓô¦²»´óµÄ´¦ÀíÂß¼£¬½ÚÊ¡¸ö1msʱ¼ä£¬µ±È»Õâ¸öÈ¡¾öÓÚÄã¶ÔMVC¿ò¼ÜµÄÒÀÀµ³Ì¶È¡£
Ö±½ÓÊä³öÁ÷Êý¾Ý¡£Ê¹ÓÃresp.getOutputStream()¶ø²»ÊÇresp.getWriter()¿ÉÒÔÊ¡µôһЩ²»±ä×Ö·ûÊý¾Ý±àÂ룬ҲÄÜÌáÉýÐÔÄÜ£»»¹ÓÐÊý¾ÝÊä³öÊ±Ò²ÍÆ¼öʹÓÃJSON¶ø²»ÊÇÄ£°åÒýÇæ£¨Ò»°ã¶¼ÊǽâÊÍÖ´ÐУ©Êä³öÒ³Ãæ¡£
ͬһÉÌÆ·´ó²¢·¢¶ÁÎÊÌâ
Äã»á˵Õâ¸öÎÊÌâºÜÈÝÒ×½â¾ö£¬Î޷Ƿŵ½Tair»º´æÀïÃæ¾ÍÐУ¬¼¯ÖÐʽTair»º´æÎªÁ˱£Ö¤ÃüÖÐÂÊ£¬Ò»°ã¶¼»á²ÉÓÃÒ»ÖÂÐÔHash£¬ËùÒÔͬһ¸ökey»áÂ䵽һ̨»úÆ÷ÉÏ£¬ËäÈ»ÎÒÃǵÄTair»º´æ»úÆ÷µ¥Ì¨Ò²ÄÜÖ§³Å30w/sµÄÇëÇ󣬵«ÊÇÏñ´óÃëÕâÖÖ¼¶±ðµÄÈȵãÉÌÆ·»¹Ô¶²»¹»£¬ÄÇÈçºÎ³¹µ×½â¾öÕâÖÖµ¥µãÆ¿¾±£¿´ð°¸ÊDzÉÓÃÓ¦ÓòãµÄLocalcache£¬¼´ÔÚÃëɱϵͳµÄµ¥»úÉÏ»º´æÉÌÆ·Ïà¹ØµÄÊý¾Ý£¬ÈçºÎcacheÊý¾Ý£¿Ò²·Ö¶¯Ì¬ºÍ¾²Ì¬£º
ÏñÉÌÆ·ÖеıêÌâºÍÃèÊöÕâЩ±¾Éí²»±äµÄ»áÔÚÃëɱ¿ªÊ¼Ö®Ç°È«Á¿ÍÆË͵½Ãëɱ»úÆ÷Éϲ¢Ò»Ö±»º´æÖ±µ½Ãëɱ½áÊø¡£
Ïñ¿â´æÕâÖÖ¶¯Ì¬Êý¾Ý»á²ÉÓñ»¶¯Ê§Ð§µÄ·½Ê½»º´æÒ»¶¨Ê±¼ä£¨Ò»°ãÊÇÊýÃ룩£¬Ê§Ð§ºóÔÙÈ¥Tair»º´æÀÈ¡×îеÄÊý¾Ý¡£
Äã¿ÉÄÜ»áÓÐÒÉÎÊ£¬Ïñ¿â´æÕâÖÖÆµ·±¸üÐÂÊý¾ÝÒ»µ©Êý¾Ý²»Ò»Ö»᲻»áµ¼Ö³¬Âô£¿ÆäʵÕâ¾ÍÒªÓõ½ÎÒÃÇÇ°Ãæ½éÉܵĶÁÊý¾Ý·Ö²ãУÑéÔÔòÁË£¬¶ÁµÄ³¡¾°¿ÉÒÔÔÊÐíÒ»¶¨µÄÔàÊý¾Ý£¬ÒòΪÕâÀïµÄÎóÅÐÖ»»áµ¼ÖÂÉÙÁ¿Ò»Ð©Ô±¾ÒѾûÓÐ¿â´æµÄϵ¥ÇëÇóÎóÈÏΪ»¹ÓÐ¿â´æ¶øÒÑ£¬µÈµ½ÕæÕýдÊý¾ÝʱÔÙ±£Ö¤×îÖÕµÄÒ»ÖÂÐÔ¡£ÕâÑùÔÚÊý¾ÝµÄ¸ß¿ÉÓÃÐÔºÍÒ»ÖÂÐÔ×öƽºâÀ´½â¾öÕâÖָ߲¢·¢µÄÊý¾Ý¶ÁÈ¡ÎÊÌâ¡£
ͬһÊý¾Ý´ó²¢·¢¸üÐÂÎÊÌâ
½â¾ö´ó²¢·¢¶ÁÎÊÌâ²ÉÓÃLocalcacheºÍÊý¾ÝµÄ·Ö²ãУÑéµÄ·½Ê½£¬µ«ÊÇÎÞÂÛÈçºÎÏñ¼õ¿â´æÕâÖÖ´ó²¢·¢Ð´»¹ÊDZÜÃâ²»ÁË£¬ÕâÒ²ÊÇÃëɱÕâ¸ö³¡¾°ÏÂ×îºËÐĵļ¼ÊõÄÑÌâ¡£
ͬһÊý¾ÝÔÚÊý¾Ý¿âÀï¿Ï¶¨ÊÇÒ»Ðд洢£¨MySQL£©£¬ËùÒÔ»áÓдóÁ¿µÄÏß³ÌÀ´¾ºÕùInnoDBÐÐËø£¬µ±²¢·¢¶ÈÔ½¸ßʱµÈ´ýµÄÏß³ÌÒ²»áÔ½¶à£¬TPS»áϽµRT»áÉÏÉý£¬Êý¾Ý¿âµÄÍÌÍÂÁ¿»áÑÏÖØÊܵ½Ó°Ï졣˵µ½ÕâÀï»á³öÏÖÒ»¸öÎÊÌ⣬¾ÍÊǵ¥¸öÈȵãÉÌÆ·»áÓ°ÏìÕû¸öÊý¾Ý¿âµÄÐÔÄÜ£¬¾Í»á³öÏÖÎÒÃDz»Ô¸Òâ¿´µ½µÄ0.01%ÉÌÆ·Ó°Ïì99.99%µÄÉÌÆ·£¬ËùÒÔÒ»¸ö˼·ҲÊÇÒª×ñÑÇ°Ãæ½éÉܵÚÒ»¸öÔÔò½øÐиôÀ룬°ÑÈȵãÉÌÆ··Åµ½µ¥¶ÀµÄÈȵã¿âÖС£µ«ÊÇÎÞÒÉÒ²»á´øÀ´Î¬»¤µÄÂé·³£¨Òª×öÈȵãÊý¾ÝµÄ¶¯Ì¬Ç¨ÒÆÒÔ¼°µ¥¶ÀµÄÊý¾Ý¿âµÈ£©¡£
·ÖÀëÈȵãÉÌÆ·µ½µ¥¶ÀµÄÊý¾Ý¿â»¹ÊÇûÓнâ¾ö²¢·¢ËøµÄÎÊÌ⣬Ҫ½â¾ö²¢·¢ËøÓÐÁ½²ã°ì·¨¡£
Ó¦Óòã×öÅŶӡ£°´ÕÕÉÌÆ·Î¬¶ÈÉèÖöÓÁÐ˳ÐòÖ´ÐУ¬ÕâÑùÄܼõÉÙͬһ̨»úÆ÷¶ÔÊý¾Ý¿âͬһÐмǼ²Ù×÷µÄ²¢·¢¶È£¬Í¬Ê±Ò²ÄÜ¿ØÖƵ¥¸öÉÌÆ·Õ¼ÓÃÊý¾Ý¿âÁ¬½ÓµÄÊýÁ¿£¬·ÀÖ¹ÈȵãÉÌÆ·Õ¼ÓÃÌ«¶àÊý¾Ý¿âÁ¬½Ó¡£
Êý¾Ý¿â²ã×öÅŶӡ£Ó¦ÓòãÖ»ÄÜ×öµ½µ¥»úÅŶӣ¬µ«Ó¦ÓûúÆ÷Êý±¾ÉíºÜ¶à£¬ÕâÖÖÅŶӷ½Ê½¿ØÖƲ¢·¢ÈÔÈ»ÓÐÏÞ£¬ËùÒÔÈç¹ûÄÜÔÚÊý¾Ý¿â²ã×öÈ«¾ÖÅŶÓÊÇ×îÀíÏëµÄ£¬ÌÔ±¦µÄÊý¾Ý¿âÍŶӿª·¢ÁËÕë¶ÔÕâÖÖMySQLµÄInnoDB²ãÉϵÄpatch£¬¿ÉÒÔ×öµ½Êý¾Ý¿â²ãÉ϶Ե¥ÐмǼ×öµ½²¢·¢ÅŶӣ¬Èçͼ6Ëùʾ¡£

ͼ6 Êý¾Ý¿â²ã¶Ôµ¥ÐмǼ²¢·¢ÅŶÓ
Äã¿ÉÄÜ»áÎÊÅŶӺÍËø¾ºÕù²»ÒªµÈ´ýÂð£¿ÓÐÉ¶Çø±ð£¿Èç¹ûÊìϤMySQL»áÖªµÀ£¬InnoDBÄÚ²¿µÄËÀËø¼ì²âÒÔ¼°MySQL
ServerºÍInnoDBµÄÇл»»á±È½ÏºÄÐÔÄÜ£¬ÌÔ±¦µÄMySQLºËÐÄÍŶӻ¹×öÁ˺ܶàÆäËû·½ÃæµÄÓÅ»¯£¬ÈçCOMMIT_ON_SUCCESSºÍROLLBACK_ON_FAILµÄpatch£¬ÅäºÏÔÚSQLÀïÃæ¼Óhint£¬ÔÚÊÂÎñÀï²»ÐèÒªµÈ´ýÓ¦ÓòãÌá½»COMMIT¶øÔÚÊý¾ÝÖ´ÐÐÍê×îºóÒ»ÌõSQLºóÖ±½Ó¸ù¾ÝTARGET_AFFECT_ROW½á¹ûÌá½»»ò»Ø¹ö£¬¿ÉÒÔ¼õÉÙÍøÂçµÄµÈ´ýʱ¼ä£¨Æ½¾ùÔ¼0.7ms£©¡£¾ÝÎÒËùÖª£¬Ä¿Ç°°¢ÀïMySQLÍŶÓÒѽ«ÕâЩpatch¼°Ìá½»¸øMySQL¹Ù·½ÆÀÉó¡£
´ó´ÙÈȵãÎÊÌâ˼¿¼
ÒÔÃëɱÕâ¸öµäÐÍϵͳΪ´ú±íµÄÈȵãÎÊÌâ¸ù¾Ý¶àÄê¾ÑéÎÒ×ܽáÁËЩͨÓÃÔÔò£º¸ôÀë¡¢¶¯Ì¬·ÖÀë¡¢·Ö²ãУÑ飬±ØÐë´ÓÕû¸öÈ«Á´Â·À´¿¼ÂǺÍÓÅ»¯Ã¿¸ö»·½Ú£¬³ýÁËÓÅ»¯ÏµÍ³ÌáÉýÐÔÄÜ£¬×öºÃÏÞÁ÷ºÍ±£»¤Ò²ÊDZر¸µÄ¹¦¿Î¡£
³ýÈ¥Ç°Ãæ½éÉܵÄÕâЩÈȵãÎÊÌâÍ⣬ÌÔϵ»¹ÓжàÖÖÆäËûÊý¾ÝÈȵãÎÊÌ⣺
Êý¾Ý·ÃÎÊÈȵ㣬±ÈÈçDetailÖжÔijЩÈȵãÉÌÆ·µÄ·ÃÎʶȷdz£¸ß£¬¼´Ê¹ÊÇTair»º´æÕâÖÖCache±¾ÉíÒ²ÓÐÆ¿¾±ÎÊÌ⣬һµ©ÇëÇóÁ¿´ïµ½µ¥»ú¼«ÏÞÒ²»á´æÔÚÈȵ㱣»¤ÎÊÌâ¡£ÓÐʱ¿´ÆðÀ´ºÃÏñºÜÈÝÒ×½â¾ö£¬±ÈÈç˵×öºÃÏÞÁ÷¾ÍÐУ¬µ«ÄãÏëÏëÒ»µ©Ä³¸öÈȵ㴥·¢ÁËһ̨»úÆ÷µÄÏÞÁ÷·§Öµ£¬ÄÇôÕą̂»úÆ÷CacheµÄÊý¾Ý¶¼½«ÎÞЧ£¬½ø¶ø¼ä½Óµ¼ÖÂCache±»»÷´©£¬ÇëÇóÂ䵨ӦÓòãÊý¾Ý¿â³öÏÖÑ©±ÀÏÖÏó¡£ÕâÀàÎÊÌâÐèÒªÓë¾ßÌåCache²úÆ·½áºÏ²ÅÄÜÓбȽϺõĽâ¾ö·½°¸£¬ÕâÀïÌṩһ¸öͨÓõĽâ¾ö˼·£¬¾ÍÊÇÔÚCacheµÄclient¶Ë×ö±¾µØLocalcache£¬µ±·¢ÏÖÈȵãÊý¾Ýʱֱ½ÓCacheÔÚclientÀ¶ø²»ÒªÇëÇóµ½CacheµÄServer¡£
Êý¾Ý¸üÐÂÈȵ㣬¸üÐÂÎÊÌâ³ýÁËÇ°Ãæ½éÉܵÄÈȵã¸ôÀëºÍÅŶӴ¦ÀíÖ®Í⣬»¹ÓÐЩ³¡¾°£¬Èç¶ÔÉÌÆ·µÄlastmodifytime×ֶθüлá·Ç³£Æµ·±£¬ÔÚijЩ³¡¾°ÏÂÕâЩ¶àÌõSQLÊÇ¿ÉÒԺϲ¢µÄ£¬Ò»¶¨Ê±¼äÄÚÖ»Ö´ÐÐ×îºóÒ»ÌõSQL¾ÍÐÐÁË£¬¿ÉÒÔ¼õÉÙ¶ÔÊý¾Ý¿âµÄupdate²Ù×÷¡£ÁíÍâÈȵãÉÌÆ·µÄ×Ô¶¯Ç¨ÒÆ£¬ÀíÂÛÉÏÒ²¿ÉÒÔÔÚÊý¾Ý·ÓɲãÀ´Íê³É£¬ÀûÓÃÇ°Ãæ½éÉܵÄÈȵãʵʱ·¢ÏÖ×Ô¶¯½«Èȵã´ÓÆÕͨ¿âÀïÇ¨ÒÆ³öÀ´·Åµ½µ¥¶ÀµÄÈȵã¿âÖС£
°´ÕÕijÖÖά¶È½¨µÄË÷Òý²úÉúÈȵãÊý¾Ý£¬±ÈÈçʵʱËÑË÷Öа´ÕÕÉÌÆ·Î¬¶È¹ØÁªÆÀ¼ÛÊý¾Ý£¬ÓÐЩÈȵãÉÌÆ·µÄÆÀ¼Û·Ç³£¶à£¬µ¼ÖÂËÑË÷ϵͳ°´ÕÕÉÌÆ·ID½¨ÆÀ¼ÛÊý¾ÝµÄË÷ÒýʱÄÚ´æÒѾ·Å²»Ï£¬½»Ò×ά¶È¹ØÁª¶©µ¥ÐÅϢҲͬÑùÓÐÕâЩÎÊÌâ¡£ÕâÀàÈȵãÊý¾ÝÐèÒª×öÊý¾ÝÉ¢ÁУ¬ÔÙÔö¼ÓÒ»¸öά¶È£¬°ÑÊý¾ÝÖØÐÂ×éÖ¯¡£ |