µ¥ÌåÓ¦ÓÃÒòÆä¼Ü¹¹¼òµ¥¡¢Ê¹Óü¼ÊõÃż÷µÍ¡¢Ñз¢¿ìËÙÉÏÊÖ¡¢ÏîÄ¿¿ìËÙÉÏÏßµÈÌصãÊÇ´´Òµ¹«Ë¾³õ¼¶½×¶ÎµÄ±ØÈ»²úÎï¡£Ëæ×Åƽ̨Óû§¹æÄ£µÄµÝÔö£¬²úÆ·¹¦ÄܵķḻÒÔ¼°ÐèÇóµü´úµÄƵÂÊÒ²»á¼ÓËÙ£¬Ïà¶ÔÓ¦µÄÑз¢ÈËÊýÒ²Öð²½µÝÔö£¬ÏµÍ³µÄÐÔÄÜÎÊÌâ¡¢Ñз¢ÈËÔ±Ö®¼äµÄÐ×÷ÎÊÌâ¡¢½»¸¶ËٶȵÈһϵÁеÄÎÊÌâ¾ÍÂýÂý͹ÏÔ£¬ÕâЩÎÊÌâ»áÖð²½ÑÝ»¯³É×è°ÏîÄ¿ÍƽøµÄ¡°°í½Åʯ¡±¡£´Ëʱ΢·þÎñµÄ³öÏÖËƺõÊÇÒ»¸ù¾ÈÃüµ¾²Ý£¬µ«·²Óöµ½ÏµÍ³ÐÔÄÜ¡¢ÏîÄ¿½»¸¶ÖÊÁ¿¡¢ÏîÄ¿½ø¶ÈµÈÎÊÌâµÄʱºò¾Í¿ªÊ¼×¼±¸ÏµÍ³Öع¹£¬ÈÏΪÍù΢·þÎñ·½ÏòתÐ;ÍÒ»¶¨Äܽâ¾öÕâЩÃæÁÙµÄÎÊÌâ¡£ÄÇôһ¸öÔÚÆóÒµÔÚµ¥ÌåÓ¦Óüܹ¹Öе½µ×ÈçºÎתÐÍ΢·þÎñÄØ£¿ÔÚתÐÍ֮ǰ»¹ÐèҪȥÁ˽âÏÂʵʩ΢·þÎñµÄһЩǰÖÃÌõ¼þ¡£
±¾ÎÄÊǸù¾ÝÅË־ΰÀÏʦÔÚ ArchSummit È«Çò¼Ü¹¹Ê¦·å»áÉϵÄÑݽ²ÕûÀí³öÀ´µÄ£¬½²ÊöÁËÈçºÎ´Ó 0 ¿ªÊ¼¹¹½¨Ò»¸öÒÚ¼¶ÇëÇóµÄϵͳµÄÀú³Ì£¬ÆäÖаüÀ¨ÁË·þÎñ²ð·Ö¡¢Î¢·þÎñ²âÊÔ¡¢ÈÝÁ¿Ô¤¹ÀÒÔ¼°ÉÏÏßµÄÁ÷³Ì¡£Îȶ¨µÄϵͳ²»½öÒªÒÀÀµºÃµÄ¼Ü¹¹Éè¼Æ£¬¶øÇÒÐèÒª¶ÔºËÐÄ´úÂ룬¸ßƵ·ÃÎÊÄ£¿é¾«µñϸ×Á£¬¿´ËƲ»ÆðÑÛµÄһЩСÓÅ»¯£¬³¤ÆÚ»ýÀÛÆðÀ´¾Í»áÓÐÖʵı仯£¬ÕýËùνϸ½Ú¾ö¶¨³É°Ü£¬×ö¼Ü¹¹Ò²ÊÇͬÑùµÄµ½µ×¡£
ºÜ¶à¼¼ÊõÈËÔ±ÔÚÌýµ½ÆóÒµ¼¼Êõ¼Ü¹¹Òª×ªÐÍ£¬´òËã´Óµ¥Ìå¼Ü¹¹Íù΢·þÎñ¼Ü¹¹×ªÐÍ£¬µÃÖªÏûÏ¢ºó¾ÍÒì³£µÄÐË·Ü£¬ÈÏΪ×Ô¼ºÂíÉÏÓÖÄÜѧµ½Ðµļ¼ÊõÁË£¬¿ªÊ¼È¥¹Ø×¢µ½µ×ÊÇÑ¡ÐÍÄÄÖÖ¼¼Êõ¼Ü¹¹£¬²¢ÔËÐпò¼ÜÌṩµÄ Demo£¬ÈÏΪ³É¹¦ÔËÐÐ Demo ¾Í¾ß±¸ÁËʵʩ΢·þÎñµÄÌõ¼þÁË£¬µÈ´ý¹«Ë¾Ò»ÉùÁîÏ£¬¾Í̤ÉÏ΢·þÎñÖ®ÂÃÁË¡£ÆäʵÕâÊÇÒ»ÖÖµäÐ͵ļ¼ÊõÈËÔ±¿¼ÂÇÊÂÇéµÄ˼ά£¬Í¨¹ý¹ýÍùµÄ¾ÑéÀ´¿´£¬¸üÖØÒªµÄÊÇÔÚʵʩ΢·þÎñ֮ǰȫԱͳһ˼Ïë¡¢³ä·ÖÅàѵ¡¢ ÒÔ¼°¹¤³Ì½á¹¹±ê×¼»¯¡£
ͳһ˼Ï룺 ÒòΪÔÚ×¼±¸ÊµÊ©Î¢·þÎñµÄʱºò£¬Ê×ÒªÌõ¼þ¾ÍÊÇ»ñµÃ¸ß²ãµÄÈÏ¿É£¬ÒòΪÉæ¼°µ½×éÖ¯½á¹¹µÄµ÷ÕûÒÔ¼°ºóÐøÈËÁ¦×ÊÔ´µÄÔö²¹£¬ÁíÍâÔÚмܹ¹ÉÏÏߺóÄÑÃâ»á³öÏÖÎÊÌ⣬Õâ¸öʱºòÐèÒªµÃµ½¸ß²ãµÄÖ§³Ö¡£ÁíÍ⣬ÔÚµ¥ÌåÓ¦ÓÃÖÐÆä×éÖ¯»ú¹¹°üÀ¨¿ª·¢²¿¡¢²âÊÔ²¿¡¢ÔËά²¿¡¢DBA ²¿£¬Ã¿¸ö²¿ÃŸ÷˾ÆäÖ°Óɸ߲ãͳһָ»Ó£¬¿´Ëƺܷdz£ºÏÀíµÄ×éÖ¯½á¹¹£¬µ«ÊÇÔÚÏîÄ¿»òÕßµü´úʵ¼Ê¹ý³ÌÖлỨ·Ñ´óÁ¿µÄʱ¼äÈ¥¿ç²¿ÃŹµÍ¨£¬ÐγÉÁ˹µºÊ½¹¦ÄÜÍŶӡ£
³ä·ÖÅàѵ£º ΢·þÎñ¼Ü¹¹µÄ¿ª·¢ÈËÔ±¾ß±¸¡°¾«¡±¡¢¡°Æø¡±¡¢¡°Éñ¡±µÄÌØÖÊ£¬·ñÔòÔÚºóÐø·¢Õ¹½×¶ÎÒ»¶¨»á³öÏÖ¸÷ÖÖÄÑÌâ¡£¡°¾«¡±ÊÇÖ¸ÊìϤҵÎñ£¬ÊìϤѡÐ͵Ŀª·¢¿ò¼Ü£¬¶ø²»½öÏÞÍê³É demo ÔËÐУ¬±ØÐëÒªÊìϤÔÀí£¬×îºÃÄÜÊìϤԴÂ룬×öµ½Ãæ¶ÔÎÊÌâ²»»Å£¬¡°Æø¡±ÊÇÖ¸´ó¼Ò¶Ô΢·þÎñ¼Ü¹¹Õâ¼þÊÂÇéµÄ˼ÏëÈÏÖªÒ»Ö£¬Äܹ»ÔÚÒ»¸öƵµÀÉ϶Ի°£¬¡°Éñ¡±ÊÇÖ¸ÐèÒªÁ˽âÆäÀíÂÛ֪ʶ£¬±ÈÈçʲôÊÇ·þÎñÖÎÀí£¬Ê²Ã´ÊÇ·þÎñ×ÔÖÎÔÔò£¬Ã÷°×ΪʲôÐèÒªÕâÑù¶ø²»ÊÇÄÇÑù¡£
¹¤³Ì½á¹¹±ê×¼»¯£º ËùÓзþÎñ½»¸¶·þÎñ£¬´Ó´úÂë·ç¸ñ±ÈÈçÀàµÄÃüÃû£¬module ÃüÃûÒÔ¼°Æô¶¯·½Ê½¶¼ÊÇÒ»Öµģ¬¼õÉÙÑз¢ÈËÔ±¶ÔÓÚδ֪µÄδ֪¶ø²úÉúµÄµ£ÐÄ¡£
ÔÚÕýʽ¿ªÊ¼Î¢·þÎñ֮ǰ£¬ÓбØÒªÁ˽âÏÂÔÆÔÉúµÄ 12 ÒªËØ£¬ËüÕë¶Ô΢·þÎñµÄһЩÉè¼Æ˼Ïë×öÁ˳ä·ÖµÄ¹éÄɺÍ×ܽᣬÔÆÔÉú 12 ÒªËصÄÄÚÈÝÈçÏ£º
ÆäÖеÚÒ»ÌõÐèÒªÌرð×¢Ò⣬ËüÒªÇó»ù×¼´úÂë»òÕßÈí¼þÖÆÆ·Ö»ÔÊÐíÓÐÒ»·Ý£¬¿ÉÒÔ²¿Ê𵽶à¸ö»·¾³£¬²»ÒòΪ»·¾³µÄ¸Ä±ä¶øÐèÒªÖØбàÒë»òÕßÕë¶Ô²»Í¬µÄ»·¾³±àÒë¶à¸öÖÆÆ·¡£¼Çס£¬²âÊÔ¼´½»¸¶µÄÔÔò£¬¼´Äã²âÊÔµÄÈí¼þÖÆÆ·ºÍ½»¸¶µ½Éú²úµÄÈí¼þÖÆÆ·ÊÇÒ»ÑùµÄ¡£ÖصãÇ¿µ÷»·¾³ÅäÖúÍÖÆÆ·¿â·ÖÀ룬Èç¹ûÊDzâÊÔ»·¾³µÄÅäÖã¬ÄÇôÈí¼þÔËÐÐÆðÀ´¾ÍÊDzâÊÔ»·¾³£¬Èç¹ûÊÇÉú²ú»·¾³µÄÅäÖã¬ÄÇôÈí¼þÔËÐÐÆðÀ´¾ÍÊÇÉú²ú»·¾³¡£·¢Ïֺܶà³ÌÐòÔ±¶¼Ï²»¶°ÑÅäÖÃÎļþдµ½¹¤³ÌÀïÃ棬ÀýÈç application-dev.properties¡¢application-test.properties¡¢application-prod.properties µÈ£¬È»ºóÔÚϵͳÆô¶¯µÄʱºòÔö¼Ó spring.profiles.active=dev À´ËµÃ÷»·¾³£¬ÆäʵÕâÖÖ×ö·¨ÊǷdz£µÄ²»ÓÅÑÅ£¬Ê×ÏÈÎ¥±³ÁËÔÆÔÉú 12 ÒªËصÚÒ»¸öÌõ¼þ£¬Æä´Î²âÊÔ»·¾³¡¢Éú³É»·¾³µÄËùÓеÄÅäÖÃÐÅÏ¢¶¼±©Â¶ÔÚ´úÂëÖУ¬ÈÝÒ×µ¼ÖÂÐÅϢй¶£¬×îºóÔö¼ÓÔËά²¿ÊðÄѶȣ¬Ò»µ©»·¾³±äÁ¿±êʶ´íÎó¾Í»áµ¼ÖÂÈí¼þÔËÐÐʧ°Ü¡£
×ܽáΪÈýÌõ£ºÇÐʵÐèҪʹÓÃ΢·þÎñÀ´½â¾öʵ¼ÊÎÊÌ⣻×éÖ¯½á¹¹Ë¼ÏëÈÏÖªÒ»Ö£»Ç°ÆÚÓÐÍêÉÆϵͳÐÔÕë¶Ô΢·þÎñµÄÅàѵ¡£
ÓÐЩÈËÈÏΪʹÓà Dubbo »òÕß SpringCloud °ÑϵͳÄÚ²¿½Ó¿Úµ÷Óû»³É RPC »òÕß Rest µ÷Ó㬾ÍÍê³ÉÁË΢·þÎñ¸ÄÔìÁË£¬ÆäʵÕâÊÇÖ»ÊÇ΢·þÎñµÄ±ùɽһ½Ç£¬ÍêÕûµÄȥʵʩ΢·þÎñ±ØÐë´ÓÈ«¾Ö¿¼ÂÇͳһ¹æ»®£¬°üÀ¨Ç°ºó¶Ë·ÖÀ룬·þÎñÎÞ״̬¡¢Í³Ò»ÈÏÖ¤ÒÔ¼°ÔËάÌåϵµÄµ÷ÕûµÈ¡£
Ç°ºó¶Ë·ÖÀ룺 ÊÇָǰ¶ËºÍºó¶ËµÄ´úÂë·ÖÀ룬ǰ¶Ë¸ºÔð HTML Ò³ÃæµÄ±àдÒÔ¼°Âß¼Ìøת£¬ºó¶Ë¸ºÔðÌṩÊý¾Ý½Ó¿Ú¸øÇ°¶Ë£¬Ç°ºó¶Ë¿ª·¢ÈËÔ±¿ÉÒÔ²¢Ðпª·¢¡£Ç°¶Ë¶ÔÌøתÂß¼ºÍ UI ½»»¥¸ºÔ𣬺ó¶Ë¶Ô½Ó¿ÚµÄ¸ß¿ÉÓøºÔð¡£Ç°¶Ë html ²ãʹÓà VUE ¿ò¼Ü£¬node.js ¿ÉÒÔÆðµ½Âß¼ÌøתµÄ¿ØÖÆ£¬Ç°ºó¶ËͨÐŲÉÓà rest ·½Ê½£¬json Êý¾Ý¸ñʽͨÐÅ¡£Ç°ºó¶Ë·ÖÀëºóµÄºÃ´¦×ܽáÀ´Ëµ°üº¬ÈçÏ£º
·þÎñÎÞ״̬£º ÊÇÖ¸¸Ã·þÎñÔËÐеÄʵÀý²»»áÔÚ±¾µØ´æÖ´ÐÐÓÐ״̬µÄ´æ´¢£¬ÀýÈç²»´æ´¢ÐèÒª³Ö¾Ã»¯µÄÊý¾Ý£¬²»´æ´¢ÒµÎñÉÏÏÂÎÄÐÅÏ¢£¬²¢ÇÒ¶à¸ö¸±±¾¶ÔÓÚͬһ¸öÇëÇóÏìÓ¦µÄ½á¹ûÊÇÍêÈ«Ò»Öµģ¬Ò»°ãÒµÎñÂß¼´¦Àí¶¼±»»á¶¨ÒåΪÎÞ״̬·þÎñ¡£
¼ÇµÃÔÚ΢·þÎñÖع¹µÄ³õ¼¶½×¶Î·¢Éú¹ýÒ»´ÎÌرðÓдú±íÐÔµÄÏßÉϹÊÕÏ£¬ÓиöÑз¢ÈËÔ±¸ºÔðÑéÖ¤ÂëµÇ½ģ¿é¿ª·¢£¬°ÑÑéÖ¤Âë´æÈëÁ˱¾µØ»º´æÖУ¬ÓÉÓÚÎÒÃÇ¿ª·¢¡¢²âÊÔ»·¾³¶¼Êǵ¥ÊµÀý²¿Êð£¬ËùÒÔ²¢Ã»Óз¢ÏÖÎÊÌ⣬µ±ÏßÉÏÊǶàʵÀý²¿Êð£¬ËùÒԻᵼÖ´óÁ¿Óû§µÇ½ʧ°ÜµÄ³¡¾°¡£Õâ¸öÏßÉϹÊÕϵĺËÐÄÎÊÌâµãÔÚÓÚûÓÐÇå³þµÄÈÏʶÎÞ״̬·þÎñºÍÓÐ״̬·þÎñµÄµÄʹÓó¡¾°¡£
ͳһÈÏÖ¤£º ͳһÈÏÖ¤ÓëÊÚȨÊÇ¿ªÊ¼ÊµÊ©·þÎñ»¯µÄ×î»ù´¡Ìõ¼þ£¬Ò²ÊÇ×î»ù´¡µÄÒ»ÏîÓ¦Óá£ÔÚ¹ýÈ¥µÄµ¥ÌåÓ¦ÓÃÖУ¬¿ÉÒÔ»ùÓÚÀ¹½ØÆ÷ºÍ Session ʵÏÖ»ù±¾µÄµÇ¼Óë¼øȨ¡£ÔÚ΢·þÎñ¼Ü¹¹ÖУ¬·þÎñ¶¼±»Éè¼ÆΪÎÞ״̬ģʽ£¬ÏÔÈ»À¹½ØÆ÷ºÍ Session ģʽÒѾ²»·ûºÏ¼Ü¹¹ÒªÇóÁË£¬ÐèÒªÓÉͳһÈÏÖ¤·þÎñÀ´Íê³ÉÈÏÖ¤¼øȨÒÔ¼°ºÍµÚÈý·½ÁªºÏµÇ½µÄÒªÇó£¬ÎÒÃÇʹÓà token »úÖÆÀ´×öͳһÈÏÖ¤£¬Ö÷ÒªÁ÷³ÌÈçÏ£º
Íê³ÉÇ°ºó¶Ë·ÖÀ룬·þÎñÎÞ״̬¸ÄÔ졢ͳһÈÏÖ¤´¦Àíºó£¬ »ù±¾ÉÏÍê³ÉÁË΢·þÎñÂÖÀªµÄ¸ÄÔì¡£½ÓÏÂÀ´¾ÍÐèҪȥʶ±ðµ¥ÌåÓ¦ÓÃ×îÐèÒª¸ÄÔì³É΢·þÎñµÄÄ£¿é£¬ÍƼöÊÇÒ»¸öÄ£¿éÉõÖÁÒ»¸ö½Ó¿ÚÕâÑùµÄ½ø¶ÈÈ¥²ð·Öµ¥ÌåÓ¦Ó㬶ø²»½¨ÒéÒ»´ÎÐÔÈ«²¿Öع¹Íê±Ï¡£
̸µ½Î¢·þÎñ£¬ÒéÂÛµÄ×î¶à£¬³³¼ÜµÄ×î¶àµÄ¾ÍÊÇ·þÎñ²ð·ÖÎÊÌ⣬·þÎñ²ð·ÖÊÇ·ñºÏÀíÖ±½ÓÓ°Ï쵽΢·þÎñ¼Ü¹¹µÄ¸´ÔÓÐÔ¡¢Îȶ¨ÐÔÒÔ¼°¿ÉÀ©Õ¹ÐÔ¡£È»¶ø²¢Ã»ÓÐÈκÎÒ»±¾Êé¼®»òÕ߹淶À´½éÉÜÈçºÎ²ð·Ö·þÎñ£¬ÄÇôÈçºÎÕýÈ·µÄ×ö·þÎñµÄ²ð·Ö? Ä¿Ç°¸÷¼Ò×ö·¨Ò²¶¼ÊǸù¾Ý¼Ü¹¹Ê¦¾ÑéÒÔ¼°ÒµÎñÐÎ̬ºÍÓû§¹æÄ£µÈÒòËØ×ۺϿ¼ÂÇ¡£ÔÚ¹¤×÷ÖÐÔø¾Óöµ½ÒÔ϶þÖÖ·þÎñ²ð·ÖµÄģʽ£º
ÓÐÈË˵°´·½·¨²ð·Ö·þÎñÌ«¹ýÓÚϸÖ£¬Ó¦¸ÃÒª°´ÒµÎñ¹¦ÄÜÀ´²ð¡£Æäʵµ±ÒµÎñ´ïµ½Ò»¶¨¹æÄ£µÄʱºò£¬°´·½·¨²ð·ÖÊÇÒ»Öַdz£ÓÐЧµÄ×ö·¨£¬ÒÔÓû§·þÎñ¾ÙÀý£¬ÔÚ³õʼ½×¶ÎµÄʱºò£¬Óû§·þÎñ¾ß±¸ÁËÓû§µÄÔöɾ¸Ä²é¹¦ÄÜ£¬µ±Óû§¹æÄ£ÉÏÉýÖ®ºóÐèÒª¶ÔÔöɾ¸Ä²é¹¦ÄÜ×öÓÅÏȼ¶»®·Ö¡£´ó¼Ò¶¼ÖªµÀÔÚ»¥ÁªÍøÖÐÁ÷Á¿»ñ¿ÍÊÇ×î¹óµÄ£¬ÔËÓªÍŶÓͨ¹ý»¥ÁªÍøͶ·Å¹ã¸æ»ñ¿Í£¬Óû§ÔÚ¹ã¸æÒ³ÉÏÌîдÊÖ»úºÅÂëÖ´ÐÐ×¢²á¹ý³Ì£¬Èç¹û´Ëʱע²áʧ°Ü»òÕß×¢²á¹ý³ÌÏìӦʱ¼ä¹ý³¤£¬ÄÇôÕâ¸ö¿Í»§¾Í¿ÉÄÜÁ÷ʧÁË£¬µ«Êǹã¸æµÄµã»÷·ÑÓòúÉúÁË£¬ÎÞÐÎÖÐÐγÉÁË×ÊÔ´µÄÀË·Ñ¡£ËùÒÔ´ËʱÐèÒª°´·½·¨Î¬¶ÈÀ´²ð·Ö·þÎñ£¬°ÑÓû§·þÎñ²ð·ÖΪÓû§×¢²á·þÎñ£¨Ö»ÓÐ×¢²á¹¦ÄÜ£©£¬Óû§»ù´¡·þÎñ£¨Ð޸ġ¢²éѯÓû§ÐÅÏ¢£©¡£
ÔÚ×ö·þÎñ²ð·ÖµÄʱºò£¬Ã¿¸ö·þÎñµÄÍŶÓÈËÊý¹æÄ£Ò²ÊǷdz£ÖØÒªµÄ£¬ÈËÊý¹ý¶à¿ÉÄÜ»á±ä³Éµ¥ÌåÓ¦Ó㬹µÍ¨¾ö²ß»á»ºÂý£¬ÈËÊýÌ«ÉÙ¹¤×÷ЧÂÊÓֻήµÍ£¬Ò»°ãÀ´Ëµ»á×ñÑ 2 ¸öÅûÈøÔÔòºÍ¿µÍþ¶¨ÂÉ£º
2 ¸öÅûÈøÔÔò£º Á½¸öÅûÈøÔÔò×îÔçÊÇÓÉÑÇÂíÑ· CEO ±´Ë÷˹Ìá³öµÄ£¬ËûÈÏΪÈç¹ûÁ½¸öÅûÈø²»×ãÒÔι±¥Ò»¸öÏîÄ¿ÍŶӣ¬ÄÇôÕâ¸öÍŶӿÉÄܾÍÏÔµÃÌ«´óÁË£¬ËùÒÔÒ»¸ö·þÎñµÄÈËÊý»®·ÖΪ 5-7 È˱ȽϺÏÊÊ¡£ÒòΪÈËÊý¹ý¶àµÄÏîÄ¿½«²»ÀûÓÚ¾ö²ßµÄÐγɣ¬¶øÈÃÒ»¸öСÍŶÓÔÚÒ»Æð×öÏîÄ¿¡¢¿ª»áÌÖÂÛ£¬Ôò¸üÓÐÀûÓÚ´ï³É¹²Ê¶£¬²¢Äܹ»ÓÐЧ´Ù½øÆóÒµÄÚ²¿µÄ´´Ð¡£
¿µÍþ¶¨ÂÉ£º ÄãÏëÒª¼Ü¹¹³ÉΪʲôÑù£¬¾Í½«ÍŶӷֳÉÔõÑùµÄ½á¹¹¡£±ÈÈçÇ°ºó¶Ë·ÖÀëµÄÍŶӣ¬¼Ü¹¹¾ÍÊÇ»ùÓÚÇ°ºó¶Ë·ÖÀë¡£ÔÚ»ùÓÚ΢·þÎñÉè¼ÆµÄÍŶÓÀһ¸öºÜºÃµÄÀíÄîÊÇ×Ô¹ÜÀí£¬ÍŶÓÄÚ²¿¶ÔÓÚ×Ô¼ºËù¸ºÔðµÄÄ£¿é¸ß¶È¸ºÔ𣬽øÐж˶Զ˵Ŀª·¢ÒÔ¼°ÔËά¡£
Õû¸öµ¥ÌåÓ¦ÓÃÓÐÄÇô¶àµÄ¹¦ÄÜ£¬µ½µ×ÄÄЩҵÎñ¹¦ÄÜÐèÒª²ð·Ö£¬ÄÄЩҵÎñ¹¦ÄÜÓÖ²»ÐèÒª²ð·ÖÄØ£¿¿ÉÒÔ×ñÑ·þÎñ²ð·ÖµÄ·½·¨ÂÛ£ºµ±Ò»¿éÒµÎñ²»ÒÀÀµ»ò¼«ÉÙÒÀÀµÆäËü·þÎñ£¬ÓжÀÁ¢µÄÒµÎñÓïÒ壬Ϊ³¬¹ý 2 ¸ö»òÒÔÉϵÄÆäËû·þÎñ»ò¿Í»§¶ËÌṩÊý¾Ý£¬Ó¦¸Ã±»²ð·Ö³ÉÒ»¸ö¶ÀÁ¢µÄ·þÎñÄ££¬¶øÇÒ²ð·ÖµÄ·þÎñÒª¾ß±¸¸ßÄÚ¾ÛµÍñîºÏ¡£
¹ØÓÚ·þÎñ²ð·Öģʽ£¬Ê¹ÓñȽ϶àµÄÊÇÒµÎñ¹¦ÄÜ·Ö½âģʽºÍÊý¾Ý¿âģʽ£¬ÒòΪÈÝÒ×Àí½â¶øÇÒʹÓÃÆðÀ´±È½Ï¼òµ¥£¬Ð§¹ûÒ²ºÜºÃ¡£
ÒµÎñ¹¦ÄÜ·Ö½âģʽ£º ÅжÏÒ»¸ö·þÎñ²ð·ÖµÄºÃ»µ£¬¾Í¿´Î¢·þÎñ²ð·ÖÍê³ÉºóÊÇ·ñ¾ß±¸·þÎñµÄ×ÔÖÎÔÔò£¬Èç¹û°Ñ¸´ÔÓµ¥ÌåÓ¦ÓøÄÔì³ÉÒ»¸öÒ»¸öËÉñîºÏʽ΢·þÎñ£¬ÄÇô°´ÕÕÒµÎñ¹¦ÄܽøÐзֽâÊÇ×î¼òµ¥µÄ£¬Ö»Ðè°ÑÒµÎñ¹¦ÄÜÏàËƵÄÄ£¿é¾Û¼¯ÔÚÒ»Æð¡£±ÈÈ磺
΢·þÎñ³õʼ½×¶Î·þÎñ²ð·Ö²»ÐèҪ̫ϸ£¬µÈµ½ÒµÎñ·¢Õ¹ÆðÀ´ºó¿ÉÒÔÔÙ¸ù¾Ý×ÓÓò·½Ê½À´²ð·Ö£¬°Ñ¶ÀÁ¢µÄ·þÎñÔÙ²ð·Ö³É¸üСµÄ·þÎñ£¬×îºóµ½½Ó¿Ú¼¶±ð·þÎñ¡£Èç¹û·þÎñ²ð·ÖµÄ¹ýС»áµ¼Öµ÷ÓÃÁ´¹ý³¤£¬ÒÔ¼°Òý·¢Ã»ÓбØÒªµÄ·Ö²¼Ê½ÊÂÎñ£¬´Ëʱ½×¶ÎÐԵĺϲ¢·Ç³£ÖØÒª¡£×öΪ¼Ü¹¹Ê¦²»½öҪѧ»á²ð·Ö·þÎñ£¬Ò²ÐèҪѧ»áºÏ²¢·þÎñ£¬ÐèÒªÖÜÆÚÐÔµÄÈ¥°Ñ²ð·Ö¹ýС»òÕß²ð·Ö²»ºÏÀíµÄ·þÎñÒª¼°Ê±ºÏ²¢¡£
×ܵÃÀ´Ëµ£¬ÔÚ·þÎñ²ð·ÖµÄʱºòÐèҪץסÒÔÏÂÖص㣺
Ôø¾ÓÐÒ»Ïîµ÷²é£¬µ±Ò»¸ö³ÌÐòÔ±µ½Ð¹«Ë¾»òÕß½ÓÊÖÏîÄ¿×îŵÄÊÂÇéÊÇʲô£¬³¬¹ý 90% µÄÈ˵Ķ¼ÈÏΪ×îŽÓÊÖÆäËûÈ˵ÄÏîÄ¿¡£´ÓÐÄÀíѧ½Ç¶ÈÀ´¿´£¬Õâ¸ö½á¹û·Ç³£Õý³££¬º¦ÅÂÊÇÒòΪ¶Ô¼´½«½ÓÊÖÏîÄ¿µÄδ֪£¬²»Çå³þÏîÄ¿ÈçºÎÆô¶¯£¬²»Çå³þ´úÂëÊÇÈçºÎ·Ö²ã¡£´ó¼ÒÊÔÏë¿´£¬µ±Ò»¸öµ¥ÌåÓ¦Óñ»»®·ÖΪ N ¶à¸ö·þÎñµÄʱºò£¬Ã¿¸ö·þÎñÆô¶¯·½Ê½£¬´úÂë²ã´Î¸÷²»Ïàͬ£¬ÈçºÎȥά»¤ÄØ£¿ËùÒÔ΢·þÎñÆô¶¯½×¶Î£¬Ê×ÏÈÒª×öµÄÊÂÇé¾ÍÊǹ¤³Ì½á¹¹±ê×¼»¯ºÍ×Ô¶¯»¯£¬ÈÃÑз¢ÈËÔ±µÄÖص㾫Á¦È¥×öÒµÎñ£¬¶ø²»ÊÇÈ¥´î½¨¿ò¼Ü¡£Òò´Ë»ùÓÚ velocity ×Ô¶¨ÒåÁËÒ»Ì×΢·þÎñ´úÂë×Ô¶¯Éú³É¿ò¼Ü£¬Ñз¢ÈËÔ±Éè¼ÆºÃ±í½á¹¹Ö®ºó£¬¿ò¼Ü¸ù¾Ý±í½á¹¹×Ô¶¯Éú³É·þÎñ´úÂ룬°üº¬ API ½Ó¿Ú£¬ÊµÏÖÀ࣬DAO ²ãÒÔ¼° Mybatis µÄÅäÖÃÎļþ£¬ÀàµÄÃû³Æ£¬°üÃû¡¢module Ãû³Æ¶¼ÓÐÑϸñµÄ¶¨Òå¡£ÒÔÓû§·þÎñΪÀý£¬Éú³ÉºóµÄ´úÂë¸ñʽÈçÏ£º
basics-userservice?basics-userservice-api?basics-userservice-business?basics-userservice-fa?ade?basics-userservice-model?basics-userservice-service?
ΪÁËÈÃÑз¢Ð§Âʸü¿ì£¬¼Ü¹¹¸üÇåÎú£¬ÓִӼܹ¹²ãÃæ°Ñ´úÂëÔÙ²ð·ÖΪ¾ÛºÏ·þÎñ²ãºÍÔ×Ó·þÎñ²ã£¬Ã¿Ò»²ã¶ÔÓ¦µÄ¹¦Äܲ»Ò»Ñù¡£
ÐèҪ˵Ã÷µÄÊÇ£¬¾ÛºÏ²ãºÍÒµÎñ±È½ÏÌù½ü£¬ÐèÒªÁ˽âÒµÎñ¸üºÃµÄ·þÎñÒµÎñ£¬ºÍ App ¶Ë½»»¥·Ç³£¶à£¬ÖصãÊǺÏÀíÉè¼ÆµÄÇ°ºó¶Ë½Ó¿Ú£¬¼õÉÙ App ºÍºó¶Ë½»»¥´ÎÊý¡£Ô×Ó·þÎñÔòÊǹØ×¢ÐÔÄÜ£¬ÆÁ±ÎÊý¾Ý¿â²Ù×÷£¬ÆÁ±Î·Ö¿â·Ö±íµÈ²Ù×÷¡£
×îºó»¹µÃÌáÏÂϵͳÈÕÖ¾£¬ÈÕÖ¾¼Ç¼µÄÏêϸ³Ì¶ÈÖ±½Ó¹Øϵµ½ÏµÍ³ÔÚ³öÏÖÎÊÌâʱ¶¨Î»µÄËÙ¶È, ͬʱҲ¿ÉÒÔͨ¹ý¶Ô¼Ç¼ÈÕÖ¾¹Û²ìºÍ·ÖÎöͳ¼Æ£¬ÌáÇ°·¢ÏÖϵͳ¿ÉÄܵķçÏÕ£¬±ÜÃâÏßÉÏʹʵķ¢Éú¡£¶ÔÓÚ·þÎñ¶Ë¿ª·¢ÈËÔ±À´Ëµ£¬ÏßÉÏÈÕÖ¾µÄ¼à¿ØÓÈÆäÖØÒª£¬Äܹ»Í¨¹ýÈÕÖ¾µÚһʱ¼ä·¢ÏÖÏßÉÏÎÊÌâ²¢¼°Ê±½â¾ö¡£È»¶øͨ¹ý¹Û²ìÊÕ¼¯ºóµÄÈÕÖ¾ÐÅÏ¢ÄÚÈݵÄʱºò²Å·¢ÏÖÈÕÖ¾¹æ·¶Õâ¿éÄÚÈÝÒ»Ö±¶¼Ã»ÓÐÖØÊÓ¹ý£¬¼ÇÈÕÖ¾ÓÀÔ¶¿´ÐÄÇ飬ÈÕÖ¾¼Ç¼µÄÄÚÈÝÒ²ÊÇƾ¸Ð¾õ¡£Òò´ËÔÚʵʩ΢·þÎñµÄ֮ǰ£¬±ØÐëÒªÏÈÈ·¶¨ÈÕÖ¾µÄ¹æ·¶£¬ÎªÁ˱ãÓÚºóÃæµÄÈÕÖ¾²É¼¯¡¢´¦ÀíºÍ·ÖÎö¡£ÀýÈçͳһԼ¶¨ÈÕÖ¾¸ñʽÈçÏ£º
¹¤³Ì½á¹¹¡¢´úÂë¿ò¼ÜºÍÈÕÖ¾ÔÚ¿ª·¢¹ý³ÌÖÐ×îÈÝÒ×±»ºöÂԵģ¬µ«È´·Ç³£µÄÖØÒª£¬Ç°ÆÚºÏÀíµÄ¹æ»®ÓÐÖúÓÚ¹æÄ£»¯ÍƹãµÄʱºò¼õÇáѹÁ¦£¬Ôڹ滮½×¶ÎÒªÖصã¹Ø×¢ÒÔÏÂÄÚÈÝ£º
ÒªÌá¸ßϵͳÎȶ¨ÐÔ£¬ÄÇôºÃµÄÉè¼Æ¡¢¾«ÐÄ´òÄ¥´úÂë¡¢ÔËά¼à¿ØÕâ 3 ¸ö»·¾³±Ø²»¿ÉÉÙ¡£ÀýÈçÔÚ²úÆ·ÏêÇéÒ³Õâ¸ö¹¦ÄÜÉÏ£¬¾ÛºÏ²ã»áµ÷ÓÃÔ×Ó·þÎñ 26 ¸ö RPC ½Ó¿Ú£¬ÎªÁ˽µµÍ¿Í»§¶ËµÄÏìӦʱ¼ä£¬ÔÚÉè¼ÆµÚÒ»°æµÄʱºò°Ñ¾ÛºÏºóµÄ½á¹û·ÅÈëµ½·Ö²¼Ê½»º´æÖУ¬µ«ÊÇÓû§·ÃÎʸ߷åÆÚµÄʱºò·Ö²¼Ê½»º´æ QPS ·Ç³£¸ß£¬»áÒ»¶¨³Ì¶ÈÉÏÓ°ÏìϵͳµÄÐÔÄÜ£¬¶øÇÒÒ»µ©»º´æʧЧÓÖÐèÒªÔٴε÷ÓÃÕâЩ RPC ½Ó¿Ú£¬ÏìӦʱ¼ä±ä³¤¡£ÎªÁ˸ü¾«Ï¸»¯Ê¹Óûº´æ£¬Ê¹ÓÃÁ˶þ¼¶»º´æÉè¼Æ˼·£¬×Ðϸ·ÖÎöÕâЩ½Ó¿Úºó·¢ÏÖ£¬Êý¾ÝµÄ»º´æʧЧʱ¼ä¿ÉÒÔÉèÖò»Í¬µÄʱ¼ä£¬Ã»±ØÒªÕûÌå¹ýÆÚ£¬½Ó¿ÚÇëÇóµÄʱºòÏÈĬÈÏʹÓñ¾µØ»º´æ£¬µ±±¾µØ»º´æʧЧºóÔÙµ÷Óà RPC ½Ó¿Ú£¬ÕâÑù¿ÉÒÔÓÐЧµÄ½µµÍ RPC ½Ó¿Úµ÷ÓôÎÊý¡£
ÔÚʹÓûº´æµÄʱºò²»¿É±ÜÃâµÄ»áÓöµ½»º´æ´©Í¸¡¢»º´æ»÷´©¡¢»º´æÑ©±ÀµÈ³¡¾°£¬Õë¶ÔÿÖÖ³¡¾°µÄʱºòÐèҪʹÓò»Í¬µÄÓ¦¶Ô²ßÂÔ£¬´Ó¶ø±£ÕÏϵͳµÄ¸ß¿ÉÓÃÐÔ¡£
»º´æ´©Í¸£º ÊÇÖ¸²éѯһ¸öÒ»¶¨²»´æÔÚ»º´æ key£¬ÓÉÓÚ»º´æÊÇδÃüÖеÄʱºòÐèÒª´ÓÊý¾Ý¿â²éѯ£¬Õý³£Çé¿öϲ鲻µ½Êý¾ÝÔò²»Ð´È뻺´æ£¬¾Í»áµ¼ÖÂÕâ¸ö²»´æÔÚµÄÊý¾Ýÿ´ÎÇëÇó¶¼Òªµ½Êý¾Ý¿âÈ¥²éѯ£¬Ôì³É»º´æ´©Í¸, ÓÐ 2 ¸ö·½°¸¿ÉÒÔ½â¾ö»º´æ´©Í¸£º
·½°¸ 1£º¿ÉÒÔʹÓò¼Â¡¹ýÂËÆ÷·½°¸£¬ÏµÍ³Æô¶¯µÄʱºò½«ËùÓдæÔÚµÄÊý¾Ý¹þÏ£µ½Ò»¸ö×ã¹»´óµÄ bitmap ÖУ¬µ±Ò»¸öÒ»¶¨²»´æÔÚµÄÊý¾ÝÇëÇóµÄʱºò£¬»á±»Õâ¸ö bitmap À¹½Øµô£¬´Ó¶ø±ÜÃâÁ˶ԵײãÊý¾Ý¿âµÄ²éѯѹÁ¦
·½°¸ 2£º·µ»Ø¿ÕÖµ£ºÈç¹ûÒ»¸ö²éѯÇëÇó²éѯÊý¾Ý¿âºó·µ»ØµÄÊý¾ÝΪ¿Õ£¨²»¹ÜÊÇÊý¾Ý²»´æÔÚ£¬»¹ÊÇϵͳ¹ÊÕÏ)£¬ÈÔÈ»°ÑÕâ¸ö¿Õ½á¹û½øÐлº´æ£¬µ«ËüµÄ¹ýÆÚʱ¼ä»áºÜ¶Ì£¬±ÈÈç 1 ·ÖÖÓ£¬µ«ÊÇÕâÖÖ·½·¨½â¾ö²»¹»³¹µ×¡£
»º´æ»÷´©£º »º´æ key ÔÚij¸öʱ¼äµã¹ýÆÚµÄʱºò£¬¸ÕºÃÔÚÕâ¸öʱ¼äµã¶ÔÕâ¸ö Key ÓдóÁ¿µÄ²¢·¢ÇëÇó¹ýÀ´£¬ÇëÇóÃüÖлº´æʧ°Üºó»áͨ¹ý DB ¼ÓÔØÊý¾Ý²¢»Øдµ½»º´æ£¬Õâ¸öʱºò´ó²¢·¢µÄÇëÇó¿ÉÄÜ»á˲¼ä°Ñºó¶Ë DB ѹ¿å£¬½â¾ö·½°¸Ò²ºÜ¼òµ¥Í¨¹ý¼ÓËøµÄ·½Ê½¶ÁÈ¡Êý¾Ý£¬Í¬Ê±Ð´È뻺´æ¡£
»º´æÑ©±À£º ÊÇÖ¸ÔÚÉèÖûº´æʱʹÓÃÁËÏàͬµÄ¹ýÆÚʱ¼ä£¬µ¼Ö»º´æÔÚijһʱ¿ÌͬʱʧЧ£¬ËùÓеIJéѯ¶¼ÇëÇóµ½Êý¾Ý¿âÉÏ£¬µ¼ÖÂÓ¦ÓÃϵͳ²úÉú¸÷ÖÖ¹ÊÕÏ£¬ÕâÑùÇé¿ö³Æ֮Ϊ»º´æÑ©±À£¬¿ÉÒÔͨ¹ýÏÞÁ÷µÄ·½Ê½À´ÏÞÖÆÇëÇóÊý¾Ý¿âµÄ´ÎÊý¡£
»º´æµÄʹÓÃÔÚÒ»¶¨³Ì¶ÈÉÏ¿ÉÒÔÌá¸ßϵͳµÄ QPS£¬µ«ÊÇÉÏÏߺó»¹ÊÇ·¢ÏÖż¶û»á³öÏÖ³¬Ê±µÄÎÊÌ⣬¼ÙÉèÿ¸ö·þÎñÏìӦʱ¼äΪ 50 ºÁÃ룬ÄÇô 26*50=1300 ºÁÃ룬ÒѾ³¬¹ýÁËÉèÖà 1 Ã볬ʱʱ¼ä£¬Îª½â¾öż·¢ÐÔ³¬Ê±ÎÊÌ⣬¾ÍÐèÒª°Ñ´®Ðеĵ÷Óõ÷ÕûΪ²¢Ðе÷Óãº
Ï̳߳ز¢Ðе÷Ó㺠ΪÁËÌá¸ß½Ó¿ÚÏìӦʱ¼ä£¬°Ñ֮ǰ´®Ðе÷Ó÷½Ê½ÐÞ¸ÄΪ°ÑÇëÇó·âװΪ¸÷ÖÖ Future ·ÅÈëÏ̳߳ز¢Ðе÷Óã¬×îºóͨ¹ý Future µÄ get ·½·¨Äõ½½á¹û¡£ÕâÖÖ·½Ê½ÔÝʱ½â¾öÁËÏêÇéÒ³·ÃÎÊËٶȵÄÎÊÌ⣬µ«ÊÇÔËÐÐÒ»¶Îʱ¼äºó·¢ÏÖÔÚ²¢·¢Á¿´óµÄʱºòÕû¸ö¾ÛºÏ²ã·þÎñµÄ Tomcat Ï̳߳ØÈ«²¿ÏûºÄÍ꣬³öÏÖ¼ÙËÀµÄÏÖÏó¡£
·þÎñ¸ôÀë²¢Ðе÷Ó㺠ÓÉÓÚËùÓе÷ÓÃÍⲿ·þÎñÇëÇó¶¼ÔÚͬһ¸öÏ̳߳ØÀïÃ棬ËùÒÔÈκÎÒ»¸ö·þÎñÏìÓ¦Âý¾Í»áµ¼Ö Tomcat Ï̳߳ز»Äܼ°Ê±ÊÍ·Å£¬¸ß²¢·¢Çé¿öϳöÏÖ¼ÙËÀÏÖÏó¡£Îª½â¾öÕâ¸öÎÊÌ⣬ÐèÒª°Ñµ÷ÓÃÍⲿÿ¸ö·þÎñ¶ÀÁ¢³Éÿ¸öÏ̳߳أ¬Ï̳߳ØÂúÖ®ºóÖ±½ÓÅ׳öÒì³££¬³ÌÐòÖÐÔö¼Ó¸÷ÖÖÒì³£Åжϣ¬À´½â¾öÒòΪ¸ö±ð·þÎñÂýµ¼ÖµķþÎñ¼ÙËÀ¡£
Ï̸߳ôÀë·þÎñ½µ¼¶£º ·½Ê½ 2 Ëƺõ½â¾öÁËÎÊÌ⣬µ«ÊDz¢Ã»Óнâ¾ö¸ù±¾ÎÊÌâ¡£ÏìÓ¦ÂýµÄ·þÎñÈÔÈ»½ÓÊÕµ½´óÁ¿ÇëÇó£¬×îÖÕ°Ñ»ù´¡·þÎñѹ¿å£¬ÐèÒªÅжϵ±·þÎñÒì³£³¬¹ýÒ»¶¨´ÎÊýÖ®ºó£¬¾ÍÖ±½Ó·µ»ØÉèÖúõķµ»ØÖµ£¬¶ø²»ÓÃÈ¥µ÷Óà RPC ½Ó¿Ú¡£Õâʱºò³ÌÐòÖдæÔÚ´óÁ¿ÅжÏÒì³£µÄ´úÂ룬ÅжϷÖ֧̫¶à£¬¿¼ÂDz»ÍêÉƽӿھͻá³ö²î¡£
ÔÚ½øÐзþÎñ»¯²ð·ÖÖ®ºó£¬ÏµÍ³ÖÐÔÓеı¾µØµ÷Óþͻá±ä³ÉÔ¶³Ìµ÷Óã¬ÕâÑù¾ÍÒýÈëÁ˸ü¶àµÄ¸´ÔÓÐÔ¡£±ÈÈç˵·þÎñ A ÒÀÀµÓÚ·þÎñ B£¬Õâ¸ö¹ý³ÌÖпÉÄÜ»á³öÏÖÍøÂ綶¶¯¡¢ÍøÂçÒì³££¬·þÎñ B ±äµÃ²»¿ÉÓûòÕßÏìÓ¦Âýʱ£¬Ò²»áÓ°Ïìµ½ A µÄ·þÎñÐÔÄÜ£¬ÉõÖÁ¿ÉÄÜ»áʹµÃ·þÎñ A Õ¼ÂúÕû¸öÏ̳߳أ¬µ¼ÖÂÕâ¸öÓ¦ÓÃÉÏÆäËüµÄ·þÎñÒ²ÊÜÓ°Ï죬´Ó¶øÒý·¢¸üÑÏÖصÄÑ©±ÀЧӦ¡£ËùÒÔÒýÈëÁË Hystrix »ò Sentinel ×ö·þÎñÈ۶Ϻͽµ¼¶£»ÐèÒªÕë¶ÔÈçϼ¸Ïî×öÁ˸öÐÔ»¯ÅäÖãº
ËäÈ»·þÎñ²ð·ÖÒѾ½â¾öÁËÄ£¿éÖ®¼äµÄñîºÏ£¬´óÁ¿µÄ RPC µ÷ÓÃÒÀÈ»´æÔڸ߶ȵÄñîºÏ£¬²»¹ÜÊÇ´®Ðе÷Óû¹ÊDz¢Ðе÷Ó㬶¼ÐèÒª°ÑËùÒÀÀµµÄ·þÎñÈ«²¿µ÷ÓÃÒ»´Î¡£µ«ÊÇÓÐЩ³¡¾°²»ÐèҪͬ²½¸ø³ö½á¹ûµÄ£¬¿ÉÒÔÒýÈë MQ À´½µµÍ·þÎñµ÷ÓÃÖ®¼äµÄñîºÏ¡£ÀýÈçÓû§Íê³É×¢²á¶¯×÷ºóÐèÒªµ÷ÓÃÓÅ»Ýȯ·þÎñ·¢·ÅÓÅ»Ýȯ£¬ÔÚµ÷Óûý·Ö·þÎñ·¢·Å»ý·Ö£¬»¹ÐèÒª³õʼ»¯²ÆÎñÄ£¿é£¬ÔÙ¼ÆËãÓªÏú»î¶¯£¬×îºóÐèÒª°Ñ±¾´Î×¢²áÐÅÏ¢Éϱ¨¸øÐÅÏ¢Á÷£¬ÕâÖÖ×ö·¨´øÀ´ÁË 2 ¸öÎÊÌ⣬µÚÒ»¸öÎÊÌâÊÇÕû¸ö×¢²áÁ´Â·Ì«³¤£¬ÈÝÒ×·¢Éúʧ°Ü£¬µÚ¶þ¸öÎÊÌ⣬ÈκÎÒÀÀµÓû§×¢²áÐÐΪµÄ·þÎñ¶¼ÐèÒªÐ޸ķþÎñ×¢²á½Ó¿Ú¡£µ«ÊÇʹÓà MQ ½âñî¾Í·Ç³£¼òµ¥ÁË£¬Ö»ÐèÒªÍù MQ ·¢ËÍÒ»¸ö×¢²áµÄ֪ͨÏûÏ¢£¬ÏÂÓÎÒµÎñÈçÐèÒªÒÀÀµ×¢²áÏà¹ØµÄÊý¾Ý£¬Ö»ÐèÒª¶©ÔÄ×¢²áÏûÏ¢µÄ topic ¼´¿É£¬´Ó¶øʵÏÖÁËÒµÎñµÄ½âñʹÓà MQ µÄºÃ´¦°üÀ¨ÒÔϼ¸µã£º
ÈÕ³£¿ª·¢ÖУ¬¶ÔÓÚ MQ ×öÁËÈçÏÂÔ¼¶¨£º
»º´æ¡¢²¢Ðе÷Óá¢ÏûÏ¢¶ÓÁÐÕâЩÊֶζ¼Ê¹ÓÃÉÏÖ®ºó£¬ÏµÍ³µÄÎȶ¨ÐÔÒ²ÊÇÓÐÁËÖʵÄÌáÉý£¬³¬Ê±ÏÖÏóÒ²¼«ÉÙ·¢Éú¡£Ëæ×ÅÒµÎñµÄ¸ßËÙ·¢Õ¹£¬Ã¿ÖÜÉÏÏߵŦÄÜÒ²ÊÇÖð²½Ôö¶à£¬Ã¿¸öÒµÎñ¶¼»áÐèÒª¼øȨ¡¢ÏÞÁ÷¡¢ÑéÇ©µÈÂß¼£¬ÐèҪÿ¸ö¾ÛºÏ·þÎñ¶¼ÐèÒª¸ù¾Ý¹æÔò×Ô¼ºÊµÏÖÒ»±é£¬È¨ÏÞÈÏ֤ÿ¸öÄ£¿é¸÷×Ô´¦Àí£¬×´Ì¬Âë¸÷ÖÖ¸÷Ñù£¬±ÈÈç½Ó¿Ú·µ»ØÐèÒªÖØеǽ״̬Â룬ÓÐЩ·þÎñ·µ»Ø code=-8£¬ÓÐЩÔò·µ»Ø code=-1£»Ç°¶Ë¸ù¾Ýÿ¸öÒµÎñÄ£¿éÀ´Æ¥Åä½âÎö²»Í¬µÄÑéÖ¤Â룬ÔÚÉÏÏߵķ¢°æʱºò³öÏÖһЩÓÐȤµÄÏÖÏ󣬺ܶàÈËΧ×ÅÔËάÔÚÐÞ¸Ä Nginx µÄÅäÖ㬴Ëʱ¿ª·¢ÓÖÓöµ½ÁËеÄÆ¿¾±£º
Ϊ´ËʹÓà Netty ¿ò¼ÜºÍ Dubbo ·º»¯¹¦ÄÜ×ÔÑÐÁËÒ»Ì×Íø¹Ø£¬ÔÚÍø¹ØÉϼ¯³ÉÁËÓû§È¨ÏÞÈÏÖ¤¡¢ÏÞÁ÷¡¢È۶Ͻµ¼¶µÈ¹¦ÄÜ£¬ÈÃÒµÎñ¿ª·¢ÈËÔ±Ö»¹ØÐÄÒµÎñʵÏÖ£¬¶øÎÞÐè¹Ø×¢·ÇÒµÎñ¡£
Íø¹Ø¿ÉÒÔÀí½âΪһ¸ö·´Ïò·ÓÉ£¬ËüÆÁ±ÎÄÚ²¿Ï¸½Ú£¬Îªµ÷ÓÃÕßÌṩͳһÈë¿Ú£¬½ÓÊÕËùÓе÷ÓÃÕßÇëÇó£¬Í¨¹ý·ÓÉ»úÖÆת·¢µ½·þÎñʵÀý£¬Í¬Ê±Íø¹ØÒ²ÊÇ¡°¹ýÂËÆ÷¡±¼¯ºÏ£¬¿ÉÒÔʵÏÖһϵÁÐÓëÒµÎñÎ޹صĺáÇÐÃ湦ÄÜ£¬È簲ȫÈÏÖ¤¡¢ÏÞÁ÷È۶ϡ¢ÈÕÖ¾¼à¿Ø£¬Í¬Ê±Íø¹Ø»¹ÓÐÈçÏÂÌØÐÔ£º
ÐÒéת»»£º ½«²»Í¬µÄÐÒéת»»³É¡°Í¨ÓÃÐÒ顱£¬È»ºóÔÙ½«Í¨ÓÃÐÒéת»¯³É±¾µØϵͳÄܹ»Ê¶±ðµÄÐÒ飬ÀýÈç°Ñ HTTP ÐÒéͳһת»»Îª Dubbo ÐÒé¡£
Á´Ê½´¦Àí£º ÏûÏ¢´ÓµÚÒ»¸ö²å¼þÁ÷È룬´Ó×îºóÒ»¸ö²å¼þÁ÷³ö£¬Ã¿¸ö²½ÖèµÄ²å¼þ¶Ô¾¹ýµÄÏûÏ¢½øÐд¦Àí£¬Õû¸ö¹ý³ÌÐγÉÁËÒ»¸öÁ´Ìõ¡£ÓÅÊÆÔÚÓÚËü½«´¦ÀíÇëÇóºÍ´¦Àí²½Öè·Ö¿ª£¬Ã¿¸ö´¦ÀíµÄ²å¼þ£¬Ö»¹ØÐÄÕâ¸ö²å¼þÉÏÐèÒª×öµÄ´¦Àí²Ù×÷£¬´¦Àí²½ÖèºÍÂ߼˳ÐòÓÉ¡°Á´¡±À´Íê³É¡£
Òì²½ÇëÇó£º ËùÓеÄÇëÇ󶼻áͨ¹ý API Íø¹Ø·ÃÎÊÓ¦Ó÷þÎñ£¬ÎÞÂÛÒµÎñÁ¿ÈçºÎ±ä»¯£¬Íø¹ØµÄÍÌÍÂÁ¿Òª±£³ÖÎȶ¨×´Ì¬¡£
Ôڼܹ¹²ãÃæ°ÑÍø¹Ø·ÖΪ½ÓÈë²ã¡¢·Ö·¢²ãºÍ¼à¿Ø²ã£¬Íø¹ØºÍºó¶Ë·þÎñͨÐÅʹÓà Dubbo µÄ·º»¯·½Ê½£¬¸ºÔؾùºâÒ²Ö±½ÓʹÓà Dubbo ĬÈϵÄËæ»ú²ßÂÔ¡£
ÔÚͨÐÅÐÒéÉÏÇ°¶ËºÍÍø¹Ø½»»¥²ÉÓà HTTP ·½Ê½£¬Êý¾Ý¸ñʽÊÇ JSON ¸ñʽ£¬²¢¶¨ÒåÁËÒ»Ì×Íø¹Ø½Ó¿Ú¹æ·¶£¬Ç°¶ËÖ»ÐèÒª¸ù¾Ý½Ó¿ÚÐÒé·â×°ºÃ±¨ÎľͿÉÒÔÁË£¬JSON ¸ñʽµÄ½Ó¿ÚÐÒéΪ
{?????"apiId"?:?"ACQ002",?????"requestParams":?[?????????{?????????????"id":?23,?????????????"username":?"testUser"?????????}?????]?}?
ÔÚ Dubbo µÄ·º»¯µ÷ÓõÄʱºò£¬ÐèÒª·½·¨Ãû¡¢²ÎÊýÀàÐÍÒÔ¼°¾ßÌåµÄÖµ Object result = genericService.$invoke("·½·¨Ãû", new Object []{"²ÎÊýÀàÐÍ"}, new Object[]{"¾ßÌåÖµ"})£¬µ«ÊÇÔÚÇ°ºó¶ËµÄ½Ó¿ÚÐÒéÖв¢Ã»Óп´µ½²ÎÊýÀàÐÍ£¬ÆäÖ÷ÒªÔÒòÊÇΪÁË°²È«£¬ÔÚ½Ó¿ÚÅäÖùý³ÌÖлá°Ñ apiId ¶ÔÓ¦µÄ·½·¨Ãû³Æ¡¢²ÎÊýÀàÐÍдÈëÊý¾Ý¿â£¬Íø¹ØÆô¶¯ºóÕâЩÅäÖö¼»á¼ÓÔص½±¾µØ»º´æ£¬ÔËÐйý³ÌÖпÉͨ¹ý ACQ002 ÕÒµ½¾ßÌåµÄÅäÖÃÐÅÏ¢£¬²¢Íê³É·º»¯µ÷Óá£
ËùÒÔ£¬ÕâÀï×ö¸ö×ܽ᣺
µ±´Óµ¥ÌåÓ¦ÓÃת±äµ½Î¢·þÎñ¼Ü¹¹µÄʱºò£¬²âÊԵķ½Ê½Ò²ÔÚÂýÂý¸Ä±ä£¬ÔÚµ¥ÌåÓ¦ÓÃʱºò¸ü¹Ø×¢µ¥Ôª²âÊÔ£¬Ìᳫµ¥Ôª²âÊÔ´úÂ븲¸ÇÂÊ¡£µ±ÔÚ΢·þÎñ³õÆڽ׶ÎÖ»Óв¿·Ö·þÎñ£¬´Ëʱ API ²âÊÔÕ¼±È·Ç³£´ó£¬»á´Ó API ×îÖÕÊä³öµÄ½á¹ûÉÏÀ´·ÖÎö½Ó¿ÚÊÇ·ñÕýÈ·£¬ÒòΪµ¥Ôª²âÊÔÒѾ±£Ö¤²»Á˽ӿڵÄÕýÈ·ÐÔ£¬ÕæÕýÔÚ΢·þÎñ½×¶Î»áÒýÈëÆõÔ¼²âÊÔ£¬À´¼ÓËÙ¼¯³É²âÊÔ£¬ÒòΪÒÀÀµµÄ·þÎñ¹ý¶à£¬·þÎñÖ®¼äе÷»á±ä¶¯Ï൱Âé·³¡£
µ±ÎÒÃÇÔÚ̸·þÎñµÄ¸ß¿ÉÓÃÐÔµÄʱºò£¬Ò»°ã»á´ÓÁ÷Á¿Èë¿Ú·ÖÁ÷²ßÂÔ¡¢ÏÂÓηþÎñµ÷Óá¢Ó¦Óýø³Ì¡¢ÏûÏ¢·þÎñ¡¢Êý¾Ý»º´æ¡¢Êý¾Ý´æ´¢ÒÔ¼°ÏµÍ³ÔËά²ßÂÔµÈ 7 ¸öά¶È×ÛºÏÀ´¿¼ÂÇ¡£ÕâÆäÖÐÉæ¼°µ½¿ª·¢¡¢²âÊÔ¡¢ÔËάµÈ¶àÖÖ½ÇÉ«¡£ÓÈÆäÊÇÕë¶Ô²âÊÔÈËÔ±¶øÑÔ£¬ÕâЩ±£ÕÏϵͳ¸ß¿ÉÓõĴëÊ©ÄÜ·ñ²âÊÔÈ«Ã棿ÒÔÈ۶ϲâÊԺͽµ¼¶²âÊÔ¾ÙÀý£º
È۶ϲâÊÔ£º ´Ó·þÎñµÄÐÔÄܽǶȣ¬µ±ÏµÍ³¸ºÔشﵽij¸öÈÛ¶Ï״̬µÄʱºò£¬·þÎñÊÇ·ñÄÜÕýÈ·È۶ϣ»Í¬Ê±£¬´Ó¹¦ÄܽǶÈÑéÖ¤È۶ϺóϵͳµÄÐÐΪÊÇ·ñ¸úÔ¤ÆÚÏà·û£»
½µ¼¶²âÊÔ£º ´ÓÒµÎñµÄÎȶ¨ÐԽǶȣ¬ÒªÄÜÇø·Ö³öºËÐÄÒµÎñºÍ·ÇºËÐÄÒµÎñ£¬ÔÚÐèÒª½µ¼¶µÄʱºò²»ÄÜÓ°ÏìºËÐÄÒµÎñ£»µ±Ä³¸ö·þÎñ½µ¼¶ºó£¬´Ó¹¦ÄܽǶÈÑé֤ϵͳÐÐΪÊÇ·ñ¸úÔ¤ÆÚÏà·û¡£
ËäÈ»È۶ϡ¢½µ¼¶Ôڼܹ¹Éè¼Æ½×¶Î¾Í¹æ»®µ½ÏµÍ³ÖУ¬µ«ÊÇÕâÖÖÒµÎñ³¡¾°ÔÚ²âÊԽ׶ÎÈçºÎÈ¥ÑéÖ¤ÄØ£¿
ÀýÈçµ±²âÊÔ¹¤³ÌʦÔÚÕë¶Ô API ½Ó¿Ú²âÊÔµÄʱºò£¬¸Ã½Ó¿ÚÒÀÀµ X ºÍ Y Õâ 2 ¸ö·þÎñ£¬²âÊÔ¹ý³ÌÖÐËùÒÀÀµµÄÈκÎÒ»¸ö·þÎñ³öÏÖÒì³£¾Í»áµ¼Ö½ӿڲâÊÔʧ°Ü£¬Èç¹û Service-A ÒÀÀµ Service-B£¬Service-C£¬Service-X£¬Service-Y£¬ÄÇô´ËʱÐÞ¸ÄÁË Service-X Ö®ºóÆäËû·þÎñÊÇ·ñÓÐÓ°Ï죬ÕâЩÔÚ²âÊԽ׶ζ¼Ã»Óа취ȥÑéÖ¤£¬ÓÉÓںܶ಻ȷ¶¨ÒòËص¼ÖÂ΢·þÎñ²âÊÔ½á¹û´æÔںܶ಻ȷ¶¨ÐÔ£¬ÕâÖÖÇé¿öÏ¿ÉÒÔÑз¢ÆõÔ¼²âÊÔƽ̨£¬Í¨¹ý×Ô¶¨ÒåµÄ±¨ÎÄÀ´½â¾ö¶à¼¶ÒÀÀµµÄÎÊÌâ¡£
ÆõÔ¼²âÊÔ £¬ÓÖ³Æ֮ΪÏû·ÑÕßÇý¶¯µÄÆõÔ¼²âÊÔ (Consumer-Driven Contracts£¬¼ò³Æ CDC)£¬ÆõÔ¼²âÊÔ×ʼµÄ¸ÅÄîÓÉ Martin Fowler Ìá³ö£¬¸ù¾ÝÏû·ÑÕßÇý¶¯ÆõÔ¼£¬¿ÉÒÔ½«·þÎñ·ÖΪÏû·ÑÕ߶˺ÍÉú²úÕ߶ˣ¬¶øÏû·ÑÕßÇý¶¯µÄÆõÔ¼²âÊԵĺËÐÄ˼ÏëÔÚÓÚÊÇ´ÓÏû·ÑÕßÒµÎñʵÏֵĽǶȳö·¢£¬ÓÉÏû·ÑÕß×Ô¼ºÀ´¶¨ÒåÐèÒªµÄÊý¾Ý¸ñʽÒÔ¼°½»»¥Ï¸½Ú£¬²¢Çý¶¯Éú³ÉÒ»·ÝÆõÔ¼Îļþ¡£È»ºóÉú²úÕßÔò¸ù¾ÝÆõÔ¼ÎļþÀ´ÊµÏÖ×Ô¼ºµÄÂß¼£¬²¢ÔÚ³ÖÐø¼¯³É»·¾³ÖгÖÐøÑéÖ¤¡£ÆõÔ¼²âÊÔºËÐÄÔÔòÊÇÒÔÏû·ÑÕßÌá³ö½Ó¿ÚÆõÔ¼£¬½»ÓÉ·þÎñÌṩ·½ÊµÏÖ£¬²¢ÒÔ²âÊÔÓÃÀý¶ÔÆõÔ¼½á¹û½øÐÐÔ¼Êø£¬ËùÒÔ·þÎñÌṩ·½ÔÚÂú×ã²âÊÔÓÃÀýµÄÇé¿öÏ¿ÉÒÔ×ÔÐиü¸Ä½Ó¿Ú»ò¼Ü¹¹ÊµÏÖ¶ø²»Ó°ÏìÏû·ÑÕß¡£
ÒÔ Dubbo ¿ò¼ÜΪÀýÀ´¹¹½¨ÆõÔ¼²âÊÔ£¬Ê¹Óà Dubbo ×Ô¶¨Òå Filter ÖпÉÒÔ·½±ãµÄ»ñÈ¡µ½Ëùµ÷Ó÷½·¨µÄ½Ó¿ÚÃû³Æ¡¢·½·¨ÃûÒÔ¼°²ÎÊý£¬¿ÉÒÔ¸ù¾Ý½Ó¿ÚÃû³Æ + ·½·¨ÃûµÄ×éºÏÀ´¶¨Î»¡£ÀýÈ磺
public?class??ContractTestFilter??implements??Filter?{?public??Result??invoke(Invoker<?>?invoker,?Invocation?invocation)?throws?RpcException?{??????Result?result?=?null;?//?¶¨ÒåÒ»¸ö·µ»Ø¶ÔÏó?;??????String?interfaceName?=?invoker.getUrl().getPath();?//?»ñÈ¡½Ó¿Ú·þÎñÃû³Æ??????String?methodName?=?invocation.getMethodName();?//?»ñÈ¡½Ó¿Ú·½·¨Ãû³Æ?????Object[]?arguments?=?invocation.getArguments();?//?»ñÈ¡²ÎÊý¼¯ºÏ??String?resp?=?httpPost(url,?jsonObj.toString());?????????????responeJSON?=?JSONObject.parseObject(resp);?????????????Object?rst?=?null;?????????????//isPact=1?±íʾÆôÓÃÆõÔ¼²âÊÔ?????????????if?(responeJSON.getInteger("isPact")?==?1)?{?????????????????result?=?new?RpcResult();?//?¶¨Òå·µ»Ø½á¹û?????????????????((RpcResult)?result).setValue(rst);?????????????????((RpcResult)?result).setException(null);?????????????}?else?{?????????????????result?=?invoker.invoke(invocation);?//?µ÷ÓÃÕæʵ½Ó¿Ú?????????????????//?È»ºó°Ñ½Ó¿ÚÐÅÏ¢´æµ½ÆõÔ¼²âÊÔƽ̨?????????????????jsonObj.put("returnValue",?JSON.toJSON(result.getValue()));?????????????????httpPost(CONTRACT_TEST_SERVER?+?"/test/pactAdd.do",?jsonObj.toString());?????????????}?????????return?result;????????????????}?
ÆõÔ¼²âÊÔ×ÜÌåÁ÷³Ì˵Ã÷ÈçÏ£ºConsumer ¶ËÇëÇó Provider µÄ֮ǰ£¬»áÏÈÖ´ÐÐ ContractTestFilter £¬Ê¹Óà HTTPPost ·½Ê½ÊÇ·¢ËÍÒ»¸ö JSON Êý¾Ý¸ñʽµÄ post ÇëÇ󣬰üº¬ interfaceName¡¢methodName¡¢arguments ·¢Ë͵½ÆõÔ¼²âÊÔƽ̨£¬²âÊÔƽ̨¸ù¾Ý´«µÝ²ÎÊý×éºÏ³É²éѯÌõ¼þÀ´²éѯ¸Ã½Ó¿ÚÊÇ·ñÆôÓÃÁËÆõÔ¼²âÊÔ¡£Èç¹ûÆôÓÃÁËÆõÔ¼²âÊÔ£¬ÔòÖ±½Ó·µ»ØÉ趨µÄ·µ»ØÖµ£¬·ñÔò·µ»Ø false£¬Consumer ¸ù¾Ý·µ»ØµÄ½á¹ûÔÙÈ¥µ÷Óà Provider ËùÌṩµÄ·þÎñ£¬°Ñ¾ßÌå½á¹û·µ»Ø¸øµ÷Ó÷½£¬Í¬Ê±ÔÙ°Ñ·µ»Ø½á¹ûºÍÈë²Î·â×°³É JSON Êý¾Ý¸ñʽ·¢Ë͵½ÆõÔ¼²âÊÔƽ̨£¬Íê³É½Ó¿ÚÊý¾Ý²É¼¯¡£
Ëæ×Å×¢²áÓû§Á¿µÄÖð²½Ôö¶à£¬Æ½Ì¨ËùÌṩ¶àÔª»¯Çҷḻ¹¦ÄÜÒÔ¼°ÔËӪʹÓÃÁËÓÐЧµÄÓû§´¥´ï»úÖÆ£¬Óû§»îÔ¾¶ÈÉÏÉý·Ç³£¿ì£¬´Ëʱƽ̨µÄÎȶ¨ÐÔÔ½À´Ô½ÖØÒª¡£ËäÈ»ÎÒÃÇÔڼܹ¹²ãÃæ×öÁËÈ۶ϡ¢½µ¼¶¡¢¶à¼¶»º´æµÈ´ëÊ©£¬µ«ÊÇÔÚ¹ýÈ¥µÄÒ»¶Îʱ¼äÀﻹÊÇ·¢ÉúÁ˼¸´Î´óµÄÏßÉϹÊÕÏ£¬ÎÒÃÇÒ²Õë¶ÔÕâЩʹÊ×öÁËÏêϸµÄ¸´ÅÌ·ÖÎö£¬³öÏÖʹʵÄÔÒò°üÀ¨£º´ÅÅÌдÂú¡¢CPU ´òÂú¡¢·þÎñÏìÓ¦ÂýÉõÖÁ³¬Ê±¡¢Êý¾Ý¿âÏìÓ¦ÂýµÈµÈ£¬·ÖÎö¹ý³ÌÖз¢Ïּܹ¹ÖÐËäÈ»°üÀ¨ÁËÈ۶ϡ¢½µ¼¶µÈÊֶΣ¬µ«Êǵ±Ê¹ʷ¢ÉúµÄʱºòËƺõÕâЩ»úÖƶ¼Ã»ÓÐÉúЧ¡£±ÈÈç´ÅÅÌдÂú¡¢CPU ´òÂúµÈ¹ÊÕÏÔÚÉè¼Æ½×¶Î¸ù±¾Î´¿¼Âǵ½£¬·þÎñÏìÓ¦Âý»òÕß³¬Ê±Õâ¸öÏÖÏóÑз¢ËäÈ»¿ÉÒÔͨ¹ýÓ²±àÂëÔÚ¿ª·¢½×¶ÎÀ´Ä£Ä⣬µ«Êǵü´úÕýʽÌá²âºó£¬²âÊÔÊÇ·ñÐèÒª²âÊԼܹ¹ÖеÄÈ۶Ͻµ¼¶²ßÂÔÄØ£¿Èç¹ûÐèÒª²âÊÔÄÇËÀ´ÐÖú²âÊÔÄ£Äâ¸÷ÖÖÒì³£Çé¿ö£¿
ΪÁ˽â¾öÕâ¸öÄÑÌ⣬ÎÒÃDzο¼ÁË»¥ÁªÍø¹«Ë¾µÄͨÓ÷½·¨£¬Í¨¹ýÄ£Äâµ÷ÓÃÑÓ³Ù¡¢·þÎñ²»¿ÉÓᢻúÆ÷×ÊÔ´ÂúÔصȣ¬²é¿´·¢Éú¹ÊÕϵĽڵã»òʵÀýÊÇ·ñ±»×Ô¶¯¸ôÀë¡¢ÏÂÏߣ¬Á÷Á¿µ÷¶ÈÊÇ·ñÕýÈ·£¬Ô¤°¸ÊÇ·ñÓÐЧ£¬Í¬Ê±¹Û²ìϵͳÕûÌåµÄ QPS »ò RT ÊÇ·ñÊÜÓ°Ïì¡£ÔÚ´Ë»ù´¡ÉÏ¿ÉÒÔ»ºÂýÔö¼Ó¹ÊÕϽڵ㷶Χ£¬ÑéÖ¤ÉÏÓηþÎñÏÞÁ÷½µ¼¶¡¢È۶ϵÈÊÇ·ñÓÐЧ¡£Í¨¹ýÄ£Äâ¹ÊÕϽڵãÔö¼Óµ½ÇëÇó·þÎñ³¬Ê±£¬¹ÀËãϵͳÈÝ´íºìÏߣ¬ºâÁ¿ÏµÍ³ÈÝ´íÄÜÁ¦ÔÚÉú²ú»·¾³µÄ·Ö²¼Ê½ÏµÍ³ÖнøÐÐһЩÊÔÑ飬ÓÃÒÔ¿¼ÑéϵͳÔÚ¶¯µ´»·¾³ÏµĽ¡×³ÐÔ£¬´Ó¶øÔöÇ¿¶ÔϵͳÎȶ¨ÔËÐеÄÐÅÐÄ£¬³Æ֮Ϊ»ìã繤³Ì£¬ChaosBlade ÊÇ°¢Àï°Í°Í¿ªÔ´µÄÒ»¿î×ñÑ»ìã繤³ÌʵÑéÔÀí£¬Ìṩ·á¸»¹ÊÕϳ¡¾°ÊµÏÖ£¬°ïÖú·Ö²¼Ê½ÏµÍ³ÌáÉýÈÝ´íÐԺͿɻָ´ÐԵĻìã繤³Ì¹¤¾ß¡£
ÀýÈçÐèÒª×öÒ»´ÎÕë¶ÔÊý¾Ý¿âÂý SQL ¶ÔÒµÎñÓ°Ï췶ΧµÄÊÔÑ飬¿ÉÒÔ°´ÕÕÒÔÏ·½Ê½À´Ö´ÐУº
blade?create?mysql?delay?--time?1000?--database?demo?--table?user?--sqltype?select?--effect-percent?50?
µ±ÔÚ user-provider ËùÔÚ·þÎñÆ÷ÉÏÖ´ÐÐÃüÁîºó£¬¿Í»§¶ËÕý³£·¢Æðµ÷Ó㬴ËʱÊý¾Ý¿âÂý SQL Êý»áÔö¼Ó£¬Ïû·Ñ¶Ë³öÏÖµ÷Óó¬Ê±£¬»á´¥·¢Ïà¹Ø¸æ¾¯¡£
ÔÚµ¥ÌåÓ¦ÓÃÖв»¿ÉÄÜ·¢Ë͵ÄÒì³£ÔÚ·Ö²¼Ê½»·¾³Ï»á³ÉΪ³£Ì¬£¬³¬Ê±¡¢ÖØÊÔ¡¢·þÎñÒì³£ÕâЩ¶ÔÓÚ²âÊÔÈËÔ±À´Ëµ¶¼ÊÇÌôÕ½¡£Èκγ¡¾°ÔÚ²âÊÔ»·¾³²»Ñé֤ͨ¹ý¾Í»á±ä³ÉÏßÉÏÉú²úʹʣ¬×ÜÌåÀ´ËµÔÚ²âÊԽ׶ÎÐèҪעÒâÒÔÏÂÄÚÈÝ£º
»¥ÁªÍø×ö´ÙÏú»î¶¯ÊǷdz£Õý³£µÄÒ»¼þÊÂÇ飬µ±Ò»´Î»î¶¯¼´½«ÉÏÏßµÄʱºò£¬ÒµÎñϵͳÍùÍù»á±»Îʵ½Ò»Ð©×ÊÔ´µÄÎÊÌ⣬ÀýÈçÐèÒª¶àÉÙ·þÎñÆ÷£¬ÏÖÓлúÆ÷ÄÜ·ñÖ§³Åµ±Ç°µÄÒµÎñÔö³¤µÈ£¬¡°ÅÄÐظ¬¡±±£Ö¤µÄ·½Ê½»¹Óм¸¸öÈËÄÜÐÅ·þ£¿ÎÒÃÇÐèÒª¿Æѧ¶øÓÖÑϽ÷µÄÆÀ¹À£¬Í¨¹ýÆÀ¹À½á¹ûÀ´È·¶¨ÐèÒªµÄ×ÊÔ´ÊýÁ¿¡£ÔÚÈÝÁ¿ÆÀ¹À֮ǰÎÒÃÇÐèÒªÏÈÁ˽âÏÂÍøÕ¾·ÃÎÊÁ¿µÄ³£ÓúâÁ¿±ê×¼£º
ÀýÈ磺ÔËÓªÐèÒª×öÒ»´Î»î¶¯£¬Í¨¹ý¶ÌÐÅºÍ PUSH µÄ·½Ê½´¥´ïÓû§£¬ÍÆËÍÔ¼ 6500W Óû§Ô¤¼Æ 2 ¸öСʱÄÚÍÆËͽáÊø£¬¸ù¾ÝÕâÑùµÄ»î¶¯¹æÄ££¬Ïà¹Ø×ÊÔ´¹ÀËãÈçÏ£º
´íÎó¹ÀËãÈÝÁ¿¹ÀË㣺 ÍÆËÍÓû§Á¿ /(2 x 60 x 60)=9028
µ¥»úÕý³£ QPS=1000£¨Ë®Î» 60% ¼«ÏÞ£©=600
Òò´ËÐèÒª·þÎñÆ÷ 9028/600=15 ̨£¬¸ù¾Ý²âÊÔ´ó¸ÅÐèÒª 15 ̨»úÆ÷¡£
ÕýÈ·ÈÝÁ¿¹ÀË㣺 ÐèÒª¿¼ÂǶÌÐÅ¡¢PUSH µÄÀúʷת»¯Çé¿ö£¬²»Äܵ¥´¿¿´Óû§Êý£¬Í¨¹ýÀúÊ·Êý¾ÝÀ´¿´£¬¶ÌÐŵã»÷ÂÊÔÚ 10%£¬PUSH µã»÷ÂÊÔÚ 6%£¬ºÏ¼ÆÔ¼ 16% µÄµã»÷ÂÊ£¬Ò»°ã 2 ¸öСʱÄÚÊǸ߷åÆÚ£¬Ã¿¸öÓû§Ô¼µã»÷ 8-10 ¸öÒ³Ãæ¡£
µã»÷Óû§Êý£º6500w x 16%=1040W
2 Сʱ =2x60x60=7200s
QPS=1040W/7200=1444
µ¥»ú QPS=1000£¨Ë®Î» 60% ¼«ÏÞ£©=600
1444/600=2.4
Ô¤¹ÀÐèÒªÐÂÔö 2.4 ̨·þÎñÆ÷£¬Êµ¼ÊÉÏÐèÒªÊʵ±Ôö¼ÓһЩ»º³å£¬Í¨¹ý×ۺϼÆËãÔÙ¶îÍâÔö¼Ó 3 ̨·þÎñÆ÷¼´¿É¡£
´ÓÔ¤ÆÚ 15 ̨±ä³É×îÖÕµÄ 3 ̨£¬ÖмäÓÐÈç´Ë´óµÄ²î¾à£¬×îÖ÷ÒªµÄÔÒòÊÇûÓп¼ÂǶÌÐÅºÍ PUSH µÄת»¯ÂÊ£¬ÕâЩÔÚƽʱµÄÔËÓª¹ý³ÌÖÐÐèÒª»ýÀÛÊý¾Ý£¬Çв»¿ÉÅÄÄÔ´ü¸ø³öÊý×Ö£¬ÔÚÎÒÃǹÀËãÈÝÁ¿µÄʱºòÕâµãǧÍòҪעÒâ¡£
×ñÑ¡°Ë¹¹½¨£¬ËÔËά¡±ÕâÒ»ÀíÄ·þÎñÉÏÏßÖ»ÊÇÍê³ÉÁ˹¹½¨µÄ»·½Ú£¬¸üÖØÒªµÄÊÇÏßÉϵÄÔËάºÍ¼à¿Ø£¬ÐèÒªÌṩ·þÎñ״̬Éϱ¨µÄ»úÖÆ¡£¾ÙÀýÀ´Ëµ£¬µ±Ä³Ò»¸öʱ¿Ì A ½Ó¿ÚÏìÓ¦³¬Ê±£¬ÐèҪ׷×Ùµ½¾ßÌåʱ¿ÌϵͳµÄÕûÌ帺ÔØÇé¿öÒÔ¼° A ½Ó¿ÚµÄµ÷ÓÃÁ¿Ç÷ÊÆ£¬ÒÔ¼°·þÎñ A ½Ó¿ÚµÄÊý¾Ý¿â CPU Õ¼ÓÃÂÊ£¬Âý SQL Çé¿öµÈ¡£ËùÒÔ´Ó½â¾öÎÊÌâ½Ç¶ÈÀ´¿´£¬ÔÚ·þÎñ¼à¿ØÉÏÐèÒª¼à¿Ø QPS£¬´íÎó·µ»ØÊýµÈά¶È£¬Êý¾Ý¿â¼à¿ØÉÏÐèÒª¼à¿ØÁ¬½ÓÊý¡¢CPU Õ¼ÓÃÂÊ¡¢Âý SQL µÈµÈ¡£´ÓϵͳµÄÎȶ¨ÐÔÀ´¿´£¬ÔÚÏßÉϼà¿ØÐèÒªÕë¶Ô·þÎñ״̬¡¢Êý¾Ý¿â¡¢Ó²¼þµÈÐÅÏ¢¼à¿Ø¡£
·þÎñ¼à¿Ø£º
Êý¾Ý¿â¼à¿Ø£º
Ó²¼þ¼à¿Ø£º
ÁìȡרÊô 10ÔªÎÞÃż÷ȯ
˽Ïí×îР¼¼Êõ¸É»õ