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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
·Ö²¼Ê½ÊÂÎñ½â¾ö·½°¸¿ò¼Ü£¨LCN£©

 
  3469  次浏览      31
 2019-9-27
 
±à¼­ÍƼö:

±¾ÎÄÀ´×ÔÓÚ¼òÊ飬±¾ÕÂÖ÷Òª½éÉÜÁË·Ö²¼Ê½ÊÂÎï¸ÅÄîÓë·Ö²¼Ê½ÊÂÎï²úÉúÔ­Òò£¬ÒÔ¼°·Ö²¼Ê½ÊÂÎïÀíÂÛ֪ʶºÍ½â¾ö·½°¸£¬Ï£Íû¶ÔÄúµÄѧϰÓÐËù°ïÖú¡£

ÊÂÎï¸ÅÄî

ÊÂÎïÌØÐÔ(ACID)

Ô­×ÓÐÔ£¨A£©

ËùνµÄÔ­×ÓÐÔ¾ÍÊÇ˵£¬ÔÚÕû¸öÊÂÎñÖеÄËùÓвÙ×÷£¬ÒªÃ´È«²¿Íê³É£¬ÒªÃ´È«²¿²»×ö£¬Ã»ÓÐÖмä״̬¡£¶ÔÓÚÊÂÎñÔÚÖ´ÐÐÖз¢Éú´íÎó£¬ËùÓеIJÙ×÷¶¼»á±»»Ø¹ö£¬Õû¸öÊÂÎñ¾ÍÏñ´Óû±»Ö´ÐйýÒ»Ñù¡£

Ò»ÖÂÐÔ£¨C£©

ÊÂÎñµÄÖ´ÐбØÐ뱣֤ϵͳµÄÒ»ÖÂÐÔ£¬¾ÍÄÃתÕËΪÀý£¬AÓÐ500Ôª£¬BÓÐ300Ôª£¬Èç¹ûÔÚÒ»¸öÊÂÎñÀïA³É¹¦×ª¸øB50Ôª£¬ÄÇô²»¹Ü²¢·¢¶àÉÙ£¬²»¹Ü·¢Éúʲô£¬Ö»ÒªÊÂÎñÖ´Ðгɹ¦ÁË£¬ÄÇô×îºóAÕË»§Ò»¶¨ÊÇ450Ôª£¬BÕË»§Ò»¶¨ÊÇ350Ôª¡£

¸ôÀëÐÔ£¨I£©

ËùνµÄ¸ôÀëÐÔ¾ÍÊÇ˵£¬ÊÂÎñÓëÊÂÎñÖ®¼ä²»»á»¥ÏàÓ°Ï죬һ¸öÊÂÎñµÄÖмä״̬²»»á±»ÆäËûÊÂÎñ¸ÐÖª¡£

³Ö¾ÃÐÔ£¨D£©

ËùνµÄ³Ö¾ÃÐÔ£¬¾ÍÊÇ˵һµ¥ÊÂÎñÍê³ÉÁË£¬ÄÇôÊÂÎñ¶ÔÊý¾ÝËù×öµÄ±ä¸ü¾ÍÍêÈ«±£´æÔÚÁËÊý¾Ý¿âÖУ¬¼´Ê¹·¢ÉúÍ£µç£¬ÏµÍ³å´»úÒ²ÊÇÈç´Ë¡£

ÕâÖÖÌØÐÔ ¼ò³Æ ¸ÕÐÔÊÂÎï

·Ö²¼Ê½ÊÂÎï

·Ö²¼Ê½ÊÂÎï²úÉúÔ­Òò

·Ö²¼Ê½ÊÂÎï²úÉúµÄÔ­Òò

·Ö²¼Ê½ÊÂÎñ²úÉúµÄ³¡¾°

ÔÚ·Ö²¼Ê½ÏµÍ³£¬¶¼»á´¹Ö±²ð·ÖÊý¾Ý¿â£¬·ÖΪ֧¸¶Êý¾Ý¿â¡¢¶©µ¥Êý¾Ý¿â¡¢»ý·ÖÊý¾Ý¿â¡¢ÓÅ»ÝÈ«Êý¾Ý¿âµÈ£¬ÒµÎñ×é³É£¬·ÖΪ¶à¸öÊý¾ÝÔ´£¬»á²úÉú·Ö²¼Ê½ÊÂÎïÎÊÌâ¡£

springÊÂÎñºÍ·Ö²¼Ê½ÊÂÎñµÄÇø±ðÊÇʲô

springÊÂÎñ£¬±¾µØÊÂÎñ

·Ö²¼Ê½ÊÂÎñÊÇ¿ç·þÎñ¼äµÄͨѶ£¨²»Í¬µÄÊý¾Ý¿âÁ¬½Ó£©

·Ö²¼Ê½ÀíÂÛ֪ʶ

CPAÀíÂÛ

CAPÓÉEric BrewerÔÚ2000ÄêPODC»áÒéÉÏÌá³ö[1][2]£¬ÊÇEric BrewerÔÚInktomi[3]ÆÚ¼äÑз¢ËÑË÷ÒýÇæ¡¢·Ö²¼Ê½web»º´æÊ±µÃ³öµÄ¹ØÓÚÊý¾ÝÒ»ÖÂÐÔ(consistency)¡¢·þÎñ¿ÉÓÃÐÔ(availability)¡¢·ÖÇøÈÝ´íÐÔ(partition-tolerance)µÄ²ÂÏ룺

Êý¾ÝÒ»ÖÂÐÔ(consistency)£ºÈç¹ûϵͳ¶ÔÒ»¸öд²Ù×÷·µ»Ø³É¹¦£¬ÄÇô֮ºóµÄ¶ÁÇëÇó¶¼±ØÐë¶Áµ½Õâ¸öÐÂÊý¾Ý£»Èç¹û·µ»ØÊ§°Ü£¬ÄÇôËùÓжÁ²Ù×÷¶¼²»ÄܶÁµ½Õâ¸öÊý¾Ý£¬¶Ôµ÷ÓÃÕß¶øÑÔÊý¾Ý¾ßÓÐǿһÖÂÐÔ(strong consistency) (ÓÖ½ÐÔ­×ÓÐÔ atomic¡¢ÏßÐÔÒ»ÖÂÐÔ linearizable consistency)[5]

·þÎñ¿ÉÓÃÐÔ(availability)£ºËùÓжÁдÇëÇóÔÚÒ»¶¨Ê±¼äÄڵõ½ÏìÓ¦£¬¿ÉÖÕÖ¹¡¢²»»áÒ»Ö±µÈ´ý

·ÖÇøÈÝ´íÐÔ(partition-tolerance)£ºÔÚÍøÂç·ÖÇøµÄÇé¿öÏ£¬±»·Ö¸ôµÄ½ÚµãÈÔÄÜÕý³£¶ÔÍâ·þÎñ

BaseÀíÂÛ

BASEÀíÂÛÊÇÖ¸£¬Basically Available£¨»ù±¾¿ÉÓã©¡¢Soft-state£¨ Èí״̬/ÈáÐÔÊÂÎñ£©¡¢Eventual Consistency£¨×îÖÕÒ»ÖÂÐÔ£©¡£ÊÇ»ùÓÚCAP¶¨ÀíÑÝ»¯¶øÀ´£¬ÊǶÔCAPÖÐÒ»ÖÂÐԺͿÉÓÃÐÔȨºâµÄ½á¹û¡£ºËÐÄ˼Ï룺¼´Ê¹ÎÞ·¨×öµ½Ç¿Ò»ÖÂÐÔ£¬µ«Ã¿¸öÒµÎñ¸ù¾Ý×ÔÉíµÄÌØµã£¬²ÉÓÃÊʵ±µÄ·½Ê½À´Ê¹ÏµÍ³´ïµ½×îÖÕÒ»ÖÂÐÔ¡£

1¡¢»ù±¾¿ÉÓãºÖ¸·Ö²¼Ê½ÏµÍ³ÔÚ³öÏÖ¹ÊÕϵÄʱºò£¬ÔÊÐíËðʧ²¿·Ö¿ÉÓÃÐÔ£¬±£Ö¤ºËÐÄ¿ÉÓᣵ«²»µÈ¼ÛÓÚ²»¿ÉÓᣱÈÈ磺ËÑË÷ÒýÇæ0.5Ãë·µ»Ø²éѯ½á¹û£¬µ«ÓÉÓÚ¹ÊÕÏ£¬2ÃëÏìÓ¦²éѯ½á¹û£»ÍøÒ³·ÃÎʹý´óʱ£¬²¿·ÖÓû§Ìṩ½µ¼¶·þÎñ£¬µÈ¡£

2¡¢Èí״̬£ºÈí״̬ÊÇÖ¸ÔÊÐíϵͳ´æÔÚÖмä״̬£¬²¢ÇÒ¸ÃÖмä״̬²»»áÓ°ÏìϵͳÕûÌå¿ÉÓÃÐÔ¡£¼´ÔÊÐíϵͳÔÚ²»Í¬½Úµã¼ä¸±±¾Í¬²½µÄʱºò´æÔÚÑÓʱ¡£

3¡¢×îÖÕÒ»ÖÂÐÔ£º

ϵͳÖеÄËùÓÐÊý¾Ý¸±±¾¾­¹ýÒ»¶¨Ê±¼äºó£¬×îÖÕÄܹ»´ïµ½Ò»ÖµÄ״̬£¬²»ÐèҪʵʱ±£Ö¤ÏµÍ³Êý¾ÝµÄǿһÖÂÐÔ¡£×îÖÕÒ»ÖÂÐÔÊÇÈõÒ»ÖÂÐÔµÄÒ»ÖÖÌØÊâÇé¿ö¡£BASEÀíÂÛÃæÏòµÄÊÇ´óÐ͸߿ÉÓÿÉÀ©Õ¹µÄ·Ö²¼Ê½ÏµÍ³£¬Í¨¹ýÎþÉüǿһÖÂÐÔÀ´»ñµÃ¿ÉÓÃÐÔ¡£ACIDÊÇ´«Í³Êý¾Ý¿â³£ÓõĸÅÄîÉè¼Æ£¬×·ÇóǿһÖÂÐÔÄ£ÐÍ¡£

ACID£¬Ö¸Êý¾Ý¿âÊÂÎñÕýÈ·Ö´ÐеÄËĸö»ù±¾ÒªËصÄËõд¡£°üº¬£ºÔ­×ÓÐÔ£¨Atomicity£©¡¢Ò»ÖÂÐÔ£¨Consistency£©¡¢¸ôÀëÐÔ£¨Isolation£©¡¢³Ö¾ÃÐÔ£¨Durability£©¡£

ÈáÐÔÊÂÎñºÍ¸ÕÐÔÊÂÎñ

ÈáÐÔÊÂÎñÂú×ãBASEÀíÂÛ£¨»ù±¾¿ÉÓã¬×îÖÕÒ»Ö£©

¸ÕÐÔÊÂÎñÂú×ãACIDÀíÂÛ

±¾ÎÄÖ÷ÒªÎ§ÈÆ·Ö²¼Ê½ÊÂÎñµ±ÖеÄÈáÐÔÊÂÎñµÄ´¦Àí·½Ê½½øÐÐÌÖÂÛ¡£

ÈáÐÔÊÂÎñ·ÖΪ

1.Á½½×¶ÎÐÍ

2.²¹³¥ÐÍ

3.Ò첽ȷ±£ÐÍ

4.×î´óŬÁ¦Í¨ÖªÐͼ¸ÖÖ¡£ ÓÉÓÚÖ§¸¶±¦Õû¸ö¼Ü¹¹ÊÇSOA¼Ü¹¹£¬Òò´Ë´«Í³µ¥»ú»·¾³ÏÂÊý¾Ý¿âµÄACIDÊÂÎñÂú×ãÁË·Ö²¼Ê½»·¾³ÏµÄÒµÎñÐèÒª£¬ÒÔÉϼ¸ÖÖÊÂÎñÀàËÆ¾ÍÊÇÕë¶Ô·Ö²¼Ê½»·¾³ÏÂÒµÎñÐèÒªÉ趨µÄ¡£

ʲôÊÇXA½Ó¿Ú

XAÊÇÒ»¸ö·Ö²¼Ê½ÊÂÎñЭÒ飬ÓÉTuxedoÌá³ö¡£XAÖдóÖ·ÖΪÁ½²¿·Ö£ºÊÂÎñ¹ÜÀíÆ÷ºÍ±¾µØ×ÊÔ´¹ÜÀíÆ÷¡£ÆäÖб¾µØ×ÊÔ´¹ÜÀíÆ÷ÍùÍùÓÉÊý¾Ý¿âʵÏÖ£¬±ÈÈçOracle¡¢DB2ÕâЩÉÌÒµÊý¾Ý¿â¶¼ÊµÏÖÁËXA½Ó¿Ú£¬¶øÊÂÎñ¹ÜÀíÆ÷×÷Ϊȫ¾ÖµÄµ÷¶ÈÕߣ¬¸ºÔð¸÷¸ö±¾µØ×ÊÔ´µÄÌá½»ºÍ»Ø¹ö¡£XAʵÏÖ·Ö²¼Ê½ÊÂÎñµÄÔ­ÀíÈçÏ£º

ʲôÊÇJta

×÷Ϊjavaƽ̨ÉÏÊÂÎñ¹æ·¶JTA£¨Java Transaction API£©Ò²¶¨ÒåÁ˶ÔXAÊÂÎñµÄÖ§³Ö£¬Êµ¼ÊÉÏ£¬JTAÊÇ»ùÓÚXA¼Ü¹¹ÉϽ¨Ä£µÄ£¬ÔÚJTA ÖУ¬ÊÂÎñ¹ÜÀíÆ÷³éÏóΪjavax.transaction.TransactionManager½Ó¿Ú£¬²¢Í¨¹ýµ×²ãÊÂÎñ·þÎñ£¨¼´JTS£©ÊµÏÖ¡£ÏñºÜ¶àÆäËûµÄjava¹æ·¶Ò»Ñù£¬JTA½ö½ö¶¨ÒåÁ˽ӿڣ¬¾ßÌåµÄʵÏÖÔòÊÇÓɹ©Ó¦ÉÌ(ÈçJ2EE³§ÉÌ)¸ºÔðÌṩ£¬Ä¿Ç°JTAµÄʵÏÖÖ÷ÒªÓÉÒÔϼ¸ÖÖ£º

1.J2EEÈÝÆ÷ËùÌṩµÄJTAʵÏÖ(JBoss)

2.¶ÀÁ¢µÄJTAʵÏÖ:ÈçJOTM£¬Atomikos.ÕâЩʵÏÖ¿ÉÒÔÓ¦ÓÃÔÚÄÇЩ²»Ê¹ÓÃJ2EEÓ¦Ó÷þÎñÆ÷µÄ»·¾³ÀïÓÃÒÔÌṩ·Ö²¼ÊÂÊÂÎñ±£Ö¤¡£ÈçTomcat,JettyÒÔ¼°ÆÕͨµÄjavaÓ¦Óá£

»ùÓÚXAЭÒéµÄÁ½½×¶Î£¨2PC£©Ìá½»

ËùνµÄÁ½¸ö½×¶ÎÊÇÖ¸£ºµÚÒ»½×¶Î£º×¼±¸½×¶Î(ͶƱ½×¶Î)ºÍµÚ¶þ½×¶Î£ºÌá½»½×¶Î£¨Ö´Ðн׶Σ©¡£

XAÒ»°ãÓÉÁ½½×¶ÎÍê³É£¬³ÆÎªtwo-phase commit(2PC)¡£

½×¶ÎһΪ׼±¸½×¶Î£¬¼´ËùÓеIJÎÓëÕß×¼±¸Ö´ÐÐÊÂÎñ²¢Ëø×¡ÐèÒªµÄ×ÊÔ´¡£²ÎÓëÕßreadyʱ£¬Ïòtransaction manager»ã±¨×Ô¼ºÒѾ­×¼±¸ºÃ¡£

½×¶Î¶þΪÌá½»½×¶Î¡£µ±transaction managerÈ·ÈÏËùÓвÎÓëÕß¶¼readyºó£¬ÏòËùÓвÎÓëÕß·¢ËÍcommitÃüÁî¡£

ÈçÏÂͼËùʾ£º

XAµÄÐÔÄÜÎÊÌâ

XAµÄÐÔÄܺܵ͡£Ò»¸öÊý¾Ý¿âµÄÊÂÎñºÍ¶à¸öÊý¾Ý¿â¼äµÄXAÊÂÎñÐÔÄܶԱȿɷ¢ÏÖ£¬ÐÔÄܲî10±¶×óÓÒ¡£Òò´ËÒª¾¡Á¿±ÜÃâXAÊÂÎñ£¬ÀýÈç¿ÉÒÔ½«Êý¾ÝдÈë±¾µØ£¬ÓøßÐÔÄܵÄÏûϢϵͳ·Ö·¢Êý¾Ý¡£»òʹÓÃÊý¾Ý¿â¸´ÖƵȼ¼Êõ¡£

Ö»ÓÐÔÚÕâЩ¶¼ÎÞ·¨ÊµÏÖ£¬ÇÒÐÔÄܲ»ÊÇÆ¿¾±Ê±²ÅÓ¦¸ÃʹÓÃXA¡£

·Ö²¼Ê½ÊÂÎï½â¾ö·½°¸

·Ö²¼Ê½ÊÂÎïÎÊÌ⣬ÔÚ»¥ÁªÍø¹«Ë¾±È½Ï³£¼û£¬ÀýÈç¡°¡±·Ö²¼Ê½ÊÂÎï½â¾ö·½°¸ ¿ÉÒÔʹÓÃÈ«¾ÖÊÂÎï2pc£¨Á½¶ÎÌύЭÒ飩¡¢3pc(Èý¶ÎÌύЭÒé)£¬ÏûÏ¢Öмä¼þ¡¢tcc¡¢gts¡¢Ìṩ»Ø¹ö½Ó¿Ú¡¢·Ö²¼Ê½Êý¾Ý¿â

2PCºÍ3PCÇø±ð£º

LCN ºËÐIJÉÓÃ3PC+TCC²¹³¥»úÖÆ

ʹÓÃLCN¿ò¼Ü½â¾ö·Ö²¼Ê½ÊÂÎñ

ʲôÊÇLCN¿ò¼Ü

LCN·Ö²¼Ê½ÊÂÎñ¿ò¼Üv4.0 https://www.txlcn.org

"LCN²¢²»Éú²úÊÂÎñ£¬LCNÖ»ÊDZ¾µØÊÂÎñµÄ°áÔ˹¤"

¿ò¼ÜÌØµã

¼æÈÝSpringCloud¡¢Dubbo

ʹÓüòµ¥£¬µÍÒÀÀµ£¬´úÂëÍêÈ«¿ªÔ´

»ùÓÚÇÐÃæµÄǿһÖÂÐÔÊÂÎñ¿ò¼Ü

¸ß¿ÉÓã¬Ä£¿é¿ÉÒÔÒÀÀµDubbo»òSpringCloudµÄ¼¯Èº·½Ê½×ö¼¯Èº»¯£¬TxManagerÒ²¿ÉÒÔ×ö¼¯Èº»¯

Ö§³Ö±¾µØÊÂÎñºÍ·Ö²¼Ê½ÊÂÎñ¹²´æ

ÊÂÎñ²¹³¥»úÖÆ£¬·þÎñ¹ÊÕÏ»ò¹Ò»úÔÙÆô¶¯Ê±¿É»Ö¸´ÊÂÎñ

LCN¿ò¼ÜÔ­Àí

lcn¿ò¼ÜÔ­Àí

ºËÐIJ½Öè

´´½¨ÊÂÎñ×é ÊÇÖ¸ÔÚÊÂÎñ·¢Æð·½¿ªÊ¼Ö´ÐÐÒµÎñ´úÂë֮ǰÏȵ÷ÓÃTxManager´´½¨ÊÂÎñ×é¶ÔÏó£¬È»ºóÄõ½ÊÂÎñ±êʾGroupIdµÄ¹ý³Ì¡£

Ìí¼ÓÊÂÎñ×é Ìí¼ÓÊÂÎñ×éÊÇÖ¸²ÎÓë·½ÔÚÖ´ÐÐÍêÒµÎñ·½·¨ÒԺ󣬽«¸ÃÄ£¿éµÄÊÂÎñÐÅÏ¢Ìí¼Ó֪ͨ¸øTxManagerµÄ²Ù×÷¡£

¹Ø±ÕÊÂÎñ×é ÊÇÖ¸ÔÚ·¢Æð·½Ö´ÐÐÍêÒµÎñ´úÂëÒԺ󣬽«·¢Æð·½Ö´Ðнá¹û״̬֪ͨ¸øTxManagerµÄ¶¯×÷¡£µ±Ö´ÐÐÍê¹Ø±ÕÊÂÎñ×éµÄ·½·¨ÒÔºó£¬TxManager½«¸ù¾ÝÊÂÎñ×éÐÅÏ¢À´Í¨ÖªÏàÓ¦µÄ²ÎÓëÄ£¿éÌá½»»ò»Ø¹öÊÂÎñ¡£

 

   
3469 ´Îä¯ÀÀ       31
Ïà¹ØÎÄÕÂ

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

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

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