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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
·Ö²¼Ê½ÊÂÎñµÄ N ÖÖʵÏÖ
 
×÷ÕߣºÌìÈç
  2210  次浏览      30
 2020-9-1
 
±à¼­ÍƼö:
±¾ÆªÄÚÈÝÖ÷ÒªÌÖÂÛµÄÊǶ¨ÒåÒ»¸ö³äÖµÐèÇó£¬ÎÒÃÇÔÚ¸÷¸öʵÏÖÖÐÈçºÎΪ¸ÃÐèÇóʵÏÖ·Ö²¼Ê½ÊÂÎñ£¬Ï£Íû±¾ÎĶԴó¼ÒÓаïÖú ¡£
À´×ÔÓÚ²©¿ÍÔ°£¬ÓÉ»ðÁú¹ûÈí¼þAlice±à¼­¡¢ÍƼö¡£

ÐèÇóÔµÆð

ÔÚ΢·þÎñ¼Ü¹¹ÖУ¬Ëæ×Å·þÎñµÄÖð²½²ð·Ö£¬Êý¾Ý¿â˽ÓÐÒѾ­³ÉΪ¹²Ê¶£¬ÕâÒ²µ¼ÖÂËùÃæÁٵķֲ¼Ê½ÊÂÎñÎÊÌâ³ÉΪ΢·þÎñÂ䵨¹ý³ÌÖÐÒ»¸ö·Ç³£ÄÑÒÔÓâÔ½µÄÕϰ­£¬µ«ÊÇĿǰÉÐûÓÐÒ»¸öÍêÕûͨÓõĽâ¾ö·½°¸¡£

Æäʵ²»½ö½öÊÇÔÚ΢·þÎñ¼Ü¹¹ÖУ¬Ëæ×ÅÓû§·ÃÎÊÁ¿µÄÖð½¥ÉÏÕÇ£¬Êý¾Ý¿âÉõÖÁÊÇ·þÎñµÄ·ÖƬ¡¢·ÖÇø¡¢Ë®Æ½²ð·Ö¡¢´¹Ö±²ð·ÖÒѾ­Öð½¥³ÉΪ½ÏΪ³£ÓõÄÌáÉýÆ¿¾±µÄ½â¾ö·½°¸£¬Òò´ËÔ½À´Ô½¶àµÄÔ­×Ó²Ù×÷±ä³ÉÁË¿ç¿âÉõÖÁÊÇ¿ç·þÎñµÄÊÂÎñ²Ù×÷¡£×îÖÕ½á¹ûÊÇÔÚ¶Ô¸ßÐÔÄÜ¡¢¸ßÀ©Õ¹ÐÔ£¬¸ß¿ÉÓÃÐÔµÄ×·ÇóµÄµÀ·ÉÏ£¬ÎÒÃÇ¿ªÊ¼Öð½¥·ÅËɶÔÒ»ÖÂÐÔµÄ×·Ç󣬵«ÊÇÔںܶೡ¾°Ï£¬ÓÈÆäÊÇÕËÎñ£¬µçÉ̵ÈÒµÎñÖУ¬²»¿É±ÜÃâµÄ´æÔÚ×ÅÒ»ÖÂÐÔÎÊÌ⣬ʹµÃÎÒÃDz»µÃ²»È¥Ì½Ñ°Ò»ÖÖ»úÖÆ£¬ÓÃÒÔÔÚ·Ö²¼Ê½»·¾³Öб£Ö¤ÊÂÎñµÄÒ»ÖÂÐÔ

ÀíÂÛ»ùʯ

2PC

̸µ½·Ö²¼Ê½ÊÂÎñ£¬Ê×ÏÈҪ˵µÄ¾ÍÊÇ 2PC£¨two phase commit£©·½°¸£¬ÈçÏÂͼËùʾ£º

2PC °ÑÊÂÎñµÄÖ´ÐзÖΪÁ½¸ö½×¶Î£¬µÚÒ»¸ö½×¶Î¼´ prepare ½×¶Î£¬Õâ¸ö½×¶Îʵ¼ÊÉϾÍÊÇͶƱ½×¶Î£¬Ð­µ÷ÕßÏò²ÎÓëÕßÈ·ÈÏÊÇ·ñ¿ÉÒÔ¹²Í¬Ìá½»£¬Ôٵõ½È«²¿²ÎÓëÕßµÄËùÓлشðºó£¬Ð­µ÷ÕßÏòËùÓеIJÎÓëÕß·¢²¼¹²Í¬Ìá½»»òÕß¹²Í¬»Ø¹öµÄÖ¸ÁÓÃÒÔ±£Ö¤ÊÂÎñ´ïµ½Ò»ÖÂÐÔ¡£

2PC ÊǼ¸ºõËùÓзֲ¼Ê½ÊÂÎñËã·¨µÄ»ù´¡£¬ºóÐøµÄ·Ö²¼Ê½ÊÂÎñËã·¨¼¸ºõ¶¼Óɴ˸Ľø¶øÀ´¡£

ÐèÇóÑùÀý

ÕâÀïÎÒÃǶ¨ÒåÒ»¸ö³äÖµÐèÇ󣬺óÐøÎÒÃÇÔÚ¸÷¸öʵÏÖÖп´¿´ÈçºÎΪ¸ÃÐèÇóʵÏÖ·Ö²¼Ê½ÊÂÎñ¡£

Order ºÍ Account ·Ö±ðÊǶÀÁ¢µÄÒ»¸ö·þÎñ£¬³äÖµÍê³Éºó£¬Òª·Ö±ð½«¶©µ¥Order ÉèÖÃΪ³É¹¦ÒÔ¼°Ôö¼ÓÓû§Óà¶î¡£

ʵÏÖ1 Seata

½éÉÜ & ¿ò¼Ü

Seata£¨Fescar£© is a distributed transaction solution with high performance and ease of use for microservices architecture.

°¢À↑Դ£¬ÆäÌØµãÊÇÓÃÒ»¸öÊÂÎñ¹ÜÀíÆ÷£¬À´¹ÜÀíÿ¸ö·þÎñµÄÊÂÎñ£¬±¾ÖÊÉÏÊÇ 2PC£¨ºóÎÄ»á½âÊÍ£© µÄÒ»ÖÖʵÏÖ¡£

Seata ÌṩÁËÈ«¾ÖµÄÊÂÎñ¹ÜÀíÆ÷

Ô­Àí

Fescar¹Ù·½½éÉÜ

FescarÈ«¾ÖËøµÄÀí½â

´úÀí SQL ²éѯ£¬ÊµÏÖÊÂÎñ¹ÜÀí£¬ÀàËÆÖмä¼þ

ʵÏÖ³äÖµÐèÇó

Óø÷½°¸ÊµÏÖÐèÇóµÄ»°£¬¾ÍÊÇÕâÑùµÄ£º

Order ºÍ Account ¶¼½ÓÈë Seata À´´úÀíÊÂÎñ

´úÂëʾÀý

±ÈÆð×Ô¼ºÈ¥ÊµÏÖ 2PC£¬Seata ÌṩÁ˼ò»¯·½°¸£¬´úÂëʵÀý¼û £º

Seata Samples

ʵÏÖ2 TCC

½éÉÜ

TCC(Try-Confirm-Concel) Ä£ÐÍÊÇÒ»ÖÖ²¹³¥ÐÔÊÂÎñ£¬Ö÷Òª·ÖΪ Try£º¼ì²é¡¢±£Áô×ÊÔ´£¬Confirm£ºÖ´ÐÐÊÂÎñ£¬Concel£ºÊÍ·Å×ÊÔ´Èý¸ö½×¶Î£¬ÈçÏÂͼËùʾ£º

ÆäÖУ¬»î¶¯¹ÜÀíÆ÷¼Ç¼ÁËÈ«¾ÖÊÂÎñµÄÍÆ½ø×´Ì¬ÒÔ¼°¸÷×ÓÊÂÎñµÄÖ´ÐÐ״̬£¬¸ºÔðÍÆ½ø¸÷¸ö×ÓÊÂÎñ¹²Í¬½øÐÐÌá½»»òÕ߻عö¡£Í¬Ê±¸ºÔðÔÚ×ÓÊÂÎñ´¦Àí³¬Ê±ºó²»Í£ÖØÊÔ£¬ÖØÊÔ²»³É¹¦ºóתÊÖ¹¤´¦Àí£¬ÓÃÒÔ±£Ö¤ÊÂÎñµÄ×îÖÕÒ»ÖÂÐÔ¡£

Ô­Àí

ÿ¸ö×ӽڵ㣬ҪʵÏÖ TCC ½Ó¿Ú£¬²ÅÄܱ»¹ÜÀí¡£

Óŵ㣺²»ÒÀÀµ local transaction£¬¿ÉÒÔ¹ÜÀí·Ç¹ØÏµÊý¾Ý¿â¿âµÄ·þÎñ

ȱµã£ºTCC ģʽ¶àÔö¼ÓÁËÒ»¸ö״̬£¬µ¼ÖÂÔÚÒµÎñ¿ª·¢¹ý³ÌÖУ¬¸´ÔÓ¶ÈÉÏÉý£¬¶øÇÒЭµ÷Æ÷Óë×ÓÊÂÎñµÄͨÐŹý³ÌÔö¼Ó£¬×´Ì¬ÂÖת´¦ÀíÒ²¸üΪ¸´ÔÓ¡£¶øÇÒ£¬ºÜ¶àÒµÎñÊÇÎÞ·¨²¹³¥µÄ£¬ÀýÈçÒøÐп¨³äÖµ¡£

ʵÏÖ¿ò¼Ü

tx-lcn LCN distributed transaction framework, compatible with dubbo, spring cloud and Motan framework, supports various relational databases https://www.txlcn.org

»òÕß Seata MT ģʽ

´úÂëʾÀý

txlcn-demo

ʵÏÖ³äÖµÐèÇó

ÐèÒª°Ñ Oder.done ºÍ Account µÄÓà¶î+ ²Ù×÷¶¼ÊµÏÖ tcc ½Ó¿Ú

¿ÉÒÔ¿´³ö£¬ÕâÑùÕæµÄºÜÂé·³£¬ÄÜÓñ¾µØÊÂÎñµÄ»¹ÊǾ¡Á¿Óñ¾µØÊÂÎñ°É

ʵÏÖ3 ÊÂÎñÏûÏ¢

½éÉÜ

ÒÔ¹ºÎﳡ¾°ÎªÀý£¬ÕÅÈý¹ºÂòÎïÆ·£¬ÕË»§¿Û¿î 100 ÔªµÄͬʱ£¬ÐèÒª±£Ö¤ÔÚÏÂÓεĻáÔ±·þÎñÖиø¸ÃÕË»§Ôö¼Ó 100 »ý·Ö¡£ÓÉÓÚÊý¾Ý¿â˽ÓУ¬ËùÒÔµ¼ÖÂÔÚʵ¼ÊµÄ²Ù×÷¹ý³ÌÖлá³öÏֺܶàÎÊÌ⣬±ÈÈçÏÈ·¢ËÍÏûÏ¢£¬¿ÉÄÜ»áÒòΪ¿Û¿îʧ°Üµ¼ÖÂÕË»§»ý·ÖÎÞ¹ÊÔö¼Ó£¬Èç¹ûÏÈÖ´ÐпۿÔòÓпÉÄÜÒò·þÎñå´»ú£¬µ¼Ö»ý·Ö²»ÄÜÔö¼Ó£¬ÎÞÂÛÊÇÏÈ·¢ÏûÏ¢»¹ÊÇÏÈÖ´Ðб¾µØÊÂÎñ£¬¶¼ÓпÉÄܵ¼Ö³öÏÖÊý¾Ý²»Ò»ÖµĽá¹û¡£

ÊÂÎñÏûÏ¢µÄ±¾ÖʾÍÊÇΪÁ˽â¾ö´ËÀàÎÊÌ⣬½â¾ö±¾µØÊÂÎñÖ´ÐÐÓëÏûÏ¢·¢Ë͵ÄÔ­×ÓÐÔÎÊÌâ¡£

ʵÏÖ¿ò¼Ü

Apache RocketMQ? is an open source distributed messaging and streaming data platform.

Ô­Àí

ÊÂÎñ·¢Æð·½Ê×ÏÈ·¢ËÍ prepare ÏûÏ¢µ½ MQ¡£

ÔÚ·¢ËÍ prepare ÏûÏ¢³É¹¦ºóÖ´Ðб¾µØÊÂÎñ¡£

¸ù¾Ý±¾µØÊÂÎñÖ´Ðнá¹û·µ»Ø commit »òÕßÊÇ rollback¡£

Èç¹ûÏûÏ¢ÊÇ rollback£¬MQ ½«É¾³ý¸Ã prepare ÏûÏ¢²»½øÐÐÏ·¢£¬Èç¹ûÊÇ commit ÏûÏ¢£¬MQ ½«»á°ÑÕâ¸öÏûÏ¢·¢Ë͸ø consumer ¶Ë¡£

Èç¹ûÖ´Ðб¾µØÊÂÎñ¹ý³ÌÖУ¬Ö´Ðж˹ҵô£¬»òÕß³¬Ê±£¬MQ ½«»á²»Í£µÄѯÎÊÆäͬ×éµÄÆäËü producer À´»ñȡ״̬¡£

Consumer ¶ËµÄÏû·Ñ³É¹¦»úÖÆÓÐ MQ ±£Ö¤¡£

Óŵ㣺¶ÔÒì²½²Ù×÷Ö§³ÖÓѺÃ

ȱµã£ºProducer ¶ËҪΪ RMQ ʵÏÖÊÂÎñ²éѯ½Ó¿Ú£¬µ¼ÖÂÔÚÒµÎñ¿ª·¢¹ý³ÌÖУ¬¸´ÔÓ¶ÈÉÏÉý¡£

´úÂëʾÀý

// TODO

ʵÏÖ³äÖµÐèÇó

ͨ¹ý MQ£¬À´±£ÕÏ Order ºÍ Acount µÄÁ½¸ö²Ù×÷ҪôһÆð³É¹¦£¬ÒªÃ´Ò»Æðʧ°Ü¡£

×¢ÒâÒ»¸öµã£¬¼ÙÉè Account µÄÓà¶î+ʧ°ÜÁË£¬ÕâÀïÊÇÎÞ·¨»Ø¹ö Order µÄ²Ù×÷µÄ£¬Account Òª±£Ö¤×Ô¼ºÄÜÕýÈ·´¦ÀíÏûÏ¢¡£

ʵÏÖ4 ±¾µØÏûÏ¢±í

½éÉÜ & Ô­Àí

·Ö²¼Ê½ÊÂÎñ=Aϵͳ±¾µØÊÂÎñ + Bϵͳ±¾µØÊÂÎñ + ÏûϢ֪ͨ;

×¼±¸:

Aϵͳά»¤Ò»ÕÅÏûÏ¢±ílog1,״̬ΪδִÐÐ,

Bϵͳά»¤2Õűí,

δÍê³É±ílog2,

ÒÑÍê³É±ílog3,

ÏûÏ¢Öмä¼þÓÃÁ½¸ötopic,

topic1ÊÇAϵͳ֪ͨBÒªÖ´ÐÐÈÎÎñÁË,

topic2ÊÇBϵͳ֪ͨAÒѾ­Íê³ÉÈÎÎñÁË,

Óû§ÔÚAϵͳÀïÁìÈ¡ÓÅ»Ýȯ,²¢Íùlog1²åÈëÒ»Ìõ¼Ç¼

Óɶ¨Ê±ÈÎÎñÂÖѯlog1,·¢ÏûÏ¢¸øBϵͳ

BϵͳÊÕµ½ÏûÏ¢ºó,Ïȼì²éÊÇ·ñÔÚlog3ÖÐÖ´ÐйýÕâÌõÏûÏ¢,ûÓеϰ²åÈëlog2±í,²¢½øÐз¢¶ÌÐÅ,·¢Ëͳɹ¦ºóɾ³ýlog2µÄ¼Ç¼,²åÈëlog3

Bϵͳ·¢ÏûÏ¢¸øAϵͳ

Aϵͳ¸ù¾Ýidɾ³ýÕâ¸öÏûÏ¢

¼ÙÉè³öÏÖÍøÂçÖжϺÍϵͳ Crash µÈÎÊÌâʱ£¬ÎªÁ˼ÌÐøÖ´ÐÐÊÂÎñ£¬ÐèÒª½øÐÐÖØÊÔ¡£ÖØÊÔ·½Ê½ÓУº

¶¨Ê±ÈÎÎñ»Ö¸´ÊÂÎñµÄÖ´ÐУ¬

ʹÓà MQ À´´«µÝÏûÏ¢£¬MQ¿ÉÒÔ±£Ö¤ÏûÏ¢±»ÕýÈ·Ïû·Ñ¡£

Óŵ㣺¼òµ¥

ȱµã£º³ÌÐò»á³öÏÖÖ´Ðе½Ò»°ëµÄ״̬£¬ÖØÊÔÔòÒªÇóÿ¸ö²Ù×÷ÐèҪʵÏÖÃݵÈÐÔ

×¢Ò⣺·Ö²¼Ê½ÏµÍ³ÊµÏÖÃݵÈÐÔµÄʱºò£¬¼ÇµÃʹÓ÷ֲ¼Ê½Ëø£¬·Ö²¼Ê½ËøÏêϸ½éÉܼûÎÄÄ©²Î¿¼ÎÄÕÂ

ʵÏÖ³äÖµÐèÇó

ͨ¹ýÏûÏ¢±í£¬°Ñ¶Ï¿ªµÄÊÂÎñ¼ÌÐøÖ´ÐÐÏÂÈ¥¡£

ʵÏÖ5 ¿¼À­µÄ·½°¸

½éÉÜ & Ô­Àí

¿¼À­µÄ·½°¸£¬¾ÍÊÇʹÓñ¾µØÏûÏ¢±í£¬µ«ÊÇÉÙÁËÁ½¸öÖØÒª×é¼þ£¨MQ ºÍ ¹ØÏµÐÍÊý¾Ý¿â£©£¬Ð´ÆðÀ´»¹ÊDZȽÏÐÁ¿àµÄ¡£

¿¼À­·½°¸ÓÐÈçÏÂÌØµã£º

Order ±í³Ðµ£ÁËÏûÏ¢±í¹¦ÄÜ

·þÎñÖ®¼äʹÓà http ͨÐÅ£¬ËùÒÔÅöµ½ÎÊÌâÒªÒÀÀµ¶¨Ê±ÈÎÎñ·¢²¼²¹µ¥ÖØÊÔ

ûÓÐʹÓùØÏµÐÍÊý¾Ý¿â£¬ÃݵÈÐÔµÄʵÏֱȽÏÀ§ÄÑ¡£

ʵÏÖ³äÖµÐèÇó

Äѵã:

ʵÏÖÃݵÈÐÔµÄÒªÇóÌ«¸ß£¬»ù±¾ÒªÇóËùÓвÙ×÷¶¼ÐèҪʵÏÖÃݵÈÐÔ,ÀýÈç¸üÐÂÓà¶î²Ù×÷£¬Òª¸ßЧ¸üУ¬¼òµ¥µÄ°ì·¨ÊÇʹÓÃÀÖ¹ÛËø£¬µ«ÊÇҪͬʱ¼æ¹ËÃݵÈÐԵϰ£¬ÀÖ¹ÛËø¾Í²»¹»ÓÃÁË¡£

³ÌÐòÔÚÈÎÒ»Ò»²½¶Ï¿ª£¬¶¼ÐèÒªÖØÐÂÔËÐÐÆðÀ´£¬²¹µ¥³ÌÐò»áºÜÄÑд£¨¼òµ¥µÄÒµÎñ»¹ºÃ£¬¸´ÔÓÒµÎñ¾Í»á»ìÂÒÁË£©

¸Ä½ø½¨Ò飺

·þÎñÖ±½ÓʹÓà mq ͨÐÅ£¬·þÎñÒì³£ÐèÒªÖØÊÔÏû·Ñ¡£

ʹÓùØÏµÐÍÊý¾Ý¿â£¬Í¨¹ý±¾µØÊÂÎñ£¬¿ÉÒÔÖ»³ÌÐò¿ªÊ¼´¦ÅжÏÖØ¸´£¬¼ò»¯ÃݵÈÐÔµÄʵÏÖÂß¼­

ʵ¼ÊÉϾÍÊÇÍùÉÏÒ»¸öʵÏÖ4ÉÏ×ß¡£

×ܽá

ÎÒÃÇÏȶÔÕâЩʵÏÖ·½°¸½øÐÐÒ»¸ö×ܽ᣺

¸÷¸ö·½°¸ÓÐ×Ô¼ºµÄÓÅÁÓ£¬Êµ¼ÊʹÓùý³ÌÖУ¬ÎÒÃÇ»¹ÊÇÐèÒª¸ù¾ÝÇé¿öÀ´Ñ¡Ôñ²»Í¬ÊÂÎñ·½°¸À´Áé»î×éºÏ¡£

ÀýÈç´æÔÚ·þÎñÄ£¿éA ¡¢B¡¢ C¡£AÄ£¿éÊÇmysql×÷ΪÊý¾ÝÔ´µÄ·þÎñ£¬BÄ£¿éÊÇ»ùÓÚredis×÷ΪÊý¾ÝÔ´µÄ·þÎñ£¬CÄ£¿éÊÇ»ùÓÚmongo×÷ΪÊý¾ÝÔ´µÄ·þÎñ¡£ÈôÐèÒª½â¾öËûÃǵÄÊÂÎñÒ»ÖÂÐÔ¾ÍÐèÒªÕë¶Ô²»Í¬µÄ½Úµã²ÉÓò»Í¬µÄ·½°¸£¬²¢ÇÒͳһЭµ÷Íê³É·Ö²¼Ê½ÊÂÎñµÄ´¦Àí¡£

·½°¸£º½«AÄ£¿é²ÉÓà Seata ģʽ¡¢B/C²ÉÓÃTCCģʽ¾ÍÄÜÍêÃÀ½â¾ö¡£

 

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

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

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

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