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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
»ùÓÚ΢·þÎñµÄÈí¼þ¼Ü¹¹Ä£Ê½
 
  À´Ô´£ºÉî¶È¿ªÔ´  ·¢²¼ÓÚ£º 2017-2-22
  2819  次浏览      28
 

½ñÌìÔĶÁÁËÁ½Æª¹ØÓÚ΢·þÎñµÄÎÄÕ£¬×ܽáһЩ±Ê¼Ç£¬²»¸ÒóȻ·­Ò룺һÊÇÒòΪˮƽ²»¹»£¬·­ÒëµÄ¹ý³Ì»á¶ªµô×÷ÕßµÄÔ­Ò⣻¶þÊÇÒòΪ¼¼Êõ·­ÒëÊÇÒ»¸öÂÔ΢³ÔÁ¦²»ÌֺõĻ

΢·þÎñ£¨micro services£©Õâ¸ö¸ÅÄî²»ÊÇиÅÄºÜ¶à¹«Ë¾ÒѾ­ÔÚʵ¼ùÁË£¬ÀýÈçÑÇÂíÑ·¡¢Google¡¢FaceBook£¬Alibaba¡£Î¢·þÎñ¼Ü¹¹Ä£Ê½ £¨Microservices Architecture Pattern£©µÄÄ¿µÄÊǽ«´óÐ͵ġ¢¸´Ôӵġ¢³¤ÆÚÔËÐеÄÓ¦ÓóÌÐò¹¹½¨ÎªÒ»×éÏ໥ÅäºÏµÄ·þÎñ£¬Ã¿¸ö·þÎñ¶¼¿ÉÒÔºÜÈÝÒ׵þֲ¿¸ÄÁ¼¡£ MicroÕâ¸ö´ÊÒâζ×Åÿ¸ö·þÎñ¶¼Ó¦¸Ã×㹻С£¬µ«ÊÇ£¬ÕâÀïµÄС²»ÄÜÓôúÂëÁ¿À´±È½Ï£¬¶øÓ¦¸ÃÊÇ´ÓÒµÎñÂß¼­ÉϱȽϡª¡ª·ûºÏSRPÔ­ÔòµÄ²Å½Ð΢·þÎñ¡£

ÔÝÇÒ²»ÌÖÂÛ´óСÎÊÌ⣬¶ÁÕßÅóÓÑÄãÊ×ÏÈÒª¿¼ÂǵÄÊÇÈçºÎ½â¾öĿǰ¼¼ÊõÍŶÓÓöµ½µÄ¿ª·¢ÎÊÌâ¡¢²¿ÊðÎÊÌâ¡£ÕýÊÇÔÚ½â¾öÕâЩÎÊÌâµÄ¹ý³ÌÖУ¬²Å½¥½¥×ܽáÌáÁ¶³öÁË΢·þÎñ¼Ü¹¹Ä£Ê½µÄ¸ÅÄî¡£

΢·þÎñ¸úSOAÓÐÊ²Ã´Çø±ðÄØ£¬¿ÉÒÔ°Ñ΢·þÎñµ±×öÈ¥³ýÁËESBµÄSOA¡£ESBÊÇSOA¼Ü¹¹ÖеÄÖÐÐÄ×ÜÏߣ¬Éè¼ÆÍ¼ÐÎÓ¦¸ÃÊÇÐÇÐε쬶øÎ¢·þÎñÊÇÈ¥ÖÐÐÄ»¯µÄ·Ö²¼Ê½Èí¼þ¼Ü¹¹¡£

½ÓÏÂÀ´»áÌÖÂÛÒÔϼ¸¸ö»°Ì⣺

Ó¦ÓÃ΢·þÎñµÄ¶¯»ú£¬¸ú´«Í³¾ÞʯӦÓõıȽÏ

΢·þÎñµÄÓŵãÓëȱµã

Ó¦ÓÃ΢·þÎñ¼Ü¹¹Éè¼ÆÊ±¿ÉÄÜÓöµ½µÄ¹Ø¼üÎÊÌ⣨ÄÚ²¿·þÎñͨÐÅ¡¢·Ö²¼Ê½Êý¾Ý¹ÜÀí£©

Ò»¡¢¾Þʯ£¨monolith£©

webÓ¦ÓóÌÐò·¢Õ¹µÄÔçÆÚ£¬´ó²¿·Öweb¹¤³ÌÊǽ«ËùÓеŦÄÜÄ£¿é£¨service side£©´ò°üµ½Ò»Æð²¢·ÅÔÚÒ»¸öwebÈÝÆ÷ÖÐÔËÐУ¬ºÜ¶àÆóÒµµÄJavaÓ¦ÓóÌÐò´ò°üΪwar°ü¡£ÆäËûÓïÑÔ£¨Ruby£¬Python»òÕßC++£©Ð´µÄ³ÌÐòÒ²ÓÐÀàËÆµÄÎÊÌâ¡£

¼ÙÉèÄãÕýÔÚ¹¹½¨Ò»¸öÔÚÏßÉ̵êϵͳ£º¿Í»§Ï¶©µ¥¡¢ºË¶ÔÇåµ¥ºÍÐÅÓÿ¨¶î¶È£¬²¢½«»õÎïÔËÊ䏸¿Í»§¡£ºÜ¿ì£¬ÄãÃÇÍŶÓÒ»¶¨Äܹ¹Ôì³öÈçÏÂͼËùʾµÄϵͳ¡£

Fig1- the monolithic architecture

ÕâÖÖ½«ËùÓй¦Äܶ¼²¿ÊðÔÚÒ»¸öwebÈÝÆ÷ÖÐÔËÐеÄϵͳ¾Í½Ð×ö¾ÞʯÐÍÓ¦Ó᣾ÞʯÐÍÓ¦ÓÃÓкܶàºÃ´¦£ºIDE¶¼ÊÇΪ¿ª·¢µ¥¸öÓ¦ÓÃÉè¼ÆµÄ¡¢ÈÝÒײâÊÔ¡ª¡ªÔÚ±¾µØ¾Í¿ÉÒÔÆô¶¯ÍêÕûµÄϵͳ¡¢ÈÝÒײ¿Ê𡪡ªÖ±½Ó´ò°üΪһ¸öÍêÕûµÄ°ü£¬¿½±´µ½webÈÝÆ÷µÄij¸öĿ¼Ï¼´¿ÉÔËÐС£

µ«ÊÇ£¬ÉÏÊöµÄºÃ´¦ÊÇÓÐÌõ¼þµÄ£ºÓ¦Óò»ÄÇô¸´ÔÓ¡£¶ÔÓÚ´ó¹æÄ£µÄ¸´ÔÓÓ¦Ó㬾ÞʯÐÍÓ¦ÓûáÏÔµÃÌØ±ð±¿ÖØ£ºÒªÐÞ¸ÄÒ»¸öµØ·½¾ÍÒª½«Õû¸öÓ¦ÓÃÈ«²¿²¿Êð£¨PS£ºÔÚ²»Í¬µÄ³¡¾°ÏÂÓÅÊÆÒ²±ä³ÉÁËÁÓÊÆ£©£»±àÒëʱ¼ä¹ý³¤£»»Ø¹é²âÊÔÖÜÆÚ¹ý³¤£»¿ª·¢Ð§ÂʽµµÍµÈ¡£ÁíÍ⣬¾ÞʯӦÓò»ÀûÓÚ¸üм¼Êõ¿ò¼Ü£¬³ý·ÇÄãÔ¸Ò⽫ϵͳȫ²¿ÖØÐ´£¨´ú¼ÛÌ«¸ßÄãÔ¸ÒâÀϰåÒ²²»Ô¸Ò⣩¡£

¶þ¡¢Ó¦Óòð·Ö

Ïêϸһ¸öÍøÕ¾ÔÚÒµÎñ´ó¹æÄ£ÅÀÉýʱ»á·¢ÉúʲôÊÂÇ飿²¢·¢¶È²»¹»£¿OK£¬¼Óweb·þÎñÆ÷¡£Êý¾Ý¿âѹÁ¦¹ý´ó£¿OK£¬Âò¸ü´ó¸ü¹óµÄÊý¾Ý¿â¡£Êý¾Ý¿âÌ«¹óÁË£¿½« Ò»¸ö±íµÄÊý¾Ý·Ö¿ª´æ´¢£¬Ë׳ơ°·Ö¿â·Ö±í¡±¡£ÕâЩ¶¼Ã»ÓÐÎÊÌ⣬good job¡£²»¹ý£¬ÀÏÍâµÄ³éÏóÄÜÁ¦±ÈÎÒÃÇÇ¿£¬¿´ÏÂͼFig2¡£

Fig2 - the scale cube

ÕâÕÅͼ´ÓÈý¸öά¶È¸ÅÀ¨ÁËÒ»¸öϵͳµÄÀ©Õ¹¹ý³Ì£º£¨1£©xÖᣬˮƽ¸´ÖÆ£¬¼´ÔÚ¸ºÔؾùºâ·þÎñÆ÷ºóÔö¼Ó¶à¸öweb·þÎñÆ÷£»£¨2£©zÖáÀ© Õ¹£¬ÊǶÔÊý¾Ý¿âµÄÀ©Õ¹£¬¼´·Ö¿â·Ö±í£¨·Ö¿âÊǽ«¹ØÏµ½ôÃܵıí·ÅÔÚһ̨Êý¾Ý¿â·þÎñÆ÷ÉÏ£¬·Ö±íÊÇÒòΪһÕűíµÄÊý¾ÝÌ«¶à£¬ÐèÒª½«Ò»ÕűíµÄÊý¾Ýͨ¹ýhash·ÅÔÚ²»Í¬ µÄÊý¾Ý¿â·þÎñÆ÷ÉÏ£©£»£¨3£©yÖáÀ©Õ¹£¬Êǹ¦Äֽܷ⣬½«²»Í¬Ö°ÄܵÄÄ£¿é·Ö³É²»Í¬µÄ·þÎñ¡£´ÓyÖáÕâ¸ö·½ÏòÀ©Õ¹£¬²ÅÄܽ«¾ÞÐÍÓ¦Ó÷ֽâΪһ×鲻ͬµÄ·þÎñ£¬ÀýÈç¶©µ¥ ¹ÜÀíÖÐÐÄ¡¢¿Í»§ÐÅÏ¢¹ÜÀíÖÐÐÄ¡¢ÉÌÆ·¹ÜÀíÖÐÐĵȵȡ£

½«ÏµÍ³»®·ÖΪ²»Í¬µÄ·þÎñÓкܶ෽·¨£º£¨1£©°´ÕÕÓÃÀý»®·Ö£¬ÀýÈçÔÚÏßÉ̵êϵͳÖлỮ·Ö³öÒ»¸öcheckout UI·þÎñ£¬Õâ¸ö·þÎñʵÏÖÁËcheckoutÕâ¸öÓÃÀý£»£¨2£©°´ÕÕ×ÊÔ´»®·Ö£¬ÀýÈç¿ÉÒÔ»®·Ö³öÒ»¸öcatlog·þÎñÀ´´æ´¢²úƷĿ¼¡£

·þÎñ»®·ÖÓÐÁ½¸öÔ­ÔòÒª×ñÑ­£º£¨1£©Ã¿¸ö·þÎñÓ¦¸Ã¾¡¿ÉÄÜ·ûºÏµ¥Ò»Ö°ÔðÔ­Ôò¡ª¡ªSingle Responsible Principle£¬¼´Ã¿¸ö·þÎñÖ»×öÒ»¼þÊ£¬²¢°ÑÕâ¼þÊÂ×öºÃ£»£¨2£©²Î¿¼UnixÃüÁîÐй¤¾ßµÄÉè¼Æ£¬UnixÌṩÁË´óÁ¿µÄ¼òµ¥Ò×ÓõŤ¾ß£¬ÀýÈçgrep¡¢catºÍfind¡£Ã¿¸ö¹¤¾ß¶¼Ð¡¶øÃÀ¡£

×îºó»¹ÒªÇ¿µ÷£ºÏµÍ³·Ö½âµÄÄ¿±ê²¢²»½ö½öÊǸã³öÒ»¶ÑºÜСµÄ·þÎñ£¬Õâ²»ÊÇÄ¿±ê£»ÕæÕýµÄÄ¿±êÊǽâ¾ö¾ÞʯÐÍÓ¦ÓÃÔÚÒµÎñ¼±¾çÔö³¤Ê±Óöµ½µÄÎÊÌâ¡£

¶ÔÓÚÉÏÃæµÄÀý×Ó£¬°´ÕÕ¹¦ÄܺÍ×ÊÔ´»®·Öºó£¬¾ÍÐγÉÏÂÃæÍ¼3µÄ¼Ü¹¹Í¼¡£·Ö½âºóµÄ΢·þÎñ¼Ü¹¹°üº¬¶à¸öǰ¶Ë·þÎñºÍºó¶Ë·þÎñ¡£Ç°¶Ë·þÎñ°üÀ¨Catalog UI£¨ÓÃÓÚÉÌÆ·ËÑË÷ºÍä¯ÀÀ£©¡¢Checkout UI£¨ÓÃÓÚʵÏÖ¹ºÎï³µºÍϵ¥²Ù×÷£©£»ºó¶Ë·þÎñ°üÀ¨Ò»Ð©ÒµÎñÂß¼­Ä£¿é£¬ÎÒÃǽ«ÔÚ¾ÞʯӦÓÃÖеÄÿ¸ö·þÎñÄ£¿éÖØ¹¹ÎªÒ»¸öµ¥¶ÀµÄ·þÎñ¡£Õâô×öÓÐʲôÎÊÌâÄØ£¿

Fig 3 - the microservice architecture

Èý¡¢Î¢·þÎñ¼Ü¹¹µÄÓŵãÓëȱµã

1. Óŵã

ÿ¸ö·þÎñ×ã¹»ÄÚ¾Û£¬×㹻С£¬´úÂëÈÝÒ×Àí½â¡¢¿ª·¢Ð§ÂÊÌá¸ß

·þÎñÖ®¼ä¿ÉÒÔ¶ÀÁ¢²¿Êð£¬Î¢·þÎñ¼Ü¹¹ÈóÖÐø²¿Êð³ÉΪ¿ÉÄÜ£»

ÿ¸ö·þÎñ¿ÉÒÔ¸÷×Ô½øÐÐxÀ©Õ¹ºÍzÀ©Õ¹£¬¶øÇÒ£¬Ã¿¸ö·þÎñ¿ÉÒÔ¸ù¾Ý×Ô¼ºµÄÐèÒª²¿Ê𵽺ÏÊʵÄÓ²¼þ·þÎñÆ÷ÉÏ£»

ÈÝÒ×À©´ó¿ª·¢ÍŶӣ¬¿ÉÒÔÕë¶Ôÿ¸ö·þÎñ£¨service£©×é¼þ¿ª·¢ÍŶӣ»

Ìá¸ßÈÝ´íÐÔ£¨fault isolation£©£¬Ò»¸ö·þÎñµÄÄÚ´æÐ¹Â¶²¢²»»áÈÃÕû¸öϵͳ̱»¾£»

ϵͳ²»»á±»³¤ÆÚÏÞÖÆÔÚij¸ö¼¼ÊõÕ»ÉÏ¡£

2. ȱµã

¡¶ÈËÔÂÉñ»°¡·Öн²µ½£ºÃ»ÓÐÒøµ¯£¬Òâ˼ÊÇÖ»¿¿Ò»°Ñ´¸×ÓÊǸDz»ÆðĦÌì´óÂ¥µÄ£¬Òª¸ù¾ÝÒµÎñ³¡¾°Ñ¡ÔñÉè¼ÆË¼Â·ºÍʵÏÖ¹¤¾ß¡£ÎÒÃÇ¿´ÏÂΪÁË»»»ØÉÏÃæÌáµ½µÄºÃ´¦£¬ÎÒÃǸ¶³ö£¨trade£©ÁËʲô£¿

¿ª·¢ÈËÔ±Òª´¦Àí·Ö²¼Ê½ÏµÍ³µÄ¸´ÔÓÐÔ£»¿ª·¢ÈËÔ±ÒªÉè¼Æ·þÎñÖ®¼äµÄͨÐÅ»úÖÆ£¬¶ÔÓÚÐèÒª¶à¸öºó¶Ë·þÎñµÄuser case£¬ÒªÔÚûÓзֲ¼Ê½ÊÂÎñµÄÇé¿öÏÂʵÏÖ´úÂë·Ç³£À§ÄÑ£»Éæ¼°¶à¸ö·þÎñÖ±½ÓµÄ×Ô¶¯»¯²âÊÔÒ²¾ß±¸Ï൱µÄÌôÕ½ÐÔ£»

·þÎñ¹ÜÀíµÄ¸´ÔÓÐÔ£¬ÔÚÉú²ú»·¾³ÖÐÒª¹ÜÀí¶à¸ö²»Í¬µÄ·þÎñµÄʵÀý£¬ÕâÒâζ×Å¿ª·¢ÍŶÓÐèҪȫ¾Öͳ³ï£¨PS£ºÏÖÔÚdockerµÄ³öÏÖÊʺϽâ¾öÕâ¸öÎÊÌ⣩

Ó¦ÓÃ΢·þÎñ¼Ü¹¹µÄʱ»úÈçºÎ°ÑÎÕ£¿¶ÔÓÚÒµÎñ»¹Ã»ÓÐÀíÇå³þ¡¢ÒµÎñÊý¾ÝºÍ´¦ÀíÄÜÁ¦»¹Ã»ÓпªÊ¼±¬·¢Ê½Ôö³¤Ö®Ç°µÄ´´Òµ¹«Ë¾£¬²»ÐèÒª¿¼ÂÇ΢·þÎñ¼Ü¹¹Ä£Ê½£¬Õâʱºò×îÖØÒªµÄÊÇ¿ìËÙ¿ª·¢¡¢¿ìËÙ²¿Ê𡢿ìËÙÊÔ´í¡£

ËÄ¡¢Î¢·þÎñ¼Ü¹¹µÄ¹Ø¼üÎÊÌâ

1. ΢·þÎñ¼Ü¹¹µÄͨÐÅ»úÖÆ

£¨1£©¿Í»§¶ËÓë·þÎñÆ÷Ö®¼äµÄͨÐÅ

ÔÚ¾ÞʯÐͼܹ¹Ï£¬¿Í»§¶ËÓ¦ÓóÌÐò£¨web»òÕßapp£©Í¨¹ýÏò·þÎñ¶Ë·¢ËÍHTTPÇëÇó£»µ«ÊÇ£¬ÔÚ΢·þÎñ¼Ü¹¹Ï£¬Ô­À´µÄ¾ÞʯÐÍ·þÎñÆ÷±»Ò»×é΢·þÎñÌæ´ú£¬ÕâÖÖÇé¿öÏ¿ͻ§¶ËÈçºÎ·¢ÆðÇëÇóÄØ£¿

Èçͼ4ÖÐËùʾ£¬¿Í»§¶Ë¿ÉÒÔÏòmicro service·¢ÆðRESTful HTTPÇëÇ󣬵«ÊÇ»áÓÐÕâÖÖÇé¿ö·¢Éú£º¿Í»§¶ËΪÁËÍê³ÉÒ»¸öÒµÎñÂß¼­£¬ÐèÒª·¢Æð¶à¸öHTTPÇëÇ󣬴ӶøÔì³ÉϵͳµÄÍÌÍÂÂÊϽµ£¬ÔÙ¼ÓÉÏÎÞÏßÍøÂçµÄÑӳٸߣ¬»áÑÏÖØÓ°Ïì¿Í»§¶ËµÄÓû§ÌåÑé¡£

Fig4 - calling services directly

ΪÁ˽â¾öÕâ¸öÎÊÌ⣬һ°ã»áÔÚ·þÎñÆ÷¼¯ÈºÇ°ÃæÔÙ¼ÓÒ»¸ö½ÇÉ«£ºAPI gateway£¬ÓÉËü¸ºÔðÓë¿Í»§¶È¶Ô½Ó£¬²¢½«¿Í»§¶ËµÄÇëÇóת»¯³É¶ÔÄÚ²¿·þÎñµÄһϵÁе÷Óá£ÕâÑù×ö»¹ÓиöºÃ´¦ÊÇ£¬·þÎñÉý¼¶²»»áÓ°Ïìµ½¿Í»§¶Ë£¬Ö»ÐèÒªÐÞ¸Ä API gateway¼´¿É¡£¼ÓÁËAPI gatewayÖ®ºóµÄϵͳ¼Ü¹¹Í¼Èçͼ5Ëùʾ¡£

Fig5 - API gateway

£¨2£©ÄÚ²¿·þÎñÖ®¼äµÄͨÐÅ

ÄÚ²¿·þÎñÖ®¼äµÄͨÐÅ·½Ê½ÓÐÁ½ÖÖ£º»ùÓÚHTTPЭÒéµÄͬ²½»úÖÆ£¨REST¡¢RPC£©£»»ùÓÚÏûÏ¢¶ÓÁеÄÒì²½ÏûÏ¢´¦Àí»úÖÆ£¨AMQP-based message broker£©¡£

DubboÊǰ¢Àï°Í°Í¿ªÔ´µÄ·Ö²¼Ê½·þÎñ¿ò¼Ü£¬ÊôÓÚͬ²½µ÷Ó㬵±Ò»¸öϵͳµÄ·þÎñÌ«¶àʱ£¬ÐèÒªÒ»¸ö×¢²áÖÐÐÄÀ´´¦Àí·þÎñ·¢ÏÖÎÊ Ì⣬ÀýÈçʹÓÃZooKeeperÕâÀàÅäÖ÷þÎñÆ÷½øÐзþÎñµÄµØÖ·¹ÜÀí£º·þÎñµÄ·¢²¼ÕßÒªÏòZooKeeper·¢ËÍÇëÇ󣬽«×Ô¼ºµÄ·þÎñµØÖ·ºÍº¯ÊýÃû³ÆµÈÐÅÏ¢¼Ç¼ ÔÚ°¸£»·þÎñµÄµ÷ÓÃÕßÒªÖªµÀ·þÎñµÄÏà¹ØÐÅÏ¢£¬¾ßÌåµÄ»úÆ÷µØÖ·ÔÚZooKeeper²éѯµÃµ½¡£ÕâÖÖͬ²½µÄµ÷ÓûúÖÆ×ã¹»Ö±¹Û¼òµ¥£¬Ö»ÊÇûÓС°¶©ÔÄ¡ª¡ªÍÆËÍ¡±»ú ÖÆ¡£

AMQP-basedµÄ´ú±íϵͳÊÇkafka¡¢RabbitMQµÈ¡£ÕâÀà·Ö²¼Ê½ÏûÏ¢´¦Àíϵͳ½«¶©ÔÄÕߺÍÏû·ÑÕß½âñîºÏ£¬ÏûÏ¢µÄÉú²úÕß²»ÐèÒªÏû·ÑÕßÒ»Ö±ÔÚÏߣ»ÏûÏ¢µÄÉú²úÕßÖ»ÐèÒª°ÑÏûÏ¢·¢Ë͸øÏûÏ¢´úÀí£¬Òò´ËÒ²²»ÐèÒª·þÎñ·¢ÏÖ»úÖÆ¡£

Á½ÖÖͨÐÅ»úÖÆ¶¼Óи÷×ÔµÄÓŵãºÍȱµã£¬Êµ¼ÊÖеÄϵͳ¾­³£°üº¬Á½ÖÖͨÐÅ»úÖÆ¡£ÀýÈ磬ÔÚ·Ö²¼Ê½Êý¾Ý¹ÜÀíÖУ¬¾ÍÐèҪͬʱÓõ½Í¬²½HTTP»úÖÆºÍÒì²½ÏûÏ¢´¦Àí»úÖÆ¡£

2. ·Ö²¼Ê½Êý¾Ý¹ÜÀí

£¨1£©´¦Àí¶ÁÇëÇó

ÔÚÏßÉ̵êµÄ¿Í»§ÕË»§ÓÐÏ޶µ±¿Í»§ÊÔͼϵ¥Ê±£¬ÏµÍ³±ØÐëÅжÏ×ܵĶ©µ¥½ð¶îÊÇ·ñ³¬¹ýËûµÄÐÅÓÿ¨¶î¶È¡£ÐÅÓÿ¨¶î¶ÈÓÉCustomerService¹Ü Àí¡¢Ï¶©µ¥µÄ²Ù×÷ÓÉOrderService¸ºÔð£¬Òò´ËOrder ServiceҪͨ¹ýRPCµ÷ÓÃÏòCustomer ServiceÇëÇóÊý¾Ý£»ÕâÖÖ·½·¨Äܹ»±£Ö¤Ã¿´ÎOrder Service¶¼»ñÈ¡µ½×¼È·µÄ¶î¶È£¬µ¥È±µãÊǶàÒ»´ÎRPCµ÷ÓᢶøÇÒCustomer Service±ØÐë±£³ÖÔÚÏß¡£

»¹ÓÐÒ»ÖÖ´¦Àí·½Ê½ÊÇ£¬ÔÚOrderServiceÕâ±ß´æ·ÅÒ»·ÝÐÅÓÿ¨¶î¶ÈµÄ¸±±¾£¬ÕâÑù¾Í²»ÐèҪʵʱ·¢ÆðRPCÇëÇ󣬵«ÊÇ»¹ÐèÒªÒ»ÖÖ»úÖÆ±£Ö¤¡ª¡ªµ±Customer ServiceÓµÓеÄÐÅÓÿ¨¶î¶È·¢Éú±ä»¯Ê±£¬Òª¼°Ê±¸üдæ·ÅÔÚOrder ServiceÕâ±ßµÄ¸±±¾¡£

£¨2£©´¦Àí¸üÐÂÇëÇó

µ±Ò»·ÝÊý¾ÝλÓÚ¶à¸ö·þÎñÉÏʱ£¬±ØÐë±£Ö¤Êý¾ÝµÄÒ»ÖÂÐÔ¡£

·Ö²¼Ê½ÊÂÎñ£¨Distributed transactions£©

ʹÓ÷ֲ¼Ê½ÊÂÎñ·Ç³£Ö±¹Û£¬¼´Òª¸üÐÂCustomer ServiceÉϵÄÐÅÓÿ¨¶î¶È£¬¾Í±ØÐëͬʱ¸üÐÂÆäËû·þÎñÉϵĸ±±¾£¬ÕâЩ²Ù×÷Ҫôȫ×öҪôȫ²»×ö¡£Ê¹Ó÷ֲ¼Ê½ÊÂÎñÄܹ»±£Ö¤Êý¾ÝµÄǿһÖ£¬µ«ÊǻήµÍϵͳµÄ¿É ÓÃÐÔ¡ª¡ªËùÓÐÏà¹ØµÄ·þÎñ±ØÐëʼÖÕÔÚÏߣ»¶øÇÒ£¬ºÜ¶àÏÖ´úµÄ¼¼ÊõÕ»²¢²»Ö§³ÖÊÂÎñ£¬ÀýÈçREST¡¢NoSQLÊý¾Ý¿âµÈ¡£

»ùÓÚʼþµÄÒì²½¸üУ¨Event-driven asynchronous updates£©

Customer ServiceÖеÄÐÅÓÿ¨¶î¶È¸Ä±äʱ£¬Ëü¶ÔÍâ·¢²¼Ò»¸öʼþµ½¡°message broker£¨ÏûÏ¢´úÀíÈË£©¡±£»ÆäËû¶©ÔÄÁËÕâ¸öʼþµÄ·þÎñÊܵ½Ìáʾºó¾Í¸üÐÂÊý¾Ý¡£Ê¼þÁ÷Èçͼ6Ëùʾ¡£

Fig 6 - replicating the credit limit using events

Îå¡¢ÖØ¹¹¾ÞʯÐÍÓ¦ÓÃ

ÔÚʵ¼Ê¹¤×÷ÖУ¬ºÜÉÙÓлú»á²ÎÓëÒ»¸öȫеÄÏîÄ¿£¬ÐèÒª´¦ÀíµÄ²î²»¶à¶¼ÊÇ´æÔÚÕâÑùÄÇÑùÎÊÌâµÄ¸´ÔÓ¡¢´óÐÍÓ¦Óá£ÕâʱºòÈçºÎÔÚά»¤ÀÏ·þÎñµÄͬʱ£¬½«ÏµÍ³½¥½¥Öع¹ÎªÎ¢·þÎñ¼Ü¹¹ÄØ£¿

²»ÒªÈÃÊÂÇé¸ü»µ£¬ÓÐеÄÐèÇó¹ýÀ´Ê±£¬Èç¹û¿ÉÒÔ¶ÀÁ¢¿ª·¢ÎªÒ»¸ö·þÎñ£¬¾Íµ¥¶À¿ª·¢£¬È»ºóΪÀÏ·þÎñºÍзþÎñÖ±½Ó±àд½ºË®´úÂ루Glue Code£©¡ª¡ªÕâ¸ö¹ý³Ì²»ÈÝÒ×£¬µ«ÕâÊÇ·Ö½â¾ÞÐÍ·þÎñµÄµÚÒ»²½£¬Èçͼ7Ëùʾ£»

Fig-7 - extracting a service

ʶ±ð¾ÞʯÐÍÓ¦ÓÃÖеĿÉÒÔ·ÖÀë³öÀ´µ±×öµ¥¶À·þÎñµÄÄ£¿é£¬Ò»°ãÊʺϷÖÀëµÄÄ£¿é¾ßÓÐÈçÏÂÌØµã£ºÁ½¸öÄ£¿é¶Ô×ÊÔ´µÄÐèÇóÊdzåÍ»µÄ£¨Ò»¸öÊÇCPUÃܼ¯ÐÍ¡¢Ò»¸ö ÊÇIOÃܼ¯ÐÍ£©£»ÊÚȨ¼ø¶¨²ãÒ²Êʺϵ¥¶À·ÖÀë³öÒ»¸ö·þÎñ¡£Ã¿·ÖÀë³öÒ»¸ö·þÎñ£¬¾ÍÐèÒª±àд¶ÔÓ¦µÄ½ºË®´úÂëÀ´ÓëʣϵķþÎñͨÐÅ£¬ÕâÑù£¬ÔÚÖð½¥Ñݽø¹ý³ÌÖУ¬¾ÍÍê³É ÁËÕû¸öϵͳµÄ¼Ü¹¹¸üС£

¹ØÓÚÖØ¹¹£¬ÓÐÆªÎÄÕÂÍÆ¼ö´ó¼ÒÔĶÁ¡ª¡ªÍƵ¹ÖØÀ´µÄ½²¾¿£¬¹ØÓÚÖØ¹¹Óкܶà¿ÉÒÔдµÄ£¬Ï£ÍûÎÒÄÜ¿ìËÙ½ø²½£¬¶àдµã×ܽáÓë´ó¼Ò·ÖÏí¡£

×ܽá

΢·þÎñ²¢²»ÊÇÖΰٲ¡µÄÁ¼Ò©£¬Ò²²»ÊÇʲôеļ¼Êõ£¬ÎÒ´ÓÖÐѧµ½µÄ×î´óµÄÒ»µã¾ÍÊÇscale cube£¬´ÓÕâ¸ö×ø±êÖá³ö·¢È¥¿¼ÂÇ´ó¹æÄ£ÏµÍ³µÄ¹¹½¨±È½ÏÈÝÒ×·ÖÎöºÍʵ¼ù¡£

   
2819 ´Îä¯ÀÀ       28
Ïà¹ØÎÄÕÂ

ÆóÒµ¼Ü¹¹¡¢TOGAFÓëArchiMate¸ÅÀÀ
¼Ü¹¹Ê¦Ö®Â·-ÈçºÎ×öºÃÒµÎñ½¨Ä££¿
´óÐÍÍøÕ¾µçÉÌÍøÕ¾¼Ü¹¹°¸ÀýºÍ¼¼Êõ¼Ü¹¹µÄʾÀý
ÍêÕûµÄArchimateÊÓµãÖ¸ÄÏ£¨°üÀ¨Ê¾Àý£©
Ïà¹ØÎĵµ

Êý¾ÝÖÐ̨¼¼Êõ¼Ü¹¹·½·¨ÂÛÓëʵ¼ù
ÊÊÓÃArchiMate¡¢EA ºÍ iSpace½øÐÐÆóÒµ¼Ü¹¹½¨Ä£
ZachmanÆóÒµ¼Ü¹¹¿ò¼Ü¼ò½é
ÆóÒµ¼Ü¹¹ÈÃSOAÂ䵨
Ïà¹Ø¿Î³Ì

ÔÆÆ½Ì¨Óë΢·þÎñ¼Ü¹¹Éè¼Æ
ÖÐ̨սÂÔ¡¢ÖÐ̨½¨ÉèÓëÊý×ÖÉÌÒµ
ÒÚ¼¶Óû§¸ß²¢·¢¡¢¸ß¿ÉÓÃϵͳ¼Ü¹¹
¸ß¿ÉÓ÷ֲ¼Ê½¼Ü¹¹Éè¼ÆÓëʵ¼ù

×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]

Ïà¹ØÎÄÕÂ


ר¼ÒÊӽǿ´ITÓë¼Ü¹¹
Èí¼þ¼Ü¹¹Éè¼Æ
ÃæÏò·þÎñÌåϵ¼Ü¹¹ºÍÒµÎñ×é¼þ
ÈËÈËÍøÒÆ¶¯¿ª·¢¼Ü¹¹
¼Ü¹¹¸¯»¯Ö®ÃÕ
̸ƽ̨¼´·þÎñPaaS

Ïà¹ØÅàѵ¿Î³Ì


ÃæÏòÓ¦Óõļܹ¹Éè¼ÆÊµ¼ù
µ¥Ôª²âÊÔ+ÖØ¹¹+Éè¼ÆÄ£Ê½
Èí¼þ¼Ü¹¹Ê¦¡ª¸ß¼¶Êµ¼ù
Èí¼þ¼Ü¹¹Éè¼Æ·½·¨¡¢°¸ÀýÓëʵ¼ù
ǶÈëʽÈí¼þ¼Ü¹¹Éè¼Æ¡ª¸ß¼¶Êµ¼ù
SOAÌåϵ½á¹¹Êµ¼ù

³É¹¦°¸Àý


Èñ°²¿Æ¼¼ Èí¼þ¼Ü¹¹Éè¼Æ·½·¨
³É¶¼ ǶÈëʽÈí¼þ¼Ü¹¹Éè¼Æ
ÉϺ£Æû³µ ǶÈëʽÈí¼þ¼Ü¹¹Éè¼Æ
±±¾© Èí¼þ¼Ü¹¹Éè¼Æ
ÉϺ£ Èí¼þ¼Ü¹¹Éè¼Æ°¸ÀýÓëʵ¼ù
±±¾© ¼Ü¹¹Éè¼Æ·½·¨°¸ÀýÓëʵ¼ù
ÉîÛÚ ¼Ü¹¹Éè¼Æ·½·¨°¸ÀýÓëʵ¼ù
ǶÈëʽÈí¼þ¼Ü¹¹Éè¼Æ¡ª¸ß¼¶Êµ¼ù