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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
±£Ö¤·Ö²¼Ê½ÏµÍ³Êý¾ÝÒ»ÖÂÐÔµÄ6ÖÖ·½°¸
 
×÷Õߣºonyas À´Ô´£º²©¿Í ·¢²¼ÓÚ 2016-11-4
  4244  次浏览      27
 

ÎÊÌâµÄÆðÔ´

ÔÚµçÉ̵ÈÒµÎñÖУ¬ÏµÍ³Ò»°ãÓɶà¸ö¶ÀÁ¢µÄ·þÎñ×é³É£¬ÈçºÎ½â¾ö·Ö²¼Ê½µ÷ÓÃʱºòÊý¾ÝµÄÒ»ÖÂÐÔ£¿

¾ßÌåÒµÎñ³¡¾°ÈçÏ£¬±ÈÈçÒ»¸öÒµÎñ²Ù×÷£¬Èç¹ûͬʱµ÷Ó÷þÎñ A¡¢B¡¢C£¬ÐèÒªÂú×ãҪôͬʱ³É¹¦£»ÒªÃ´Í¬Ê±Ê§°Ü¡£A¡¢B¡¢C ¿ÉÄÜÊǶà¸ö²»Í¬²¿ÃÅ¿ª·¢¡¢²¿ÊðÔÚ²»Í¬·þÎñÆ÷ÉϵÄÔ¶³Ì·þÎñ¡£

ÔÚ·Ö²¼Ê½ÏµÍ³À´Ëµ£¬Èç¹û²»ÏëÎþÉüÒ»ÖÂÐÔ£¬CAP ÀíÂÛ¸æËßÎÒÃÇÖ»ÄÜ·ÅÆú¿ÉÓÃÐÔ£¬ÕâÏÔÈ»²»ÄܽÓÊÜ¡£ÎªÁ˱ãÓÚÌÖÂÛÎÊÌ⣬Ïȼòµ¥½éÉÜÏÂÊý¾ÝÒ»ÖÂÐԵĻù´¡ÀíÂÛ¡£

ǿһÖÂ

µ±¸üвÙ×÷Íê³ÉÖ®ºó£¬Èκζà¸öºóÐø½ø³Ì»òÕßÏ̵߳ķÃÎʶ¼»á·µ»Ø×îеĸüйýµÄÖµ¡£ÕâÖÖÊǶÔÓû§×îÓѺõ쬾ÍÊÇÓû§ÉÏÒ»´Îдʲô£¬ÏÂÒ»´Î¾Í±£Ö¤ÄܶÁµ½Ê²Ã´¡£¸ù¾Ý CAP ÀíÂÛ£¬ÕâÖÖʵÏÖÐèÒªÎþÉü¿ÉÓÃÐÔ¡£

ÈõÒ»ÖÂÐÔ

ϵͳ²¢²»±£Ö¤Ðø½ø³Ì»òÕßÏ̵߳ķÃÎʶ¼»á·µ»Ø×îеĸüйýµÄÖµ¡£ÏµÍ³ÔÚÊý¾ÝдÈë³É¹¦Ö®ºó£¬²»³ÐŵÁ¢¼´¿ÉÒÔ¶Áµ½×îÐÂдÈëµÄÖµ£¬Ò²²»»á¾ßÌåµÄ³Ðŵ¶à¾ÃÖ®ºó¿ÉÒÔ¶Áµ½¡£

×îÖÕÒ»ÖÂÐÔ

ÈõÒ»ÖÂÐÔµÄÌØ¶¨ÐÎʽ¡£ÏµÍ³±£Ö¤ÔÚûÓкóÐø¸üеÄǰÌáÏ£¬ÏµÍ³×îÖÕ·µ»ØÉÏÒ»´Î¸üвÙ×÷µÄÖµ¡£ÔÚûÓйÊÕÏ·¢ÉúµÄǰÌáÏ£¬²»Ò»Ö´°¿ÚµÄʱ¼äÖ÷ÒªÊÜͨÐÅÑÓ³Ù£¬ÏµÍ³¸ºÔغ͸´ÖƸ±±¾µÄ¸öÊýÓ°Ïì¡£DNS ÊÇÒ»¸öµäÐ͵Ä×îÖÕÒ»ÖÂÐÔϵͳ¡£

ÔÚ¹¤³Ìʵ¼ùÉÏ£¬ÎªÁ˱£ÕÏϵͳµÄ¿ÉÓÃÐÔ£¬»¥ÁªÍøÏµÍ³´ó¶à½«Ç¿Ò»ÖÂÐÔÐèÇóת»»³É×îÖÕÒ»ÖÂÐÔµÄÐèÇ󣬲¢Í¨¹ýϵͳִÐÐÃݵÈÐԵı£Ö¤£¬±£Ö¤Êý¾ÝµÄ×îÖÕÒ»ÖÂÐÔ¡£µ«ÔÚµçÉ̵ȳ¡¾°ÖУ¬¶ÔÓÚÊý¾ÝÒ»ÖÂÐԵĽâ¾ö·½·¨ºÍ³£¼ûµÄ»¥ÁªÍøÏµÍ³£¨Èç MySQL Ö÷´Óͬ²½£©ÓÖÓÐÒ»¶¨Çø±ð£¬ÈºÓѵÄÌÖÂÛ·Ö³ÉÒÔÏ 6 ÖÖ½â¾ö·½°¸¡£

1. ¹æ±Ü·Ö²¼Ê½ÊÂÎñ¡ª¡ªÒµÎñÕûºÏ

ÒµÎñÕûºÏ·½°¸Ö÷Òª²ÉÓý«½Ó¿ÚÕûºÏµ½±¾µØÖ´Ðеķ½·¨¡£ÄÃÎÊÌⳡ¾°À´Ëµ£¬Ôò¿ÉÒÔ½«·þÎñ A¡¢B¡¢C ÕûºÏΪһ¸ö·þÎñ D ¸øÒµÎñ£¬Õâ¸ö·þÎñ D ÔÙͨ¹ýת»»Îª±¾µØÊÂÎñµÄ·½Ê½£¬±ÈÈç·þÎñ D °üº¬±¾µØ·þÎñºÍ·þÎñ E£¬¶ø·þÎñ E ÊDZ¾µØ·þÎñ A ~ C µÄÕûºÏ¡£

Óŵ㣺½â¾ö£¨¹æ±Ü£©ÁË·Ö²¼Ê½ÊÂÎñ¡£

ȱµã£ºÏÔ¶øÒ×¼û£¬°Ñ±¾À´¹æ»®²ð·ÖºÃµÄÒµÎñ£¬ÓÖñîºÏµ½ÁËÒ»Æð£¬ÒµÎñÖ°Ôð²»ÇåÎú£¬²»ÀûÓÚά»¤¡£

ÓÉÓÚÕâ¸ö·½·¨´æÔÚÃ÷ÏÔȱµã£¬Í¨³£²»½¨ÒéʹÓá£

2. ¾­µä·½°¸ - eBay ģʽ

´Ë·½°¸µÄºËÐÄÊǽ«ÐèÒª·Ö²¼Ê½´¦ÀíµÄÈÎÎñͨ¹ýÏûÏ¢ÈÕÖ¾µÄ·½Ê½À´Òì²½Ö´ÐС£ÏûÏ¢ÈÕÖ¾¿ÉÒÔ´æ´¢µ½±¾µØÎı¾¡¢Êý¾Ý¿â»òÏûÏ¢¶ÓÁУ¬ÔÙͨ¹ýÒµÎñ¹æÔò×Ô¶¯»òÈ˹¤·¢ÆðÖØÊÔ¡£È˹¤ÖØÊÔ¸ü¶àµÄÊÇÓ¦ÓÃÓÚÖ§¸¶³¡¾°£¬Í¨¹ý¶ÔÕËϵͳ¶ÔʺóÎÊÌâµÄ´¦Àí¡£

ÏûÏ¢ÈÕÖ¾·½°¸µÄºËÐÄÊDZ£Ö¤·þÎñ½Ó¿ÚµÄÃݵÈÐÔ¡£

¿¼Âǵ½ÍøÂçͨѶʧ°Ü¡¢Êý¾Ý¶ª°üµÈÔ­Òò£¬Èç¹û½Ó¿Ú²»Äܱ£Ö¤ÃݵÈÐÔ£¬Êý¾ÝµÄΨһÐÔ½«ºÜÄѱ£Ö¤¡£

eBay ·½Ê½µÄÖ÷Ҫ˼·ÈçÏ¡£

Base£ºÒ»ÖÖ Acid µÄÌæ´ú·½°¸

´Ë·½°¸ÊÇ eBay µÄ¼Ü¹¹Ê¦ Dan Pritchett ÔÚ 2008 Äê·¢±í¸ø ACM µÄÎÄÕ£¬ÊÇһƪ½âÊÍ BASE Ô­Ôò£¬»òÕß˵×îÖÕÒ»ÖÂÐԵľ­µäÎÄÕ¡£ÎÄÖÐÌÖÂÛÁË BASE Óë ACID Ô­ÔòÔÚ±£Ö¤Êý¾ÝÒ»ÖÂÐԵĻù±¾²îÒì¡£

Èç¹û ACID Ϊ·ÖÇøµÄÊý¾Ý¿âÌṩһÖÂÐÔµÄÑ¡Ôñ£¬ÄÇôÈçºÎʵÏÖ¿ÉÓÃÐÔÄØ£¿´ð°¸ÊÇ

BASE (basically available, soft state, eventually consistent)

BASE µÄ¿ÉÓÃÐÔÊÇͨ¹ýÖ§³Ö¾Ö²¿¹ÊÕ϶ø²»ÊÇϵͳȫ¾Ö¹ÊÕÏÀ´ÊµÏֵġ£ÏÂÃæÊÇÒ»¸ö¼òµ¥µÄÀý×Ó£ºÈç¹û½«Óû§·ÖÇøÔÚ 5 ¸öÊý¾Ý¿â·þÎñÆ÷ÉÏ£¬BASE Éè¼Æ¹ÄÀøÀàËÆµÄ´¦Àí·½Ê½£¬Ò»¸öÓû§Êý¾Ý¿âµÄ¹ÊÕÏÖ»Ó°ÏìÕâÌ¨ÌØ¶¨Ö÷»úÄÇ 20% µÄÓû§¡£ÕâÀï²»Éæ¼°ÈκÎħ·¨£¬²»¹ýËüȷʵ¿ÉÒÔ´øÀ´¸ü¸ßµÄ¿É¸ÐÖªµÄϵͳ¿ÉÓÃÐÔ¡£

ÎÄÕÂÖÐÃèÊöÁËÒ»¸ö×î³£¼ûµÄ³¡¾°£¬Èç¹û²úÉúÁËÒ»±Ê½»Ò×£¬ÐèÒªÔÚ½»Ò×±íÔö¼Ó¼Ç¼£¬Í¬Ê±»¹ÒªÐÞ¸ÄÓû§±íµÄ½ð¶î¡£ÕâÁ½¸ö±íÊôÓÚ²»Í¬µÄÔ¶³Ì·þÎñ£¬ËùÒÔ¾ÍÉæ¼°µ½·Ö²¼Ê½ÊÂÎñÒ»ÖÂÐÔµÄÎÊÌâ¡£

ÎÄÖÐÌá³öÁËÒ»¸ö¾­µäµÄ½â¾ö·½·¨£¬½«Ö÷ÒªÐ޸IJÙ×÷ÒÔ¼°¸üÐÂÓû§±íµÄÏûÏ¢·ÅÔÚÒ»¸ö±¾µØÊÂÎñÀ´Íê³É¡£Í¬Ê±ÎªÁ˱ÜÃâÖØ¸´Ïû·ÑÓû§±íÏûÏ¢´øÀ´µÄÎÊÌ⣬´ïµ½¶à´ÎÖØÊÔµÄÃݵÈÐÔ£¬Ôö¼ÓÒ»¸ö¸üмǼ±í updates_applied À´¼Ç¼ÒѾ­´¦Àí¹ýµÄÏûÏ¢¡£

ϵͳµÄÖ´ÐÐα´úÂëÈçÏÂ

»ùÓÚÒÔÉÏ·½·¨£¬ÔÚµÚÒ»½×¶Î£¬Í¨¹ý±¾µØµÄÊý¾Ý¿âµÄÊÂÎñ±£ÕÏ£¬Ôö¼ÓÁË transaction ±í¼°ÏûÏ¢¶ÓÁÐ ¡£

ÔÚµÚ¶þ½×¶Î£¬·Ö±ð¶Á³öÏûÏ¢¶ÓÁУ¨µ«²»É¾³ý£©£¬Í¨¹ýÅжϸüмǼ±í updates_applied À´¼ì²âÏà¹Ø¼Ç¼ÊÇ·ñ±»Ö´ÐУ¬Î´±»Ö´ÐеļǼ»áÐÞ¸Ä user ±í£¬È»ºóÔö¼ÓÒ»Ìõ²Ù×÷¼Ç¼µ½ updates_applied£¬ÊÂÎñÖ´Ðгɹ¦Ö®ºóÔÙɾ³ý¶ÓÁС£

ͨ¹ýÒÔÉÏ·½·¨£¬´ïµ½ÁË·Ö²¼Ê½ÏµÍ³µÄ×îÖÕÒ»ÖÂÐÔ¡£½øÒ»²½Á˽â eBay µÄ·½°¸¿ÉÒԲο¼ÎÄÄ©Á´½Ó¡£

3. È¥ÄĶùÍø·Ö²¼Ê½ÊÂÎñ·½°¸

Ëæ×ÅÒµÎñ¹æÄ£²»¶ÏµØÀ©´ó£¬µçÉÌÍøÕ¾Ò»°ã¶¼ÒªÃæÁÙ²ð·Ö֮·¡£¾ÍÊǽ«Ô­À´Ò»¸öµ¥ÌåÓ¦Óòð·Ö³É¶à¸ö²»Í¬Ö°ÔðµÄ×Óϵͳ¡£±ÈÈçÒÔǰ¿ÉÄܽ«ÃæÏòÓû§¡¢¿Í»§ºÍÔËÓªµÄ¹¦Äܶ¼·ÅÔÚÒ»¸öϵͳÀÏÖÔÚ²ð·ÖΪ¶©µ¥ÖÐÐÄ¡¢´úÀíÉ̹ÜÀí¡¢ÔËӪϵͳ¡¢±¨¼ÛÖÐÐÄ¡¢¿â´æ¹ÜÀíµÈ¶à¸ö×Óϵͳ¡£

²ð·ÖÊ×ÏÈÒªÃæÁÙµÄÊÇÊ²Ã´ÄØ£¿

×ʼµÄµ¥ÌåÓ¦ÓÃËùÓй¦Äܶ¼ÔÚÒ»Æð£¬´æ´¢Ò²ÔÚÒ»Æð¡£±ÈÈçÔËӪҪȡÏûij¸ö¶©µ¥£¬ÄÇÖ±½ÓÈ¥¸üж©µ¥±í״̬£¬È»ºó¸üÐÂ¿â´æ±í¾Í ok ÁË¡£ÒòΪÊǵ¥ÌåÓ¦Ó㬿âÔÚÒ»Æð£¬ÕâЩ¶¼¿ÉÒÔÔÚÒ»¸öÊÂÎñÀÓɹØÏµÊý¾Ý¿âÀ´±£Ö¤Ò»ÖÂÐÔ¡£

µ«²ð·ÖÖ®ºó¾Í²»Í¬ÁË£¬²»Í¬µÄ×Óϵͳ¶¼ÓÐ×Ô¼ºµÄ´æ´¢¡£±ÈÈç¶©µ¥ÖÐÐľÍÖ»¹ÜÀí×Ô¼ºµÄ¶©µ¥¿â£¬¶ø¿â´æ¹ÜÀíÒ²ÓÐ×Ô¼ºµÄ¿â¡£ÄÇôÔËӪϵͳȡÏû¶©µ¥µÄʱºò¾ÍÊÇͨ¹ý½Ó¿Úµ÷Óõȷ½Ê½À´µ÷Óö©µ¥ÖÐÐÄºÍ¿â´æ¹ÜÀíµÄ·þÎñÁË£¬¶ø²»ÊÇÖ±½ÓÈ¥²Ù×÷¿â¡£Õâ¾ÍÉæ¼°Ò»¸ö¡º·Ö²¼Ê½ÊÂÎñ¡»µÄÎÊÌâ¡£

·Ö²¼Ê½ÊÂÎñÓÐÁ½ÖÖ½â¾ö·½Ê½

1. ÓÅÏÈʹÓÃÒì²½ÏûÏ¢¡£

ÉÏÎÄÒѾ­Ëµ¹ý£¬Ê¹ÓÃÒì²½ÏûÏ¢ Consumer ¶ËÐèҪʵÏÖÃݵȡ£

ÃݵÈÓÐÁ½ÖÖ·½Ê½£¬Ò»ÖÖ·½Ê½ÊÇÒµÎñÂß¼­±£Ö¤Ãݵȡ£±ÈÈç½Óµ½Ö§¸¶³É¹¦µÄÏûÏ¢¶©µ¥×´Ì¬±ä³ÉÖ§¸¶Íê³É£¬Èç¹ûµ±Ç°×´Ì¬ÊÇÖ§¸¶Íê³É£¬ÔòÔÙÊÕµ½Ò»¸öÖ§¸¶³É¹¦µÄÏûÏ¢Ôò˵Ã÷ÏûÏ¢ÖØ¸´ÁË£¬Ö±½Ó×÷ΪÏûÏ¢³É¹¦´¦Àí¡£

ÁíÍâÒ»ÖÖ·½Ê½Èç¹ûÒµÎñÂß¼­ÎÞ·¨±£Ö¤Ãݵȣ¬ÔòÒªÔö¼ÓÒ»¸öÈ¥ÖØ±í»òÕßÀàËÆµÄʵÏÖ¡£¶ÔÓÚ producer ¶ËÔÚÒµÎñÊý¾Ý¿âµÄͬʵÀýÉÏ·ÅÒ»¸öÏûÏ¢¿â£¬·¢ÏûÏ¢ºÍÒµÎñ²Ù×÷ÔÚͬһ¸ö±¾µØÊÂÎñÀï¡£·¢ÏûÏ¢µÄʱºòÏûÏ¢²¢²»Á¢¼´·¢³ö£¬¶øÊÇÏòÏûÏ¢¿â²åÈëÒ»ÌõÏûÏ¢¼Ç¼£¬È»ºóÔÚÊÂÎñÌá½»µÄʱºòÔÙÒì²½½«ÏûÏ¢·¢³ö£¬·¢ËÍÏûÏ¢Èç¹û³É¹¦Ôò½«ÏûÏ¢¿âÀïµÄÏûϢɾ³ý£¬Èç¹ûÓöµ½ÏûÏ¢¶ÓÁзþÎñÒì³£»òÍøÂçÎÊÌ⣬ÏûϢûÓгɹ¦·¢³öÄÇôÏûÏ¢¾ÍÁôÔÚÕâÀïÁË£¬»áÓÐÁíÍâÒ»¸ö·þÎñ²»¶ÏµØ½«ÕâЩÏûϢɨ³öÖØÐ·¢ËÍ¡£

2. ÓеÄÒµÎñ²»ÊʺÏÒì²½ÏûÏ¢µÄ·½Ê½£¬ÊÂÎñµÄ¸÷¸ö²ÎÓë·½¶¼ÐèҪͬ²½µÄµÃµ½½á¹û¡£ÕâÖÖÇé¿öµÄʵÏÖ·½Ê½ÆäʵºÍÉÏÃæÀàËÆ£¬Ã¿¸ö²ÎÓë·½µÄ±¾µØÒµÎñ¿âµÄͬʵÀýÉÏÃæ·ÅÒ»¸öÊÂÎñ¼Ç¼¿â¡£

±ÈÈç A ͬ²½µ÷Óà B£¬C¡£A ±¾µØÊÂÎñ³É¹¦µÄʱºò¸üб¾µØÊÂÎñ¼Ç¼״̬£¬B ºÍ C ͬÑù¡£Èç¹ûÓÐÒ»´Î A µ÷Óà B ʧ°ÜÁË£¬Õâ¸öʧ°Ü¿ÉÄÜÊÇ B ÕæµÄʧ°ÜÁË£¬Ò²¿ÉÄÜÊǵ÷Óó¬Ê±£¬Êµ¼Ê B ³É¹¦¡£ÔòÓÉÒ»¸öÖÐÐÄ·þÎñ¶Ô±ÈÈý·½µÄÊÂÎñ¼Ç¼±í£¬×öÒ»¸ö×îÖÕ¾ö¶¨¡£¼ÙÉèÏÖÔÚÈý·½µÄÊÂÎñ¼Ç¼ÊÇ A ³É¹¦£¬B ʧ°Ü£¬C ³É¹¦¡£ÄÇô×îÖÕ¾ö¶¨ÓÐÁ½ÖÖ·½Ê½£¬¸ù¾Ý¾ßÌ峡¾°£º

ÖØÊÔ B£¬Ö±µ½ B ³É¹¦£¬ÊÂÎñ¼Ç¼±íÀï¼Ç¼Á˸÷Ïîµ÷ÓòÎÊýµÈÐÅÏ¢£»

Ö´ÐÐ A ºÍ B µÄ²¹³¥²Ù×÷(Ò»ÖÖ¿ÉÐеIJ¹³¥·½Ê½Êǻعö)¡£

¶Ô b ³¡¾°×öÒ»¸öÌØÊâ˵Ã÷£º±ÈÈç B ÊÇ¿Û¿â´æ·þÎñ£¬ÔÚµÚÒ»´Îµ÷ÓõÄʱºòÒòΪijÖÖÔ­Òòʧ°ÜÁË£¬µ«ÊÇÖØÊÔµÄʱºò¿â´æÒѾ­±äΪ 0£¬ÎÞ·¨ÖØÊԳɹ¦£¬Õâ¸öʱºòÖ»Óлعö A ºÍ C ÁË¡£

ÄÇô¿ÉÄÜÓÐÈ˾õµÃÔÚÒµÎñ¿âµÄͬʵÀýÀï·ÅÏûÏ¢¿â»òÊÂÎñ¼Ç¼¿â£¬»á¶ÔÒµÎñÇÖÈ룬ҵÎñ»¹Òª¹ØÐÄÕâ¸ö¿â£¬ÊÇ·ñÒ»¸öºÏÀíµÄÉè¼Æ£¿

ʵ¼ÊÉÏ¿ÉÒÔÒÀ¿¿ÔËάµÄÊÖ¶ÎÀ´¼ò»¯¿ª·¢µÄÇÖÈ룬ÎÒÃǵķ½·¨ÊÇÈà DBA ÔÚ¹«Ë¾ËùÓÐ MySQL ʵÀýÉÏÔ¤³õʼ»¯Õâ¸ö¿â£¬Í¨¹ý¿ò¼Ü²ã£¨ÏûÏ¢µÄ¿Í»§¶Ë»òÊÂÎñ RPC ¿ò¼Ü£©Í¸Ã÷µÄÔÚ±³ºó²Ù×÷Õâ¸ö¿â£¬ÒµÎñ¿ª·¢ÈËÔ±Ö»ÐèÒª¹ØÐÄ×Ô¼ºµÄÒµÎñÂß¼­£¬²»ÐèÒªÖ±½Ó·ÃÎÊÕâ¸ö¿â¡£

×ܽáÆðÀ´£¬ÆäʵÁ½ÖÖ·½Ê½µÄ¸ù±¾Ô­ÀíÊÇÀàËÆµÄ£¬Ò²¾ÍÊǽ«·Ö²¼Ê½ÊÂÎñת»»Îª¶à¸ö±¾µØÊÂÎñ£¬È»ºóÒÀ¿¿ÖØÊԵȷ½Ê½´ïµ½×îÖÕÒ»ÖÂÐÔ¡£

4. Ä¢¹½½Ö½»Ò×´´½¨¹ý³ÌÖеķֲ¼Ê½Ò»ÖÂÐÔ·½°¸

½»Ò×´´½¨µÄÒ»°ãÐÔÁ÷³Ì

ÎÒÃǰѽ»Ò×´´½¨Á÷³Ì³éÏó³öһϵÁпÉÀ©Õ¹µÄ¹¦Äܵ㣬ÿ¸ö¹¦Äܵ㶼¿ÉÒÔÓжà¸öʵÏÖ£¨¾ßÌåµÄʵÏÖÖ®¼äÓÐ×éºÏ/»¥³â¹ØÏµ£©¡£°Ñ¸÷¸ö¹¦Äܵ㰴ÕÕÒ»¶¨Á÷³Ì´®ÆðÀ´£¬¾ÍÍê³ÉÁ˽»Ò×´´½¨µÄ¹ý³Ì¡£

ÃæÁÙµÄÎÊÌâ

ÿ¸ö¹¦ÄܵãµÄʵÏÖ¶¼¿ÉÄÜ»áÒÀÀµÍⲿ·þÎñ¡£ÄÇôÈçºÎ±£Ö¤¸÷¸ö·þÎñÖ®¼äµÄÊý¾ÝÊÇÒ»ÖµÄÄØ£¿±ÈÈçËø¶¨ÓÅ»Ýȯ·þÎñµ÷Óó¬Ê±ÁË£¬²»ÄÜÈ·¶¨µ½µ×ÓÐûÓÐËøÈ¯³É¹¦£¬¸ÃÈçºÎ´¦Àí£¿ÔÙ±ÈÈçËøÈ¯³É¹¦ÁË£¬µ«Êǿۼõ¿â´æÊ§°ÜÁË£¬¸ÃÈçºÎ´¦Àí£¿

·½°¸Ñ¡ÐÍ

·þÎñÒÀÀµ¹ý¶à£¬»á´øÀ´¹ÜÀí¸´ÔÓÐÔÔö¼ÓºÍÎȶ¨ÐÔ·çÏÕÔö´óµÄÎÊÌâ¡£ÊÔÏëÈç¹ûÎÒÃÇÇ¿ÒÀÀµ 10 ¸ö·þÎñ£¬9 ¸ö¶¼Ö´Ðгɹ¦ÁË£¬×îºóÒ»¸öÖ´ÐÐʧ°ÜÁË£¬ÄÇôÊDz»ÊÇÇ°Ãæ 9 ¸ö¶¼Òª»Ø¹öµô£¿Õâ¸ö³É±¾»¹ÊǷdz£¸ßµÄ¡£

ËùÒÔÔÚ²ð·Ö´óµÄÁ÷³ÌΪ¶à¸öСµÄ±¾µØÊÂÎñµÄǰÌáÏ£¬¶ÔÓÚ·Çʵʱ¡¢·ÇǿһÖÂÐԵĹØÁªÒµÎñдÈ룬ÔÚ±¾µØÊÂÎñÖ´Ðгɹ¦ºó£¬ÎÒÃÇÑ¡Ôñ·¢ÏûϢ֪ͨ¡¢¹ØÁªÊÂÎñÒì²½»¯Ö´Ðеķ½°¸¡£

ÏûϢ֪ͨÍùÍù²»Äܱ£Ö¤ 100% ³É¹¦£»ÇÒÏûϢ֪ͨºó£¬½ÓÊÕ·½ÒµÎñÊÇ·ñÄÜÖ´Ðгɹ¦»¹ÊÇδ֪Êý¡£Ç°ÕßÎÊÌâ¿ÉÒÔͨ¹ýÖØÊÔ½â¾ö£»ºóÕß¿ÉÒÔÑ¡ÓÃÊÂÎñÏûÏ¢À´±£Ö¤¡£

µ«ÊÇÊÂÎñÏûÏ¢¿ò¼Ü±¾Éí»á¸øÒµÎñ´úÂë´øÀ´ÇÖÈëÐԺ͸´ÔÓÐÔ£¬ËùÒÔÎÒÃÇÑ¡Ôñ»ùÓÚ DB ʼþ±ä»¯Í¨Öªµ½ MQ µÄ·½Ê½×öϵͳ¼ä½âñͨ¹ý¶©ÔÄ·½Ïû·Ñ MQ ÏûϢʱµÄ ACK »úÖÆ£¬±£Ö¤ÏûÏ¢Ò»¶¨Ïû·Ñ³É¹¦£¬´ïµ½×îÖÕÒ»ÖÂÐÔ¡£ÓÉÓÚÏûÏ¢¿ÉÄÜ»á±»ÖØ·¢£¬ÏûÏ¢¶©ÔÄ·½ÒµÎñÂß¼­´¦ÀíÒª×öºÃÃݵȱ£Ö¤¡£

ËùÒÔĿǰֻʣÏÂÐèҪʵʱͬ²½×ö¡¢ÓÐǿһÖÂÐÔÒªÇóµÄÒµÎñ³¡¾°ÁË¡£ÔÚ½»Ò×´´½¨¹ý³ÌÖУ¬ËøÈ¯ºÍ¿Û¼õ¿â´æÊÇÕâÑùµÄÁ½¸öµäÐͳ¡¾°¡£

Òª±£Ö¤¶à¸öϵͳ¼äÊý¾ÝÒ»Ö£¬Õ§Ò»¿´£¬±ØÐëÒªÒýÈë·Ö²¼Ê½ÊÂÎñ¿ò¼Ü²ÅÄܽâ¾ö¡£µ«ÒýÈë·Ç³£ÖصÄÀàËÆ¶þ½×¶ÎÌá½»·Ö²¼Ê½ÊÂÎñ¿ò¼Ü»á´øÀ´¸´ÔÓÐԵļ±¾çÉÏÉý£»ÔÚµçÉÌÁìÓò£¬¾ø¶ÔµÄǿһÖÂÊǹýÓÚÀíÏ뻯µÄ£¬ÎÒÃÇ¿ÉÒÔÑ¡Ôñ׼ʵʱµÄ×îÖÕÒ»ÖÂÐÔ¡£

ÎÒÃÇÔÚ½»Ò×´´½¨Á÷³ÌÖУ¬Ê×ÏÈ´´½¨Ò»¸ö²»¿É¼û¶©µ¥£¬È»ºóÔÚͬ²½µ÷ÓÃËøÈ¯ºÍ¿Û¼õ¿â´æÊ±£¬Õë¶Ôµ÷ÓÃÒì³££¨Ê§°Ü»òÕß³¬Ê±£©£¬·¢³ö·Ïµ¥ÏûÏ¢µ½MQ¡£Èç¹ûÏûÏ¢·¢ËÍʧ°Ü£¬±¾µØ»á×öʱ¼ä½×ÌÝʽµÄÒì²½ÖØÊÔ£»ÓÅ»ÝȯϵͳºÍ¿â´æÏµÍ³ÊÕµ½ÏûÏ¢ºó£¬»á½øÐÐÅжÏÊÇ·ñÐèÒª×öÒµÎñ»Ø¹ö£¬ÕâÑù¾Í׼ʵʱµØ±£Ö¤Á˶à¸ö±¾µØÊÂÎñµÄ×îÖÕÒ»ÖÂÐÔ¡£

5. Ö§¸¶±¦¼°ÂìÒϽðÈÚÔÆµÄ·Ö²¼Ê½·þÎñ DTS ·½°¸

Òµ½ç³£ÓõϹÓÐÖ§¸¶±¦µÄÒ»ÖÖ xts ·½°¸£¬ÓÉÖ§¸¶±¦ÔÚ 2PC µÄ»ù´¡ÉϸĽø¶øÀ´¡£Ö÷Ҫ˼·ÈçÏ£¬´ó²¿·ÖÐÅÏ¢ÒýÓÃ×Ô¹Ù·½ÍøÕ¾¡£

·Ö²¼Ê½ÊÂÎñ·þÎñ¼ò½é

·Ö²¼Ê½ÊÂÎñ·þÎñ (Distributed Transaction Service, DTS) ÊÇÒ»¸ö·Ö²¼Ê½ÊÂÎñ¿ò¼Ü£¬ÓÃÀ´±£ÕÏÔÚ´ó¹æÄ£·Ö²¼Ê½»·¾³ÏÂÊÂÎñµÄ×îÖÕÒ»ÖÂÐÔ¡£DTS ´Ó¼Ü¹¹ÉÏ·ÖΪ xts-client ºÍ xts-server Á½²¿·Ö£¬Ç°ÕßÊÇÒ»¸öǶÈë¿Í»§¶ËÓ¦ÓÃµÄ JAR °ü£¬Ö÷Òª¸ºÔðÊÂÎñÊý¾ÝµÄдÈëºÍ´¦Àí£»ºóÕßÊÇÒ»¸ö¶ÀÁ¢µÄϵͳ£¬Ö÷Òª¸ºÔðÒì³£ÊÂÎñµÄ»Ö¸´¡£

ºËÐÄÌØÐÔ

´«Í³¹ØÏµÐÍÊý¾Ý¿âµÄÊÂÎñÄ£ÐͱØÐë×ñÊØ ACID Ô­Ôò¡£ÔÚµ¥Êý¾Ý¿âģʽÏ£¬ACID Ä£ÐÍÄÜÓÐЧ±£ÕÏÊý¾ÝµÄÍêÕûÐÔ£¬µ«ÊÇÔÚ´ó¹æÄ£·Ö²¼Ê½»·¾³Ï£¬Ò»¸öÒµÎñÍùÍù»á¿çÔ½¶à¸öÊý¾Ý¿â£¬ÈçºÎ±£Ö¤Õâ¶à¸öÊý¾Ý¿âÖ®¼äµÄÊý¾ÝÒ»ÖÂÐÔ£¬ÐèÒªÆäËûÐÐÖ®ÓÐЧµÄ²ßÂÔ¡£ÔÚ JavaEE ¹æ·¶ÖÐʹÓà 2PC (2 Phase Commit, Á½½×¶ÎÌá½») À´´¦Àí¿ç DB »·¾³ÏµÄÊÂÎñÎÊÌ⣬µ«ÊÇ 2PC ÊÇ·´¿ÉÉìËõģʽ£¬Ò²¾ÍÊÇ˵£¬ÔÚÊÂÎñ´¦Àí¹ý³ÌÖУ¬²ÎÓëÕßÐèÒªÒ»Ö±³ÖÓÐ×ÊÔ´Ö±µ½Õû¸ö·Ö²¼Ê½ÊÂÎñ½áÊø¡£ÕâÑù£¬µ±ÒµÎñ¹æÄ£´ïµ½Ç§Íò¼¶ÒÔÉÏʱ£¬2PC µÄ¾ÖÏÞÐÔ¾ÍÔ½À´Ô½Ã÷ÏÔ£¬ÏµÍ³¿ÉÉìËõÐÔ»á±äµÃºÜ²î¡£»ùÓÚ´Ë£¬ÎÒÃDzÉÓà BASE µÄ˼ÏëʵÏÖÁËÒ»Ì×ÀàËÆ 2PC µÄ·Ö²¼Ê½ÊÂÎñ·½°¸£¬Õâ¾ÍÊÇ DTS¡£DTSÔÚ³ä·Ö±£ÕÏ·Ö²¼Ê½»·¾³Ï¸߿ÉÓÃÐÔ¡¢¸ß¿É¿¿ÐÔµÄͬʱ¼æ¹ËÊý¾ÝÒ»ÖÂÐÔµÄÒªÇ󣬯ä×î´óµÄÌØµãÊDZ£Ö¤Êý¾Ý×îÖÕÒ»Ö (Eventually consistent)¡£

¼òµ¥µÄ˵£¬DTS ¿ò¼ÜÓÐÈçÏÂÌØÐÔ£º

×îÖÕÒ»Ö£ºÊÂÎñ´¦Àí¹ý³ÌÖУ¬»áÓжÌÔݲ»Ò»ÖµÄÇé¿ö£¬µ«Í¨¹ý»Ö¸´ÏµÍ³£¬¿ÉÒÔÈÃÊÂÎñµÄÊý¾Ý´ïµ½×îÖÕÒ»ÖµÄÄ¿±ê¡£

ЭÒé¼òµ¥£ºDTS ¶¨ÒåÁËÀàËÆ 2PC µÄ±ê×¼Á½½×¶Î½Ó¿Ú£¬ÒµÎñϵͳֻÐèҪʵÏÖ¶ÔÓ¦µÄ½Ó¿Ú¾Í¿ÉÒÔʹÓà DTS µÄÊÂÎñ¹¦ÄÜ¡£

Óë RPC ·þÎñЭÒéÎ޹أºÔÚ SOA ¼Ü¹¹Ï£¬Ò»¸ö»ò¶à¸ö DB ²Ù×÷ÍùÍù±»°ü×°³ÉÒ»¸öÒ»¸öµÄ Service£¬Service Óë Service Ö®¼äͨ¹ý RPC ЭÒéͨÐÅ¡£DTS ¿ò¼Ü¹¹½¨ÔÚ SOA ¼Ü¹¹ÉÏ£¬Óëµ×²ãЭÒéÎ޹ء£

Óëµ×²ãÊÂÎñʵÏÖÎ޹أº DTS ÊÇÒ»¸ö³éÏóµÄ»ùÓÚ Service ²ãµÄ¸ÅÄÓëµ×²ãÊÂÎñʵÏÖÎ޹أ¬Ò²¾ÍÊÇ˵ÔÚ DTS µÄ·¶Î§ÄÚ£¬ÎÞÂÛÊǹØÏµÐÍÊý¾Ý¿â MySQL£¬Oracle£¬»¹ÊÇ KV ´æ´¢ MemCache£¬»òÕßÁдæÊý¾Ý¿â HBase£¬Ö»Òª½«¶ÔÆäµÄ²Ù×÷°ü×°³É DTS µÄ²ÎÓëÕߣ¬¾Í¿ÉÒÔ½ÓÈëµ½ DTS ÊÂÎñ·¶Î§ÄÚ¡£

ÒÔÏÂÊÇ·Ö²¼Ê½ÊÂÎñ¿ò¼ÜµÄÁ÷³Ìͼ

ʵÏÖ

1.Ò»¸öÍêÕûµÄÒµÎñ»î¶¯ÓÉÒ»¸öÖ÷ÒµÎñ·þÎñÓëÈô¸É´ÓÒµÎñ·þÎñ×é³É¡£

2.Ö÷ÒµÎñ·þÎñ¸ºÔð·¢Æð²¢Íê³ÉÕû¸öÒµÎñ»î¶¯¡£

3.´ÓÒµÎñ·þÎñÌṩ TCC ÐÍÒµÎñ²Ù×÷¡£

ÒµÎñ»î¶¯¹ÜÀíÆ÷¿ØÖÆÒµÎñ»î¶¯µÄÒ»ÖÂÐÔ£¬ËüµÇ¼ÇÒµÎñ»î¶¯ÖеIJÙ×÷£¬²¢ÔڻÌύʱȷÈÏËùÓеÄÁ½½×¶ÎÊÂÎñµÄ confirm ²Ù×÷£¬ÔÚÒµÎñ»î¶¯È¡Ïûʱµ÷ÓÃËùÓÐÁ½½×¶ÎÊÂÎñµÄ cancel ²Ù×÷¡£¡±

Óë 2PC ЭÒé±È½Ï

ûÓе¥¶ÀµÄ Prepare ½×¶Î£¬½µµÍЭÒé³É±¾

ϵͳ¹ÊÕÏÈÝÈ̶ȸߣ¬»Ö¸´¼òµ¥

6. Å©ÐÅÍøÊý¾ÝÒ»ÖÂÐÔ·½°¸

1. µçÉÌÒµÎñ

¹«Ë¾µÄÖ§¸¶²¿ÃÅ£¬Í¨¹ý½ÓÈëÆäËüµÚÈý·½Ö§¸¶ÏµÍ³À´Ìṩ֧¸¶·þÎñ¸øÒµÎñ²¿ÃÅ£¬Ö§¸¶·þÎñÊÇÒ»¸ö»ùÓÚ Dubbo µÄ RPC ·þÎñ¡£

¶ÔÓÚÒµÎñ²¿ÃÅÀ´Ëµ£¬µçÉ̲¿ÃŵĶ©µ¥Ö§¸¶£¬ÐèÒªµ÷ÓÃ

1.Ö§¸¶Æ½Ì¨µÄÖ§¸¶½Ó¿ÚÀ´´¦Àí¶©µ¥£»

2.ͬʱÐèÒªµ÷Óûý·ÖÖÐÐĵĽӿڣ¬°´ÕÕÒµÎñ¹æÔò£¬¸øÓû§Ôö¼Ó»ý·Ö¡£

´ÓÒµÎñ¹æÔòÉÏÐèҪͬʱ±£Ö¤ÒµÎñÊý¾ÝµÄʵʱÐÔºÍÒ»ÖÂÐÔ£¬Ò²¾ÍÊÇÖ§¸¶³É¹¦±ØÐë¼Ó»ý·Ö¡£

ÎÒÃDzÉÓõķ½Ê½ÊÇͬ²½µ÷Óã¬Ê×ÏÈ´¦Àí±¾µØÊÂÎñÒµÎñ¡£¿¼Âǵ½»ý·ÖÒµÎñ±È½Ïµ¥Ò»ÇÒÒµÎñÓ°ÏìµÍÓÚÖ§¸¶£¬ÓÉ»ý·Öƽ̨ÌṩÔö¼ÓÓë»Ø³·½Ó¿Ú¡£

¾ßÌåµÄÁ÷³ÌÊÇÏȵ÷Óûý·Öƽ̨Ôö¼ÓÓû§»ý·Ö£¬ÔÙµ÷ÓÃÖ§¸¶Æ½Ì¨½øÐÐÖ§¸¶´¦Àí£¬Èç¹û´¦Àíʧ°Ü£¬catch ·½·¨µ÷Óûý·Öƽ̨µÄ»Ø³··½·¨£¬½«±¾´Î´¦ÀíµÄ»ý·Ö¶©µ¥»Ø³·¡£

2. Óû§ÐÅÏ¢±ä¸ü

¹«Ë¾µÄÓû§ÐÅÏ¢£¬Í³Ò»ÓÉÓû§ÖÐÐÄά»¤£¬¶øÓû§ÐÅÏ¢µÄ±ä¸üÐèҪͬ²½¸ø¸÷ÒµÎñ×Óϵͳ£¬ÒµÎñ×ÓϵͳÔÙ¸ù¾Ý±ä¸üÄÚÈÝ£¬´¦Àí¸÷×ÔÒµÎñ¡£Óû§ÖÐÐÄ×÷Ϊ MQ µÄ producer£¬Ìí¼Ó֪ͨ¸ø MQ¡£APP Server ¶©ÔĸÃÏûÏ¢£¬Í¬²½±¾µØÊý¾ÝÐÅÏ¢£¬ÔÙ´¦ÀíÏà¹ØÒµÎñ±ÈÈç APP Í˳öÏÂÏߵȡ£

ÎÒÃDzÉÓÃÒì²½ÏûϢ֪ͨ»úÖÆ£¬Ä¿Ç°Ö÷ҪʹÓà ActiveMQ£¬»ùÓÚ Virtual Topic µÄ¶©ÔÄ·½Ê½£¬±£Ö¤µ¥¸öÒµÎñ¼¯Èº¶©Ôĵĵ¥´ÎÏû·Ñ¡£

×ܽá

·Ö²¼Ê½·þÎñ¶ÔÑÜÉúµÄÅäÌ×ϵͳҪÇó±È½Ï¶à£¬ÌرðÊÇÎÒÃÇ»ùÓÚÏûÏ¢¡¢ÈÕÖ¾µÄ×îÖÕÒ»ÖÂÐÔ·½°¸£¬ÐèÒª¿¼ÂÇÏûÏ¢µÄ»ýѹ¡¢Ïû·ÑÇé¿ö¡¢¼à¿Ø¡¢±¨¾¯µÈ¡£

 

   
4244 ´Îä¯ÀÀ       27
Ïà¹ØÎÄÕÂ

»ùÓÚEAµÄÊý¾Ý¿â½¨Ä£
Êý¾ÝÁ÷½¨Ä££¨EAÖ¸ÄÏ£©
¡°Êý¾Ýºþ¡±£º¸ÅÄî¡¢ÌØÕ÷¡¢¼Ü¹¹Óë°¸Àý
ÔÚÏßÉ̳ÇÊý¾Ý¿âϵͳÉè¼Æ ˼·+Ч¹û
 
Ïà¹ØÎĵµ

GreenplumÊý¾Ý¿â»ù´¡Åàѵ
MySQL5.1ÐÔÄÜÓÅ»¯·½°¸
ijµçÉÌÊý¾ÝÖÐ̨¼Ü¹¹Êµ¼ù
MySQL¸ßÀ©Õ¹¼Ü¹¹Éè¼Æ
Ïà¹Ø¿Î³Ì

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

MySQLË÷Òý±³ºóµÄÊý¾Ý½á¹¹
MySQLÐÔÄܵ÷ÓÅÓë¼Ü¹¹Éè¼Æ
SQL ServerÊý¾Ý¿â±¸·ÝÓë»Ö¸´
ÈÃÊý¾Ý¿â·ÉÆðÀ´ 10´óDB2ÓÅ»¯
oracleµÄÁÙʱ±í¿Õ¼äдÂú´ÅÅÌ
Êý¾Ý¿âµÄ¿çƽ̨Éè¼Æ

²¢·¢¡¢´óÈÝÁ¿¡¢¸ßÐÔÄÜÊý¾Ý¿â
¸ß¼¶Êý¾Ý¿â¼Ü¹¹Éè¼ÆÊ¦
HadoopÔ­ÀíÓëʵ¼ù
Oracle Êý¾Ý²Ö¿â
Êý¾Ý²Ö¿âºÍÊý¾ÝÍÚ¾ò
OracleÊý¾Ý¿â¿ª·¢Óë¹ÜÀí

GE Çø¿éÁ´¼¼ÊõÓëʵÏÖÅàѵ
º½Ìì¿Æ¹¤Ä³×Ó¹«Ë¾ Nodejs¸ß¼¶Ó¦Óÿª·¢
ÖÐÊ¢Òæ»ª ׿Խ¹ÜÀíÕß±ØÐë¾ß±¸µÄÎåÏîÄÜÁ¦
ijÐÅÏ¢¼¼Êõ¹«Ë¾ PythonÅàѵ
ij²©²ÊITϵͳ³§ÉÌ Ò×ÓÃÐÔ²âÊÔÓëÆÀ¹À
ÖйúÓÊ´¢ÒøÐÐ ²âÊÔ³ÉÊì¶ÈÄ£Ðͼ¯³É(TMMI)
ÖÐÎïÔº ²úÆ·¾­ÀíÓë²úÆ·¹ÜÀí