Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
ÔÆ¼ÆËãʱ´ú£¬ÈçºÎ¿ìËٴ΢·þÎñ£¿
 
  2297  次浏览      30
 2018-11-12  
 
±à¼­ÍƼö:
±¾ÎÄÀ´×ÔÓÚinfoq£¬Èç½ñËæ×ÅÔÆ¼ÆËãÔ½·¢Á÷ÐУ¬ÈçºÎ³ä·ÖÀûÓÃÔÆ»·¾³ÌṩµÄ×Ô¶¯ÉìËõÄÜÁ¦£¬²¢ÓëÌØ¶¨Ôƹ©Ó¦ÉÌʵÏÖËÉÉ¢µÄñîºÏ£¬ÕâÒѳÉΪһ¸ö·Ç³£ÓÐȤµÄÌôÕ½¡£

½üÊ®ÄêÀ´£¬Spring ÒòÆäÌṩµÄÒÀÀµ×¢È빦Äܶø¹ãÊÜ Java ¿ª·¢Õߵ϶ӭ£¬ÒòÆä¿ÉÒÔ°ïÖú´ó¼Ò¿ª·¢³öËÉÉ¢ñîºÏµÄϵͳ¡£¼òµ¥À´Ëµ£¬Óû§Ö»ÐèҪרעÓÚ½Ó¿ÚËùÌṩµÄ³éÏ󣬼´¿É»ñµÃ¾ßÌåµÄʵÀý¡£Èç½ñËæ×ÅÔÆ¼ÆËãÔ½·¢Á÷ÐУ¬ÈçºÎ³ä·ÖÀûÓÃÔÆ»·¾³ÌṩµÄ×Ô¶¯ÉìËõÄÜÁ¦£¬²¢ÓëÌØ¶¨Ôƹ©Ó¦ÉÌʵÏÖËÉÉ¢µÄñîºÏ£¬ÕâÒѳÉΪһ¸ö·Ç³£ÓÐȤµÄÌôÕ½¡£¡°ÔÆÔ­Éú¡±Õâ¸ö¸ÅÄîÓ¦Ô˶øÉú¡£ÎÒÃÇÏÈÀ´¿´¿´¡°ÔÆÔ­Éú¡±ºÍ¡°Î¢·þÎñ¡±µ½µ×ÊÇʲô£¿

ÔÆÔ­ÉúºÍ΢·þÎñ

¡°ÔÆÔ­Éú¡±ÄãÁ˽âÂð£¿

ºÜ¶àÈËÈÏΪ£¬ÔÆÔ­Éú½ö½öÊÇÓÃÔÆÌṩÉ̵ķþÎñÀ´ÔËÐÐÄãµÄÏÖÓÐÓ¦Óã¿

´ð°¸²»ÊÇÕâô¼òµ¥¡£ÔÆÔ­Éú»áÈ«Ãæ¸Ä±äÓ¦ÓóÌÐòµÄÉè¼Æ¡¢ÊµÏÖ¡¢²¿ÊðºÍÔËά¹ý³Ì¡£

ÏÖÔڱȽÏÁ÷ÐеÄÔÆÔ­Éú¶¨ÒåÈçÏ£º

ÔÚ¿ª·¢ Spring ¿ò¼ÜºÍÔÆÆ½Ì¨µÄÈí¼þ¹«Ë¾ Pivotal ¿´À´£¬ÔÆÔ­ÉúµÄ¶¨ÒåÊÇ£º

ÔÆÔ­ÉúÊÇÒ»ÖÖ¹¹½¨ºÍÔËÐÐÓ¦ÓóÌÐòµÄ·½·¨£¬ÕâÖÖ·½·¨¿ÉÒÔÍêÈ«·¢»Ó³öÔÆ¼ÆËãÄ£Ð͵ÄÓÅÊÆ¡£

ÖÂÁ¦ÓÚ´´½¨ºÍÍÆ¶¯ÔÆÔ­Éú±à³Ì·¶Ê½µÄ×éÖ¯ CNCF (Cloud Native Computing Foundation)£¬¶ÔÔÆÔ­ÉúµÄ¶¨ÒåÊÇ£º

ÔÆÔ­Éú¼¼Êõ¿ÉÒÔ°ïÖúÆóҵͨ¹ý¹«ÓÐÔÆ¡¢Ë½ÓÐÔÆ¡¢»ìºÏÔÆµÈÏÖ´ú»¯µÄ¶¯Ì¬»·¾³¹¹½¨²¢ÔËÐпÉÉìËõµÄÓ¦Óá£ÀýÈ磺ÈÝÆ÷¡¢·þÎñÍø¸ñ£¨Service Mesh£©¡¢Î¢·þÎñ¡¢²»¿É±ä»ù´¡¼Ü¹¹£¨Immutable infrastructure£©ÒÔ¼°ÉùÃ÷ʽ API¡£

×ܽáһϣ¬ÔÆÔ­ÉúÓ¦ÓÃÄܳä·ÖÀûÓÃÔÆ¼ÆËãÄ£ÐÍ´øÀ´µÄ¸÷ÖÖÓÅÊÆ£¬ ¶øÎ¢·þÎñÊÇÆäÖеÄÒ»ÖÖʵÏÖÐÎʽ¡£ÏÂÃæµÄ¶¨Òå»á°ïÖúÄã¸üÇåÎúµØÀí½â£º

ÔÆÔ­ÉúÓ¦ÓÃÊÇרÃÅÃæÏòÔÆ¼ÆËã»·¾³Éè¼ÆµÄÓ¦Ó㬶ø·Ç¼òµ¥µÄÓ¦ÓÃÇ¨ÒÆÉÏÔÆ¡£

¡°Î¢·þÎñ¡±À´À²£¡

¡°Î¢·þÎñ¼Ü¹¹·ç¸ñÊÇÒ»ÖÖ½«µ¥¸öÓ¦ÓóÌÐò¿ª·¢³ÉÒ»Ì×СÐÍ·þÎñµÄ·½·¨£¬Ã¿¸öСÐÍ·þÎñ¶¼ÔÚ×Ô¼ºµÄ½ø³ÌÖÐÔËÐУ¬²¢Í¨¹ýÇáÁ¿¼¶»úÖÆ£¨Í¨³£Îª HTTP ×ÊÔ´ API£©Ï໥ͨÐÅ¡£ÕâЩ·þÎñÎ§ÈÆÒµÎñ¹¦Äܹ¹½¨£¬¿Éͨ¹ýÈ«×Ô¶¯²¿Êð»úÖÆ¶ÀÁ¢²¿Êð¡£´ËÍ⣬ÕâЩ·þÎñÖÁÉÙÓ¦¸ÃÄܼ¯ÖйÜÀí£¬¿ÉÒÔÓò»Í¬±à³ÌÓïÑÔ±àд£¬²¢¿ÉÒÔʹÓò»Í¬µÄÊý¾Ý´æ´¢¼¼Êõ¡£¡±

¡ª¡ªÖªÃûÈí¼þ¹¤³Ìʦ£¬Ãô½Ý¿ª·¢·½·¨´´Ê¼ÈËÖ®Ò»£¬Martin Fowler

Óɴ˿ɼû΢·þÎñÊÇÒ»ÖÖ¿ÉÒÔЭͬ¹¤×÷µÄСÐÍ¡¢×¨×¢¡¢×ÔÖεķþÎñ¡£

СÐÍ¡¢×¨×¢ÌåÏÖÁË΢·þÎñµÄµ¥Ò»Ö°Ôð£¨Single Responsibility£©¡£Ò»¸ö·þÎñÖ»ÐèÒª½«Ò»¼þÊÂ×öºÃ¾Í¹»ÁË¡£×ÔÖÎÔòÒâζ×ÅÈÝ´íÄÜÁ¦£¬Ã¿¸ö·þÎñ¿ÉÒԱ˴˶ÀÁ¢µØÑÝ»¯ºÍ²¿Êð¡£

΢·þÎñ¾ÍÆä±¾ÖÊÀ´ËµÓëÔÆ¼ÆËãÆ½Ì¨µÄ¹ØÁª¼«ÎªÃÜÇУ¬µ«Î¢·þÎñÕâ¸ö¸ÅÄî±¾Éí²¢²»ÊÇÐÂÊÂÎï¡£Õâ¸ö¸ÅÄî¶àÄêǰ¾Í³öÏÖÁË¡£

΢·þÎñµÄ¸ÅÄîËäÈ»³öÏÖÒѾ㬵«²¢Î´ÕæÕýÁ÷ÐС£Ö÷ÒªÊÇÒòΪ´«Í³µÄ±¾µØ»¯²¿Êðʹ΢·þÎñµÄÂ䵨Ï൱À§ÄÑ¡£¶øÔƼÆËãµÄ³öÏÖÌṩÁ˸üºÃµÄÀ©Õ¹ÐÔ¡¢¿É¿¿ÐԺͿÉά»¤ÐÔ£¬ËùÒÔ»ùÓÚÔÆ¼ÆËãµÄ΢·þÎñʵÏÖºÍά»¤¸ü¼Ó±ãÀû£¬Ò²¾ÍÁ÷ÐÐÆðÀ´¡£Ä¿Ç°ÎÒÃÇ¿ÉÒÔ´Ó΢·þÎñÀï»ñµÃÊÕÒæ°üÀ¨µ«²»ÏÞÓÚÕâЩ£º

µ¯ÐÔ£ºÒ»¸ö×é¼þ³öÏÖÎÊÌâ²»»áÍÏÀÛÕû¸öϵͳ£¬Õâͨ³£ÊÇͨ¹ýÇåÎú¶¨ÒåµÄ·þÎñ±ß½çʵÏֵġ£

¿ÉÉìËõÐÔ£ºÈç¹ûÖ»ÓÐÒ»¸ö×é¼þµÄÐÔÄÜ´ïµ½ÉÏÏÞ£¬¿Éµ¥¶À½øÐÐÀ©ÈÝ£¬¶øÎÞÐè¶ÔÕû¸öϵͳ½øÐÐÀ©ÈÝ¡£

Ò×ÓÚ²¿Ê𣺿ÉÖ»¸Ä¶¯Ò»¸ö·þÎñ£¬½ø¶ø¼Ó¿ì·¢²¼ÖÜÆÚ²¢¼ò»¯ÅÅ´í¹ý³Ì¡£

¿É×éºÏÐÔ£ºÃ¿¸ö·þÎñÖ»×öÒ»¼þÊ£¬Òò´Ë¿ÉÒÔÏñ Unix ¹ÜµÀÄÇÑùÇáËÉʵÏÖ·þÎñµÄ¸´Óá£

¿ÉÌæ»»ÐÔ£ºÃ¿¸öСÐ͵ķþÎñ¶¼¿ÉÒÔ¸üÈÝÒ×µØÊ¹ÓøüºÃµÄʵÏÖ»ò¼¼ÊõÀ´Ìæ»»¡£

Spring Cloud

΢·þÎñÓкܶàÓŵ㣬µ«Êǹ¹½¨Î¢·þÎñµÄ¹ý³ÌÒÀÈ»Ï൱¸´ÔÓ¡£ÎªÁËʹ΢·þÎñ¼Ü¹¹ÇáËÉʵÏÖ£¬Òµ½ç¶¨ÒåÁËһЩͨÓõÄģʽ¡£±È½ÏÖªÃûµÄÓУ¬¼¯Öл¯µÄÖÐÐÄ»¯ÅäÖùÜÀí¡¢·þÎñ×¢²áºÍ·¢ÏÖ¡¢Òì²½ÏûÏ¢Çý¶¯ÒÔ¼°·Ö²¼Ê½×·×Ù¡£Spring Cloud ½«ÕâЩ΢·þÎñ¼Ü¹¹Ä£Ê½Èںϵ½¾ßÌåʵ¼ùÖУ¬°ïÖúÎÒÃǸüºÃµØ×ñÑ­ÔÆÔ­Éú×î¼Ñʵ¼ù¡£ÈçÏÂͼ£º

Spring Cloud ¶ÀÌØµÄ¼ÛÖµÖ÷ÒªÌåÏÖÔÚÕ⼸·½Ã棺

Ϊ³£ÓÃģʽ¶¨ÒåÁËͨÓóéÏó¡£ÕâÒ²ÊÇ Spring ½âñîÕÜѧµÄÁíÒ»¸ö¾«²ÊÓ¦ÓãºÃ¿ÖÖģʽ²¢²»Óë¾ßÌåµÄʵÏÖ½ôÃÜñîºÏ¡£ÒÔ Config Server ΪÀý£¬ÎÒÃÇ¿ÉÒÔÔÚ²»Ó°ÏìÆäËû·þÎñµÄǰÌáÏÂËæÒâ¸ü¸ÄÅäÖÃËùÓõĺó¶Ë´æ´¢¡£Discovery ºÍ Stream Ò²²ÉÓÃÁËÀàËÆ·½Ê½¡£

Ä£¿é»¯×é¼þ¡£ºÜ¶àÈ˵ÚÒ»Ó¡ÏóÈÏΪ Spring Cloud ÊÇÒ»ÖÖÖØÁ¿¼¶µÄÈ«¼ÒͰʽµÄ½â¾ö·½°¸¡£µ«Êµ¼ÊÉÏ£¬Õâ²¢²»ÊÇÒ»ÖÖÈ«ÓлòÈ«Î޵Ľâ¾ö·½°¸£¬ÎÒÃÇ¿ÉÒÔֻѡÔñÒ»¸öÄ£¿é²¢½«¸ÃÄ£¿éÓÃ×÷Ò»¸ö΢·þÎñ£¬ÆäËû·þÎñÒÀÈ»¿ÉÒÔÁé»îÑ¡ÔñÆäËûÈκοò¼Ü¡£Õâ¾ÍÏñÀָ߻ýľ£¬ÎÒÃÇÖ»ÐèҪѡÔñ×Ô¼ºÐèÒªµÄÄ£¿é£¬²¢È·±£½Ó¿Ú¼æÈݾÍÐÐÁË¡£

ÄÇô Spring Cloud µÄÄ£¿éÊÇÈçºÎÈÚÈë΢·þÎñģʽµÄ£¿

Spring Cloud Config£º¼¯Öл¯ÅäÖùÜÀí

ΪÂú×ãStore config in environment£¨´æ´¢ÅäÖÃÓÚ»·¾³ÖУ©ÒÔ¼°Î¢·þÎñ¼Ü¹¹µÄÒªÇó£¬ÎÒÃÇÐèÒª½«ËùÓзþÎñµÄÅäÖô洢ÔÚÒ»¸ö¼¯ÖеÄλÖᣴËÍ⻹ÐèÒª¾ß±¸ÏÂÁй¦ÄÜ£º

Ö§³Ö¿ª·¢¡¢²âÊÔ¡¢Éú²úµÈ¶àÖÖ»·¾³¡£ÕâÑù¾Í¿ÉÒÔΪËùÓл·¾³Ìṩͬһ¸öÈí¼þ°ü£¬ÅäÖôӻ·¾³ÖлñÈ¡¡£

ÒÔ͸Ã÷µÄ·½Ê½ÒýÈëÅäÖá£ÅäÖÿÉÒÔÎÞÐè±àд´úÂë×Ô¶¯»ñÈ¡¡£

ÊôÐԱ仯ºó×Ô¶¯Ë¢Ð¡£·þÎñÓ¦¸ÃÄÜ»ñµÃ±ä»¯µÄ֪ͨ²¢ÖØÐÂÔØÈëеÄÊôÐÔ¡£

ά³Ö±ä¸üÀúÊ·²¢ÄÜÇáËÉ»ØÍËÖÁÀϰ汾¡£ÕâÊÇÒ»¸öºÜʵÓõŦÄÜ£¬¿ÉÒÔ°ïÎÒÃdz·ÏúÉú²ú»·¾³ÖдíÎóµÄ¸Ä¶¯¡£

Spring Cloud Config ͨ¹ýÁ½¸ö¼òµ¥µÄ×¢½âÀ´Ö§³ÖÕâЩ¹¦ÄÜ¡£ÎÒÃÇÖ»ÐèÒªÔÚ Config Server ÖÐ×¢½â @EnableConfigServer£¬²¢ÔÚÆäËû·þÎñÖаüº¬ Starter ¼´¿ÉÆôÓÿͻ§¶Ë¡£ÏêÇé¿É²ÎÔÄ Spring Cloud Config Îĵµ

Spring Cloud Discovery£º·þÎñ·¢ÏÖ

·þÎñ·¢ÏÖÊǴ󲿷ֲַ¼Ê½ÏµÍ³ºÍÃæÏò·þÎñµÄ¼Ü¹¹ÖÐÒ»¸öÖØÒªµÄ×é¼þ¡£Õâ¸öÎÊÌâ¿´ÆðÀ´ºÜ¼òµ¥£º¿Í»§¶ËÈçºÎÈ·¶¨ÔËÐÐÓÚ¶à¸öÖ÷»úÉϵķþÎñËùʹÓÃµÄ IP ºÍ¶Ë¿Ú¡£µ«Ëæ×ÅÔÚÔÆ»·¾³Öв¿ÊðµÄ·þÎñÔ½À´Ô½¶à£¬ÎÊÌ⿪ʼ±äµÃ¸´ÔÓÁË¡£

È·¶¨·þÎñλÖ㬰üº¬Á½²¿·Ö£º

·þÎñ×¢²á£ºÖ¸·þÎñÔÚÖÐÑë×¢²á±íÖÐ×¢²á×Ô¼ºÎ»ÖõĹý³Ì£¬´Ëʱͨ³£ÐèҪע²áÖ÷»úºÍ¶Ë¿ÚºÅ£¬ÓÐʱºò»¹ÐèҪע²áÉí·ÝÑé֤ƾ¾Ý¡¢Ð­Òé¡¢°æ±¾ºÅºÍ / »ò»·¾³Ï¸½Ú¡£

·þÎñ·¢ÏÖ£ºÖ¸¿Í»§¶ËÓ¦ÓÃͨ¹ý²éѯÖÐÑë×¢²á±íÈ·¶¨·þÎñλÖõĹý³Ì¡£

ÄÇôÓÖ¸ÃÈçºÎÑ¡Ôñ·þÎñ·¢ÏÖ½â¾ö·½°¸£¿´ËʱÓкܶàÒòËØÐèÒª¿¼ÂÇ£º

¼à¿Ø£ºÈç¹ûÒÑ×¢²áµÄ·þÎñʧ°ÜÁËÈ»ºó»áÔõÑù£¿ÓÐʱ»áÁ¢¼´³·Ïú×¢²á£¬»òÕß³¬Ê±ºó³·Ïú×¢²á£¬»òÕß±»ÆäËû½ø³Ì³·Ïú×¢²á¡£Òò´Ëͨ³£ÐèҪΪ·þÎñʵÏÖÐÄÌø¼ì²â»úÖÆÀ´È·±£·þÎñʼÖÕÔÚÏߣ¬²¢È·±£¿Í»§¶Ëͨ³£¿ÉÒÔÕýÈ·¡¢¿É¿¿µØ´¦Àí·þÎñʧ°Ü¡£

¸ºÔؾùºâ£ºÈç¹ûÒ»¸ö·þÎñ×¢²áÁ˶à¸ö½Úµã£¬¿Í»§¶Ë¸ÃÈçºÎʵÏÖ¸ºÔؾùºâ£¿Èç¹û´æÔÚÖ÷£¨Master£©·þÎñ£¬¿Í»§¶Ë¿ÉÒÔÕýȷʶ±ðÂð£¿

¼¯³É·½Ê½£º×¢²á±íÊÇ·ñÖ»ÌṩÁËÓëÉÙÊýÓïÑԵİ󶨣¨ÀýÈç½ö Java£©£¿¼¯³É¹ý³ÌÊÇ·ñÐèÒªÔÚÓ¦ÓóÌÐòÖÐǶÈëʵÏÖ×¢²áºÍ·¢ÏֵĴúÂ룿»¹ÊÇÐèÒªÌá¹©ÊØ»¤½ø³Ì£¿

¿ÉÓÃÐÔÎÊÌ⣺ʧȥһ¸ö½ÚµãºóÊÇ·ñÒÀÈ»¿ÉÒÔÕý³£ÔËÐУ¿ÊÇ·ñ¿ÉÒÔÔÚ²»Ôì³ÉÖжϵÄǰÌáÏÂÉý¼¶£¿×¢²á±íÊÇÕû¸ö¼Ü¹¹µÄºËÐÄ£¬ÕâÊÇ·ñ»áµ¼Öµ¥µã¹ÊÕÏ£¿

Spring Cloud Ϊע²áºÍ·¢ÏÖÌṩÁËͨÓõijéÏó£¬ÎÒÃÇÖ»ÐèҪʹÓà @EnableDiscoveryClient£¬ÏàÓ¦µÄ¿Í»§¶Ë»á×Ô¶¯°ó¶¨¡£Spring Cloud Discovery Eureka ºÍ Spring Cloud Discovery Zookeeper ÌṩÁË·þÎñ·¢ÏֵľßÌåʵÏÖ¡£ÎÒÃÇÐèÒª¸ù¾Ý¾ßÌåµØÒµÎñ³¡¾°Ñ¡Ôñ²»Í¬µÄʵÏÖ£¬ÏêÇé¿É²ÎÔÄ Spring cloud Discovery Îĵµ¡£

Spring Cloud Stream£ºÏûÏ¢Çý¶¯µÄ¼Ü¹¹

¼ÈÈ»ÎÒÃÇÓÐÁËÖÚ¶àµÄ΢·þÎñ£¬ÄÇôËüÃǿ϶¨ÐèÒª»¥ÏàͨÐÅ¡£´«Í³µÄͬ²½µ÷ÓÃÏÔÈ»²»ÄÜÂú×ã΢·þÎñ¶à±äµÄ¸´ÔÓ»·¾³£¬ËùÒÔÒì²½µÄÏûÏ¢Çý¶¯ÊDZØÈ»Ç÷ÊÆ¡£Æäʵ£¬Ò»ÇÐÇëÇ󶼿ÉÒÔÊÓ×÷ÊÇÏûÏ¢£¬Òò´ËÒ²¾Íµ®ÉúÁËʹÓò»Í¬¸ñʽºÍ API µÄÏûÏ¢Öмä¼þ¡£ÈÃÕâЩÏûÏ¢Öмä¼þÏ໥ͨÐÅÎÞÒìÓÚÒ»³¡Ø¬ÃΡ£½â¾öÕâ¸öÎÊÌâÆäʵºÜ¼òµ¥£¬Ö»ÐèÒª¶¨ÒåͳһµÄÏûÏ¢½Ó¿Ú£¬ËæºóΪÿ¸öÖмä¼þÌṩÊÊÅäÆ÷£¬ÈÃËüÃÇÖªµÀÈçºÎÔÚ×Ô¼ºµÄÏûÏ¢ºÍ±ê×¼¸ñʽ֮¼ä½øÐÐת»»¾ÍÐÐÁË¡£Õâ¾ÍÊÇ Spring Integration µÄºËÐÄÉè¼ÆÀíÄî¡£

Spring Integration µÄÄ¿±êÖ÷ÒªÔÚÓÚ£º

Ϊ¸´ÔӵįóÒµ¼¶¼¯³É·½°¸ÌṩһÖÖ¸ü¼òµ¥µÄÄ£ÐÍ¡£

ÍÆÐÐÒì²½µÄÏûÏ¢Çý¶¯ÐÐΪ¡£

´Ù½øÏÖÓÐ Spring Óû§½¥½øµØ²ÉÓÃÕâÒ»¼¼Êõ¡£

ͬʱ Spring Integration µÄÉè¼ÆÖ÷Òª×ñÑ­ÁËÏÂÁÐÔ­Ôò£º

ΪÁËÌá¸ßÄ£¿é»¯³Ì¶ÈºÍ¿É²âÊÔÐÔ£¬×é¼þ±ØÐëËÉÉ¢ñîºÏ¡£

¿ò¼ÜÓ¦ÔÚÒµÎñÂß¼­ºÍ¼¯³ÉÂß¼­Ö®¼äÇ¿ÖÆÊµÊ©¹Ø×¢µã¸ôÀ루Separation of concerns£©¡£

À©Õ¹µãÊdzéÏóµÄ£¬²¢ÇÒÓкÏÀíµØ±ß½ç£¬ÒÔ´ËÀ´´Ù½ø¸´ÓúͿÉÒÆÖ²ÄÜÁ¦¡£

ÏêÇé¿É²ÎÔÄ Spring Integration Îĵµ ¡£

²»¹ýĿǰ Spring Integration ÒÀȻרעÓڵײ㣬²¢°üº¬ºÜ¶à»ÞɬÄѶ®µÄÊõÓï¡£ËùÒÔÕâÖÖ±à³ÌÄ£ÐͲ»ÏñÆäËû Spring ¼¼ÊõÄÇôÒ×Óã¬ÓÚÊÇÓÖµ®ÉúÁË Spring Cloud Stream¡£Spring Cloud Stream »ùÓÚ±ê×¼ÏûÏ¢¸ñʽºÍ Spring integration ÌṩµÄ¶àÖÖÊÊÅäÆ÷£¬¿ÉÒÔ¹¤×÷Ôڸ߲ã³éÏóÖУ¬½è´ËÒÔ¸ü¼òµ¥µÄ·½Ê½²úÉú¡¢´¦ÀíºÍʹÓÃÏûÏ¢¡£ËüÒ²ÀàËÆÓÚ Unix ¹ÜµÀ£¬ÎÒÃÇÖ»ÐèÒª¹Ø×¢ÈçºÎ´¦ÀíÏûÏ¢£¬ÏûÏ¢½«°´ÕÕÎÒÃǵÄÔ¤ÆÚÀ´Ö®£¬È¥Ö®¡£ÏêÇé¿É²ÎÔÄ Spring Cloud Stream Îĵµ ¡£

Spring Cloud Sleuth & Zipkin£º·Ö²¼Ê½×·×Ù

ÔÚ΢·þÎñ¼Ü¹¹Ï£¬ÓÉÓÚ·þÎñ½øÐÐÁ˲ð·Ö£¬Ò»¸öÇëÇóºÜ¿ÉÄÜÉæ¼°¶à¸ö·þÎñ£¬ÕâЩ·þÎñ¿ÉÄܲ¿ÊðÔÚ²»Í¬µÄ»úÆ÷Ö®ÉÏ¡£¾¡¹ÜºÜ¶à½â¾ö·½°¸¶¼ÊµÏÖÁ˼¯ÖеÄÈÕÖ¾´æ´¢ºÍ²éѯ£¬µ«ÊÇÈç¹ûÓöµ½µ÷ÓÃʧ°Ü£¬Ïë¿ìËÙ¶¨Î»ÎÊÌâÈÔÈ»·Ç³£À§ÄÑ¡£Ò»°ãµÄ×ö·¨ÊǶà´Î·´¸´ÔÚÈÕÖ¾ÖвéѯÏà¹ØµÄ¹Ø¼ü×ÖÀ´Ñ°ÕÒÏßË÷¡£ÕâÖÖ·½·¨·Ñʱ·ÑÁ¦£¬¶øÇÒÈÝÒ׳ö´í¡£Êµ¼ÊÉÏ£¬ÎÒÃÇÐèÒªµÄÊÇÒ»¸ö¿ÉÒÔ°ïÖúÎÒÃÇÕûºÏÒ»´Îµ÷ÓÃÁ´µÄËùÓÐÏà¹ØÐÅÏ¢µÄϵͳ¡£

Spring Cloud Sleuth ͨ¹ýÒýÈë Span ºÍ Trace µÄ¸ÅÄîÀ´ÊµÏÖÕâÖ־ۺϡ£Í¨Ë׵ؽ²£¬Ò»¸ö Span ¾ÍÊÇÒ»´Î·þÎñµÄµ÷Ó㬶ø Trace ¾ÍÊǰüº¬¶à¸ö Span µÄÊ÷Ðνṹ£¬±ÈÈçÒ»´Î·Ö²¼Ê½µ÷Óûá°üº¬¶à¸ö·þÎñµ÷Óá£Sleuth »á°ÑÏàÓ¦µÄ SpanId ºÍ TraceId ¼Ç¼ÔÚ¶ÔÓ¦µÄÈÕÖ¾ÖС£ÈçÏÂͼ£º

ʵ¼ÊÖУ¬»á±»¼Ç¼µÄ²Ù×÷°üÀ¨£º

MVC controller ÊÕµ½µÄ HTTP ÇëÇó

ͨ¹ý RestTemplate ·¢Ë͵ÄÇëÇó

ͨ¹ý Spring Cloud Stream Binder ·¢ËͺͽÓÊܵÄÇëÇó

ÆäËûÔÚ Spring Éú̬ϵͳÖеÄÇëÇóºÍ»Ø¸´

È»¶ø£¬ÓÐÁËÕâЩÐÅÏ¢»¹Ô¶Ô¶²»¹»£¬ÎÒÃÇ»¹ÐèÒª°ÑÕâЩÐÅÏ¢ÕûºÏ£¬´¦Àí£¬²¢ÒÔ¼òµ¥Ö±¹ÛµÄ·½Ê½Õ¹ÏÖ³öÀ´¡£Õâ¾ÍÊÇ Zipkin ·¢»Ó×÷Óõĵط½¡£ËüÌṩµÄ´æ´¢Ä£¿éºÍ UI ½çÃæ¿ÉÒÔ°ïÖúÎÒÃÇÀí½âÕû¸öµ÷ÓÃÁ´¡£ÈçÏÂͼËùʾ¡£

Spring Cloud Azure

Spring Cloud ËäÈ»¶ÔͨÓõÄģʽÌṩÁ˺ܺõÄʵÏÖ£¬µ«Èç¹ûÏëÔÚʵ¼ÊµÄÔÆ·þÎñÉÏÃæÊ¹Óû¹ÓÐÒ»¶¨µÄ¾àÀë¡£ËùÒÔ£¬Spring Cloud Azure ×ñÑ­ÁË Spring Cloud ÌṩµÄ×î¼Ñʵ¼ùºÍͨÓóéÏ󣬲¢ÔÚ´Ë»ù´¡Éϸü½øÒ»²½ÌṩÁË×Ô¶¯»¯µÄ×ÊÔ´ÅäÖúÍ×Ô¶¯ÅäÖà Azure ·þÎñÏà¹ØÊôÐÔµÄÄÜÁ¦¡£½è´ËÓû§Ö»ÐèÒª´Ó½Ï¸ß²ãÃæÁ˽â Azure ·þÎñ¼´¿É˳ÀûʹÓ㬶øÎÞÐèÉæ¼°ÓйØÅäÖÃºÍ SDK API µÄµ×²ãϸ½Ú¡£ÒÔ Azure EventHub ΪÀý£¬ÎÒÃÇÖ»ÐèÒªÖªµÀÕâÊÇÒ»ÖÖÔÚÉè¼ÆÉÏÓë Kafka ÀàËÆµÄÏûÏ¢·þÎñ£¬Ëæºó¼´¿ÉʹÓà Azure EventHub µÄ Spring Cloud Stream Binder Éú³É²¢Ê¹ÓÃÏûÏ¢¡£

Spring Cloud Azure µÄÉè¼ÆÀíÄîÖ÷Òª°üÀ¨£º

¼ò»¯ Spring Cloud Óë Azure µÄ¼¯³É¡£Óû§ÎÞÐèÐÞ¸ÄÏÖÓдúÂë¼´¿ÉÇáËÉʹÓà Azure ·þÎñ£¬²¢ÇÒÖ»ÐèÒªÌṩ×îÉÙµÄÒÀÀµºÍÅäÖá£

¼«¼òÅäÖá£Îª´Ë¿ÉÒÔ³ä·ÖÀûÓà Spring boot auto config£¬¸ù¾Ý Azure ×ÊÔ´¹ÜÀíÆ÷ API Ô¤ÅäÖÃĬÈÏÊôÐÔÖµ£¬µ«Óû§Ò²¿ÉÒÔÓÃ×Ô¼ºµÄÅäÖø²¸ÇĬÈÏÖµ¡£

×Ô¶¯¹ÜÀí×ÊÔ´¡£Èç¹û×ÊÔ´²»´æÔÚ£¬½«ÄÜÔÚÓû§Ö¸¶¨µÄ¶©ÔĺÍ×ÊÔ´×éÖÐ×Ô¶¯´´½¨ËùÐè×ÊÔ´¡£

ÓëÔÆ¹©Ó¦É̽âñî¡£Óû§¿ÉÒÔÇáËɵØÊ¹Óà Azure ·þÎñÒÔ¼° Spring Cloud ÌṩµÄ±ãÀûÐÔ£¬ÎÞÐèÊÜÖÆÓÚij¸öÌØ¶¨µÄÔÆ¹©Ó¦ÉÌ¡£

Azure ×ÊÔ´¹ÜÀíÆ÷£º×Ô¶¯ÅäÖúÍ×ÊÔ´¹ÜÀí

ÅäÖã¬Õâ¿ÉÄÜÊÇ¿ª·¢Õß×î²»Ô¸×öµÄ¹¤×÷Ö®Ò»¡£ÅäÖÃÿ¸öÊôÐÔǰ£¬¿ª·¢Õß±ØÐëÍêÕûÔĶÁÏà¹ØÎĵµ²¢È«ÃæÁ˽âÿ¸öÊôÐԵĺ¬Òå£¬ËæºóСÐĽ÷É÷µØ´ÓÒ»¸öλÖø´ÖÆÃ¿¸öÊôÐÔ£¬È»ºóÕ³Ìùµ½Ó¦ÓõÄÊôÐÔÎļþÖС£È»¶øÂé·³»¹Ã»Í꣬ËûÃÇ»¹ÐèҪΪÿ¸öÊôÐÔÌṩ±ØÒªµÄ±¸×¢£¬ÒÔ±ãÈÃÆäËû¿ª·¢ÕßÃ÷°×ÔÚÿÖÖ³¡¾°ÏÂÐèÒª¸ü¸ÄÄĸöÊôÐÔ£¬²¢ÇÒÔõÑù×ö²Å²»»á³ö´í¡£ÎÒÃÇÏëÒª½â¾öÕâ¸öÍ´µã£¬Òò´Ë»ùÓÚ Spring boot ÌṩÁË×Ô¶¯ÅäÖù¦ÄÜ¡£

¾ÙÀýÀ´Ëµ£¬Èç¹ûÏëʹÓà Azure EventHub£¬´Ëʱ²¢²»ÐèÒªÁ˽âÁ¬½Ó×Ö·û´®ÊÇʲô£¬Ö»ÐèÊäÈë EventHub µÄÃû³Æ¿Õ¼ä£¨ÀàËÆÓÚ Kafka µÄ¼¯ÈºÃû³Æ£©ºÍ EventHub Ãû³Æ£¨ÀàËÆÓÚ Kafka µÄ»°ÌâÃû³Æ£©£¬ÆäËû¶¼»á×Ô¶¯ÅäÖᣵ±È»£¬ÎÒÃÇÒ²¿ÉÒÔͨ¹ý×Ô¶¨ÒåÅäÖø²¸ÇĬÈÏÖµ¡£

ÔÆ×î´óµÄÓŵãÖ®Ò»ÔÚÓÚ¿ÉÒÔͨ¹ý¿É±à³ÌµÄ API ´´½¨²¢²éѯ×Ô¼ºµÄ×ÊÔ´¡£ÕâÒ²ÊÇʵÏÖ×Ô¶¯»¯µÄ¹Ø¼ü¡£Spring Cloud Azure ¿É½èÖú Azure ×ÊÔ´¹ÜÀíÆ÷ʵÏÖ×Ô¶¯»¯µÄ×ÊÔ´ÅäÖá£Æäʵ×ÊÔ´µÄ·¶³ëºÜ´ó£¬ÀýÈç AzureEventHub µÄ Consumer group¡£µ±ÎÒÃÇÓÐÒ»¸öзþÎñʹÓÃÁíÒ»¸öÐ嵀 Consumer Group ʱ£¬ÎÞÐèÊÖ¹¤´´½¨¡£

Spring Cloud Stream Binder ºÍ Azure EventHub

ÔÚÁ˽âÁË Spring Cloud Stream µÄÓÅÊÆºó£¬¼ÙÉèÄ㿪ʼʹÓÃËü£¬µ«Ï£Íû½«ÆäÇ¨ÒÆÖÁ Azure£¬´Ëʱ¸ÃÔõô×ö£¿Äã¿ÉÄÜÒѾ­Ê¹ÓÃÁË Kafka »ò RabbitMQ Binder£¬µ« Azure ËÆºõ²¢Î´Ìṩ´ËÀàÍйÜʽµÄ Kafka »ò RabbitMQ ·þÎñ¡£ÄÇôÔõÑùÓÃ×î¿ì½ÝµÄ·½·¨À´Ç¨ÒÆ£¿

ʵ¼ÊÉÏÎÒÃDz¢²»ÐèÒª¹Ø×¢×Ô¼ºµ½µ×ʹÓÃÁËÄÄÖÖÏûÏ¢Öмä¼þ£¬Ö»ÒªÓÐÒ»¸ö×é¼þÄÜÌṩÀàËÆµÄ¹¦Äܲ¢Âú×ãÐÔÄÜÒªÇó¾ÍÐÐÁË¡£Òò´ËÎÒÃÇÖ»ÐèÒª½«ÒÀÀµÏî´Ó Kafka Binder ¸ÄΪ Azure EventHub Binder ¾ÍÐУ¬ÍêÈ«²»Óøü¸ÄÈκδúÂë¼´¿Éƽ»¬Ç¨ÒÆ¡£Azure EventHub Binder ÌṩÁ˷ḻµØ¸ß¼¶¹¦ÄÜ£¬ÈçÏ£º

Consumer Group:

Óë Apache Kafka ÀàËÆ£¬EventHub ҲΪÇáÁ¿¼¶ Consumer ×éÌṩÁËÀàËÆµÄÖ§³Ö£¬µ«ÊµÏÖÉÏÂÔÓвîÒì¡£Kafka »á½«ËùÓÐÒÑÌá½»µÄÆ«ÒÆÁ¿£¨Offset£©´æ´¢ÔÚ Broker ÖУ¬µ« EventHub Æ«ÒÆÁ¿µÄ´æ´¢¹¤×÷ÐèÒªÊÖ¹¤½øÐС£EventHub SDK ÌṩÁËÔÚ Azure ´æ´¢ÕÊ»§Öб£´æÆ«ÒÆÁ¿µÄ¹¦ÄÜ¡£

·ÖÇøÖ§³Ö:

EventHub ÌṩÁËÓë Kafka ÀàËÆµÄÎïÀí·ÖÇø¸ÅÄµ«Óë Kafka »áÔÚ Consumer ºÍ·ÖÇøÖ®¼ä×Ô¶¯ÔÙ¾ùºâµÄ×ö·¨²»Í¬£¬EventHub ʹÓÃÁËÒ»ÖÖÇÀռģʽ¡£Azure ´æ´¢ÕÊ»§¿ÉÒԳ䵱¡¸×âÔ¼¡¹À´¾ö¶¨Ã¿¸ö·ÖÇøÊÇÄĸö Consumer ËùÓµÓеġ£µ±Ð Consumer Æô¶¯ºó£¬Ëü»á³¢ÊÔ×Å´Ó¸ºÔØ×îÖØµÄ Consumer¡¸ÇÀÕ¼¡¹Ò»²¿·Ö·ÖÇø£¬½è´ËʵÏÖ¸ºÔؾùºâ¡£

¼ì²éµãÖ§³Ö:

ÔÚ·Ö²¼Ê½·¢²¼ - ¶©ÔÄÏûϢϵͳÖУ¬Ö÷Òª´æÔÚÈýÖÖÏûÏ¢ÓïÒ壺×îÉÙÒ»´Î£¨At-least-once£©¡¢×î¶àÒ»´Î£¨At-most-once£©ÒÔ¼°ÑϸñÒ»´Î£¨Exactly-once£©¡£Ä¿Ç°ÎÒÃÇÖ»¿¼ÂÇÁËʹÓ÷½£º

×îÉÙÒ»´Î£ºConsumer ½ÓÊÕ²¢´¦ÀíÏûÏ¢£¬µ«ÔÚÏûÏ¢³É¹¦´¦ÀíÍê±Ï֮ǰ£¬²¢²»Ïò Broker ·¢³öÈ·ÈÏ¡£Èç¹ûÒòΪijЩԭÒòµ¼Ö´¦Àí¹¤×÷δÄÜÍê³É£¬ÀýÈç Consumer ½Úµã¹ÊÕÏ£¬Í¬Ò»ÌõÏûÏ¢½«±»£¨×÷Ϊ·ÖÇøÖеÄÏÂÒ»Ìõ¿ÉÓÃʼþ£©ÖØÐ´¦Àí£¬½è´ËÈ·±£ÏûÏ¢×îÉÙ¿ÉÒÔ±»Ê¹ÓÃÒ»´Î¡£ÕâÖÖÇé¿öÏ£¬£¨ÔÚÏûÏ¢±»³É¹¦´¦ÀíÍê³É֮ǰ£©Consumer ¿ÉÄܻὫͬһÌõÏûÏ¢´¦Àí¶à´Î£¬Manual¼ì²éµãģʽΪÏûÏ¢´¦ÀíÍê±ÏÖ®ºóµÄÊÖ¹¤¼ì²éµã²Ù×÷ÌṩÁËÖ§³Ö¡£

×î¶àÒ»´Î£ºConsumer ÊÕµ½ÏûÏ¢²¢Á¢¼´ÏòÏûÏ¢ Broker ·¢ËÍÈ·ÈÏ£¬Ëæºó¿ªÊ¼´¦Àí¸ÃÏûÏ¢¡£µ«Èç¹û Consumer ÔÚ´¦Àí¹ý³ÌÖÐÓöµ½¹ÊÕÏ£¬¸ÃÏûÏ¢½«ÎÞ·¨ÖØÐ´¦Àí£¬ÒòΪ Broker »áÈÏΪ Consumer ÒѾ­ÊÕµ½ÁËÕâÌõÏûÏ¢¡£ÕâÖÖÇé¿öÏ£¬Consumer ×î¶à½«Ò»ÌõÏûÏ¢´¦ÀíÒ»´Î£¬µ«¿ÉÄÜÒòΪ´¦Àí¹ý³ÌÖеĴíÎó¶ø¶ªÊ§Ä³Ð©ÏûÏ¢¡£ÕâÒ²ÊÇ EventHub Binder ĬÈϵÄBatch¼ì²éµãģʽ¡£

ÑϸñÒ»´Î£ºÔÚÑϸñÒ»´ÎÓïÒåÖУ¬ÎÒÃÇ»áͨ¹ýΨһµÄÏûÏ¢ ID ¶ÔÒѾ­´¦Àí¹ýµÄÏûÏ¢½øÐÐÈ¥ÖØ¡£»òÕßÒ²¿ÉÒÔʵʩÃݵȵÄÏûÏ¢´¦Àí»úÖÆ¡£ÏêÇé¿É²ÎÔÄ Exactly once ¡£

ͨ¹ýʹÓÃ×Ô¶¨ÒåÏûϢͷ±©Â¶ Checkpointer£¬Azure EventHub Binder ¼´¿ÉÖ§³Ö²»Í¬µÄÏûϢʹÓÃÓïÒå¡£ÏêÇé¿É²ÎÔÄ Spring Cloud Stream Event Hub binder Îĵµ »òÕßÒ²¿ÉÒÔͨ¹ý·¶Àý×ÔÐг¢ÊÔ¡£

Spring ×ÊÔ´ºÍ Azure ´æ´¢ Blob

Spring ×ÊԴΪUrlResource¡¢ClassPathResourceºÍFileSystemResourceµÈ»ùÓÚÁ÷µÄ×ÊÔ´µÄ²Ù×÷ÌṩÁËͨÓýӿڡ£ºÜÃ÷ÏÔ£¬Azure ´æ´¢ Blob ºÜÊʺϳ䵱ÕâÖÖBlobResource¡£ÔÚÕâÖÖResourceÖУ¬ËùÓÐʵÏÖ·½ÃæµÄϸ½Ú¾ùÒÑÒþ²Ø£¬²»´æÔÚµÄÎļþÒ²¿ÉÒÔ×Ô¶¯´´½¨¡£

ÏêÇé¿É²ÎÔÄ Spring Resource with Azure Storage Îĵµ£¬»òͨ¹ý·¶Àý×ÔÐг¢ÊÔ¡£

Spring Cloud Azure Playground£ºÒ»¼üÔËÐÐ΢·þÎñ

¾¡¹Ü Spring Cloud ÌṩÁ˺ܺõÄ΢·þÎñ¹¹½¨Ö§³Ö£¬µ«ÊǶÔÓÚÊ״γ¢ÏÊ΢·þÎñµÄС°×£¬ÏëѸËٴһ¸ö»ùÓÚ Spring Cloud µÄ¿ÉÒÔÔËÐеÄ΢·þÎñÈÔÈ»ºÜÓÐÌôÕ½£¬Í¨³£°üº¬ÒÔϹ¤×÷£º

ÐèҪΪÿ¸ö΢·þÎñ´´½¨µ¥¶ÀµÄÏîÄ¿ºÍÒÀÀµ¡£¾¡¹Ü Spring Initializr ÔÚÕâ·½ÃæÌṩÁ˺ܺõÄÖ§³Ö£¬µ«ÊÇ΢·þÎñµÄÊýÁ¿ºÜ¶à£¬Ã¿¸ö·Ö±ð´´½¨Ò²ÊǺܷ±ËöµÄ¹¤×÷¡£

È·±£Î¢·þÎñÖ®¼äµÄ°æ±¾ºÍÒÀÀµ»¥Ïà¼æÈÝ¡£

²»Í¬µÄ΢·þÎñÓв»Í¬µÄÅäÖ㬶øÇÒÓÐЩÓÐÏ໥µÄÒÀÀµ¹ØÏµ¡£ÊÖ¶¯ÅäÖúÜÈÝÒ×ÒÅ©ºÍ·¸´í¡£

Spring Cloud ÌṩµÄ»ù´¡Î¢·þÎñÓи÷×ÔµÄ×¢½âºÍÅäÖÃÀ´Æô¶¯Î¢·þÎñ¡£ÊÖ¹¤ÅäÖÃÐèÒª²Î¿¼¸÷×ÔµÄÑùÀý¡£

ºÜ¶àÓû§Ï£Íû¿ÉÒÔÒ»¼üÔÚ±¾µØÔËÐÐ΢·þÎñÀ´ÑéÖ¤¿ÉÐÐÐÔ¡£ÊÖ¹¤±àд docker file Ò²ÐèÒªÒ»¶¨µÄʱ¼äºÍ¶Ô¸÷¸ö·þÎñ¹ØÏµµÄÀí½â¡£

ΪÁ˽â¾öÉÏÊöÎÊÌ⣬ÎÒÃǹ¹½¨ÁË Spring Cloud Azure Playground À´°ïÖú´ó¼ÒÇáËɹ¹½¨Î¢·þÎñ¡£ÌṩµÄ¹¦ÄÜÈçÏ£º

»ùÓÚ Spring Initializr£¬¿ÉÒÔÒ»´Î´´½¨È«Ì׵ĿÉÔËÐÐ΢·þÎñ

ÿ¸ö΢·þÎñ°üº¬ÍêÕûµÄÒÀÀµ£¬×¢½â£¬ÅäÖúÍÑùÀý¡£Í¨¹ýÏàÓ¦µÄ docker file ¿ÉÒÔÒ»¼üÔËÐС£

Óû§¿ÉÒÔ×Ô¶¨Òå΢·þÎñµÄ¶Ë¿ÚºÍÃû×Ö£¬ÒÔ±ÜÃâÓë±¾µØÔËÐÐµÄÆäËû·þÎñ³åÍ»¡£

Óû§¿ÉÒÔÑ¡ÔñÏÂÔØµ½±¾µØ»òÕßÍÆË͵½ GitHub¡£·½±ãÍŶӹ²Ïí¡£

Äã¿ÉÒÔͨ¹ýÒÔÏÂÁ´½Ó·ÃÎÊ:https://aka.ms/springcloud¡£ÈçÏÂͼ£º

Ŀǰ£¬Spring Cloud Azure ÒÑÈ«Ãæ¿ªÔ´²¢ÒÑ·¢²¼ÖÁ¡£

   
2297 ´Îä¯ÀÀ       30
Ïà¹ØÎÄÕÂ

ÔÆ¼ÆËãµÄ¼Ü¹¹
¶ÔÔÆ¼ÆËã·þÎñÄ£ÐÍ
ÔÆ¼ÆËãºËÐļ¼ÊõÆÊÎö
Á˽âÔÆ¼ÆËãµÄ©¶´
Ïà¹ØÎĵµ

ÔÆ¼ÆËã¼ò½é
ÔÆ¼ÆËã¼ò½éÓëÔÆ°²È«
ÏÂÒ»´úÍøÂç¼ÆËã--ÔÆ¼ÆËã
ÈídzÎöÔÆ¼ÆËã
Ïà¹Ø¿Î³Ì

ÔÆ¼ÆËãÔ­ÀíÓëÓ¦ÓÃ
ÔÆ¼ÆËãÓ¦ÓÃÓ뿪·¢
CMMIÌåϵÓëʵ¼ù
»ùÓÚCMMI±ê×¼µÄÈí¼þÖÊÁ¿±£Ö¤