±à¼ÍƼö: |
±¾ÎĽéÉÜÁËÏò¶à¸öÊý¾ÝԴе÷дÈë²Ù×÷µÄÖ÷Òª·½Ê½ºÍģʽ
¡£
±¾ÎÄÀ´×ÔÓÚ¹«ÖÚºÅInfoQ¼Ü¹¹Í·Ìõ £¬ÓÉ»ðÁú¹ûÈí¼þLinda±à¼¡¢ÍƼö¡£ |
|
1
Ë«ÖØÐ´ÈëµÄÎÊÌâ
¹ØÓÚÄãÊÇ·ñ»áÃæÁÙË«ÖØÐ´ÈëµÄÎÊÌâÓÐÒ»¸ö¼òµ¥µÄÖ¸±ê£¬ÄǾÍÊÇÔ¤ÆÚÒª²»ÒªÏò¶à¸ö¼Ç¼ϵͳ½øÐÐдÈë²Ù×÷¡£ÕâÑùµÄÐèÇó¿ÉÄܲ¢²»Ã÷ÏÔ£¬ÔÚ·Ö²¼Ê½ÏµÍ³Éè¼ÆµÄ¹ý³ÌÖУ¬Ëü¿ÉÄÜ»áÒÔ²»Í¬µÄ·½Ê½½øÐбíÊö¡£±ÈÈç˵£º
ÄãÒѾΪÿÏ×÷Ñ¡ÔñÁË×î¼Ñ¹¤¾ß£¬ÏÖÔÚÔÚÒ»¸öÒµÎñÊÂÎñÖУ¬Äã±ØÐëÒª¸üÐÂÒ»¸ö NoSQL Êý¾Ý¿â¡¢Ò»¸öËÑË÷Ë÷ÒýºÍÒ»¸ö»º´æ¡£
ÄãËùÉè¼ÆµÄ·þÎñ±ØÐëÒª¸üÐÂ×Ô¼ºµÄÊý¾Ý¿â£¬Í¬Ê±»¹Òª°Ñ±ä¸üÏà¹ØµÄÐÅÏ¢ÒÔ֪ͨµÄÐÎʽ·¢Ë͸øÁíÒ»¸ö·þÎñ¡£
ÄãµÄÒµÎñÊÂÎñ¿çÔ½Á˶à¸ö·þÎñµÄ±ß½ç¡£
Äã¿ÉÄÜÐèÒªÒÔÃݵȵķ½Ê½ÊµÏÖ·þÎñ²Ù×÷£¬ÒòΪ·þÎñµÄÏû·ÑÕß±ØÐëÒªÖØÊÔʧ°ÜµÄµ÷Óá£
ÔÚ±¾ÎÄÖУ¬ÎÒÃǽ«»áʹÓÃÒ»¸öºÜ¼òµ¥µÄʾÀý³¡¾°À´ÆÀ¹ÀÔÚ·Ö²¼Ê½ÊÂÎñÖд¦ÀíË«ÖØÐ´ÈëµÄ¸÷ÖÖ·½·¨¡£ÎÒÃǵij¡¾°ÊÇÒ»¸ö¿Í»§¶ËÓ¦Óã¬Ëü»áÔÚ·¢Éú±ä¸ü²Ù×÷µÄʱºò£¬µ÷ÓÃÒ»¸ö΢·þÎñ¡£·þÎñ
A Òª¸üÐÂ×Ô¼ºµÄÊý¾Ý¿â£¬µ«ÊÇËü»¹Òªµ÷Ó÷þÎñ B ½øÐÐдÈë²Ù×÷£¬Èçͼ 1 Ëùʾ¡£ÖÁÓÚÊý¾Ý¿âµÄʵ¼ÊÀàÐÍÒÔ¼°·þÎñÓë·þÎñÖ®¼ä½øÐн»»¥µÄÐÒ飬ÕâЩ¶ÔÓÚÎÒÃǵÄÌÖÂÛ¶¼Î޹ؽôÒª£¬ÒòΪÎÊÌâ¶¼ÊÇÒ»ÑùµÄ¡£

΢·þÎñÖеÄË«ÖØÐ´ÈëÎÊÌâ
ÎÒÃǼòÒª½âÊÍÒ»ÏÂΪʲôÕâ¸öÎÊÌâûÓмòµ¥µÄ½â¾ö·½°¸¡£Èç¹û·þÎñ A дÈëµ½ÁË×Ô¼ºµÄÊý¾Ý¿â£¬È»ºó·¢ËÍÒ»¸ö֪ͨµ½¶ÓÁÐÖй©·þÎñ
B ʹÓã¨ÎÒÃǽ«ÕâÖÖ·½Ê½³ÆÎª local-commit-then-publish£©£¬ÕâÑùÓ¦ÓÃÒÀÈ»ÓпÉÄÜÎÞ·¨¿É¿¿µØÔËÐС£µ±·þÎñ
A дÈëµ½×Ô¼ºµÄÊý¾Ý¿â£¬È»ºó·¢ËÍÏûÏ¢µ½¶ÓÁÐʱ£¬ÒÀÈ»ÓкÜСµÄ¸ÅÂÊ·¢ÉúÕâÑùµÄÊÂÇ飬¼´Ó¦ÓÃÔÚÌá½»µ½Êý¾Ý¿âºó£¬ÇÒÔÚµÚ¶þ¸ö²Ù×÷֮ǰ£¬·¢ÉúÁ˱ÀÀ££¬ÕâÑùµÄ»°£¬¾Í»áʹϵͳ´¦ÓÚÒ»¸ö²»Ò»ÖµÄ״̬¡£Èç¹ûÏûÏ¢ÔÚдÈëµ½Êý¾Ý¿â֮ǰ·¢Ë͵ϰ£¨ÎÒÃǽ«ÕâÖÖ·½Ê½³ÆÎª
publish-then-local-commit£©£¬ÓпÉÄܳöÏÖÊý¾Ý¿âдÈëʧ°Ü£¬»òÕß·þÎñ B ½ÓÊÕµ½Ê¼þµÄʱºò£¬·þÎñ
A »¹Ã»ÓÐÌá½»µ½Êý¾Ý¿â£¬Õâ»á³öÏÖʱЧÐÔÎÊÌâ¡£²»¹ÜÊdzöÏÖÄÄÖÖÇé¿ö£¬ÕâÖÖ³¡¾°¶¼»áÉæ¼°µ½¶ÔÊý¾Ý¿âºÍ¶ÓÁеÄË«ÖØÐ´ÈëÎÊÌ⣬Õâ¾ÍÊÇÎÒÃÇҪ̽ÌֵĺËÐÄÎÊÌâ¡£ÔÚÏÂÃæµÄÕ½ÚÖУ¬ÎÒÃǽ«»áÌÖÂÛÕë¶ÔÕâÒ»³¤ÆÚ´æÔÚµÄÌôսĿǰÒÑÓеĸ÷ÖÖ½â¾ö·½°¸¡£
2
Ä£¿é»¯µ¥Ìå
½«Ó¦ÓóÌÐò¿ª·¢ÎªÄ£¿é»¯µ¥Ìå¿´ÆðÀ´ÏñÒ»ÖÖȨÒËÖ®¼Æ£¨hack£©£¬»òÊǼܹ¹ÑÝ»¯µÄÒ»ÖÖµ¹ÍË¡£µ«ÊÇ£¬ÎÒ·¢ÏÖËüÔÚʵ¼ùÖÐÄܹ»ºÜºÃµØÔËÐС£Ëü²»ÊÇÒ»ÖÖ΢·þÎñµÄģʽ£¬¶øÊÇ΢·þÎñ¹æÔòµÄÒ»¸öÀýÍâÇé¿ö£¬Äܹ»·Ç³£ÑϽ÷µØÓë΢·þÎñÏà½áºÏ¡£Èç¹ûǿдÈëÒ»ÖÂÐÔÊÇÇý¶¯ÐÔµÄÐèÇó£¬ÉõÖÁÒª±È¶ÀÁ¢²¿ÊðºÍÀ©Õ¹Î¢·þÎñµÄÄÜÁ¦¸üÖØÒªÊ±£¬ÄÇôÎÒÃǾͿÉÒÔ²ÉÓÃÄ£¿é»¯µ¥ÌåµÄ¼Ü¹¹¡£
²ÉÓõ¥Ìå¼Ü¹¹²¢²»Òâζ×ÅϵͳÉè¼ÆµÃºÜ²î»òÕßÊǼþ»µÊ¡£Ëü²¢²»ËµÃ÷ÈκÎÖÊÁ¿Ïà¹ØµÄÎÊÌâ¡£¹ËÃû˼Ò壬ÕâÊÇÒ»¸ö°´ÕÕÄ£¿é»¯·½Ê½Éè¼ÆµÄϵͳ£¬ËüÖ»ÓÐÒ»¸ö²¿Êðµ¥Ôª¡£ÐèҪעÒ⣬ÕâÊÇÒ»¸ö¾«ÐÄÉè¼ÆºÍʵÏÖµÄÄ£¿é»¯µ¥Ì壬ÕâÓëËæÒâ´´½¨²¢ËæÊ±¼ä¶ø²»¶ÏÔö³¤µÄµ¥ÌåÊDz»Í¬µÄ¡£ÔÚ¾«ÐÄÉè¼ÆµÄÄ£¿é»¯µ¥Ìå¼Ü¹¹ÖУ¬Ã¿¸öÄ£¿é¶¼×ñÑ΢·þÎñµÄÔÔò¡£Ã¿¸öÄ£¿é»á·â×°¶ÔÆäÊý¾ÝµÄËùÓзÃÎÊ£¬µ«ÊDzÙ×÷ÊÇÒÔÄÚ´æ·½·¨µ÷Óõķ½Ê½½øÐб©Â¶ºÍÏû·ÑµÄ¡£
Ä£¿é»¯µ¥ÌåµÄ¼Ü¹¹
Èç¹û²ÉÓÃÕâÖÖ·½Ê½µÄ»°£¬ÎÒÃDZØÐëÒª½«Á½¸ö΢·þÎñ£¨·þÎñ A ºÍ·þÎñ B£©×ª»»³É¿ÉÒÔ²¿Êðµ½¹²ÏíÔËÐÐʱµÄ¿âÄ£¿é£¨library
module£©¡£È»ºó£¬ÈÃÕâÁ½¸ö΢·þÎñ¹²Ïíͬһ¸öÊý¾Ý¿âʵÀý¡£ÒòΪ·þÎñÊÇÔÚÒ»¸öͨÓõÄÔËÐÐÖбàдºÍ²¿ÊðµÄ£¬ËùÒÔËüÃÇ¿ÉÒÔ²ÎÓëÏàͬµÄÊÂÎñ¡£¼øÓÚÕâЩģ¿é¹²Ïíͬһ¸öÊý¾Ý¿âʵÀý£¬ËùÒÔÎÒÃÇ¿ÉÒÔʹÓñ¾µØÊÂÎñÒ»´ÎÐÔµØÌá½»»ò»Ø¹öËùÓеıä¸ü¡£ÔÚ²¿Êð·½·¨·½ÃæÒ²ÓвîÒ죬ÒòΪÎÒÃÇÏ£ÍûÄ£¿éÒÔ¿âµÄ·½Ê½²¿Êðµ½Ò»¸ö¸ü´óµÄ²¿Êðµ¥ÔªÖУ¬²¢²ÎÓëÏÖÓеÄÊÂÎñ¡£
¼´±ãÊÇÔÚµ¥Ìå¼Ü¹¹ÖУ¬Ò²ÓÐһЩ·½Ê½À´¸ôÀë´úÂëºÍÊý¾Ý¡£ÀýÈ磬ÎÒÃÇ¿ÉÒÔ½«Ä£¿é¸ôÀë³Éµ¥¶ÀµÄ°ü¡¢¹¹½¨Ä£¿éºÍÔ´Âë²Ö¿â£¬ÕâЩģ¿é¿ÉÒÔÓɲ»Í¬µÄÍŶÓËùÓµÓС£Í¨¹ý½«±í°´ÕÕÃüÃû¹æÔò¡¢Ä£Ê½¡¢Êý¾Ý¿âʵÀý£¬ÉõÖÁÊý¾Ý¿â·þÎñÆ÷µÄ·½Ê½½øÐзÖ×飬ÎÒÃÇ¿ÉÒÔʵÏÖÊý¾ÝµÄ²¿·Ö¸ôÀ롣ͼ
2 µÄÁé¸ÐÀ´Ô´ÓÚ Axel Fontaine ¹ØÓÚΰ´óµÄÄ£¿é»¯µ¥ÌåµÄÑݽ²£¬Ëü²ûÊöÁËÓ¦ÓÃÖв»Í¬µÄ´úÂëºÍÊý¾Ý¸ôÀë¼¶±ð¡£

Ó¦ÓóÌÐòµÄ´úÂëºÍÊý¾Ý¸ôÀë¼¶±ð
ƴͼµÄ×îºóÒ»¿éÊÇʹÓÃÒ»¸öÔËÐÐʱºÍÒ»¸ö°ü×°Æ÷·þÎñ£¨wrapper service£©£¬¸Ã·þÎñÄܹ»Ïû·ÑÆäËûµÄÄ£¿é²¢½«ÆäÄÉÈëµ½ÏÖÓÐÊÂÎñµÄÉÏÏÂÎÄÖС£ËùÓеÄÕâЩÏÞÖÆÊ¹Ä£¿é±ÈµäÐ͵Ä΢·þÎññîºÏ¸ü½ôÃÜ£¬µ«ÊǺô¦ÔÚÓÚ°ü×°Æ÷·þÎñÄܹ»Æô¶¯Ò»¸öÊÂÎñ¡¢µ÷ÓÿâÄ£¿éÀ´¸üÐÂËüÃǵÄÊý¾Ý¿â£¬²¢ÇÒÒÔÒ»¸ö²Ù×÷µÄÐÎʽÌá½»»ò»Ø¹öÊÂÎñ£¬¶ø²»±Øµ£ÐIJ¿·Öʧ°Ü»ò×îÖÕÒ»ÖÂÐÔµÄÎÊÌâ¡£
ÔÚÎÒÃǵÄÑùÀýÖУ¬Èçͼ 3 Ëùʾ£¬ÎÒÃǽ«·þÎñ A ºÍ·þÎñ B ת»»Îª¿â£¬²¢½«ËüÃDz¿Êðµ½Ò»¸ö¹²ÏíµÄÔËÐÐʱÖУ¬»òÕßÒ²¿ÉÒÔ½«ÆäÖеÄij¸ö·þÎñ×÷Ϊ¹²ÏíÔËÐÐʱ¡£Êý¾Ý¿âµÄ±íÒ²¹²Ïíͬһ¸öÊý¾Ý¿âʵÀý£¬µ«ÊÇËü»á±»²ð·ÖΪһ×éÓɸ÷×ԵĿâ·þÎñ¹ÜÀíµÄ±í¡£

¾ßÓй²ÏíÊý¾Ý¿âµÄÄ£¿é»¯µ¥Ìå
Ä£¿é»¯µ¥ÌåµÄÓŵãºÍȱµã
ÔÚÓÐЩÐÐÒµÖУ¬ÕâÖּܹ¹µÄÊÕÒæÔ¶±ÈÆäËûµØ·½Ëù¿´Öصĸü¿ìµÄ½»¸¶ÒÔ¼°¸ü¿ìµÄ±ä¸ü½Ú×àÖØÒªµÃ¶à¡£±í 1 ×ܽáÁËÄ£¿é»¯µ¥Ìå¼Ü¹¹µÄÓŵãºÍȱµã¡£

±í 1£ºÄ£¿é»¯µ¥Ìå¼Ü¹¹µÄÓŵãºÍȱµã
·Ö²¼Ê½ÊÂÎñͨ³£ÊÇ×îºóµÄ·½°¸£¬Í¨³£»áÔÚÈçϵÄÇé¿öÏÂʹÓãº
µ±¶Ô²»Í¬×ÊÔ´µÄдÈë²Ù×÷²»ÔÊÐí×îÖÕÒ»ÖÂÐÔʱ£»
µ±ÎÒÃDZØÐëҪдÈëµ½²»Í¬ÖÖÀàµÄÊý¾ÝԴʱ£»
µ±ÎÒÃÇÐèҪȷ±£¶ÔÏûÏ¢µÄ´¦ÀíÓÐÇÒ½öÓÐÒ»´Î£¬¶øÇÒÎÞ·¨Öع¹ÏµÍ³ÒÔʵÏÖ²Ù×÷µÄÃݵÈÐÔʱ£»
µ±ÓëµÚÈý·½ºÚºÐϵͳ»òʵÏÖÁËÁ½½×¶ÎÌá½»¹æ·¶µÄÒÅÁôϵͳ½øÐм¯³Éʱ¡£
ÔÚÕâЩÇé¿öÏ£¬Èç¹û¿ÉÀ©Õ¹ÐÔ²»ÊÇÖØÒªµÄ¹Ø×¢µãµÄ»°£¬ÎÒÃÇ¿ÉÒÔ¿¼Âǽ«·Ö²¼Ê½ÊÂÎñ×÷ΪһÖÖ¿ÉÑ¡·½°¸¡£
ʵÏÖÁ½½×¶ÎÌá½»¼Ü¹¹
Á½½×¶ÎÌá½»¼¼ÊõÒªÇóÎÒÃÇÓÐÒ»¸ö·Ö²¼Ê½ÊÂÎñ¹ÜÀíÆ÷£¨Èç Narayana£©ºÍÒ»¸ö¿É¿¿µÄÊÂÎñÈÕÖ¾´æ´¢²ã¡£ÎÒÃÇ»¹ÐèÒªÄܹ»¼æÈÝ
DTP XA µÄÊý¾ÝÔ´£¬ÒÔ¼°Äܹ»²ÎÓë·Ö²¼Ê½ÊÂÎñµÄÏà¹ØµÄ XA Çý¶¯£¬±ÈÈç RDBMS¡¢ÏûÏ¢´úÀíºÍ»º´æ¡£Èç¹ûÄã×ã¹»ÐÒÔËÓкÏÊʵÄÊý¾ÝÔ´£¬µ«ÊÇÔËÐÐÔÚÒ»¸ö¶¯Ì¬»·¾³ÖУ¬±ÈÈç
Kubernetes£¬ÄÇôÄ㻹ÐèÒªÓÐÒ»¸öÏñ operator ÕâÑùµÄ»úÖÆ£¬ÒÔÈ·±£·Ö²¼Ê½ÊÂÎñ¹ÜÀíÆ÷Ö»ÓÐÒ»¸öʵÀý¡£ÊÂÎñ¹ÜÀíÆ÷±ØÐëÊǸ߿ÉÓõ쬲¢ÇÒ±ØÐëÄܹ»·ÃÎÊÊÂÎñÈÕÖ¾¡£
¾ÍʵÏÖ¶øÑÔ£¬Äã¿ÉÒÔ³¢ÊÔʹÓà Snowdrop Recovery Controller£¬ËüʹÓà Kubernetes
StatefulSet ģʽÀ´ÊµÏÖµ¥Àý£¬²¢Ê¹Óó־û¯¾íÀ´´æ´¢ÊÂÎñÈÕÖ¾¡£ÔÚÕâ¸öÀà±ðÖУ¬ÎÒ»¹°üº¬ÁËÊÊÓÃÓÚ
SOAP Web ·þÎñµÄ Web Services Atomic Transaction£¨WS-AtomicTransaction£©µÈ¹æ·¶¡£ËùÓÐÕâЩ¼¼ÊõµÄ¹²Í¬µãÔÚÓÚËüÃÇʵÏÖÁË
XA ¹æ·¶£¬²¢ÇÒÓÐÒ»¸öÖÐÐÄ»¯µÄÊÂÎñе÷Æ÷¡£
ÔÚÎÒÃǵÄÑùÀýÖУ¬Èçͼ 4 Ëùʾ£¬·þÎñ A ʹÓ÷ֲ¼Ê½ÊÂÎñÌá½»ËùÓеıä¸üµ½×Ô¼ºµÄÊý¾Ý¿âÖУ¬²¢ÇÒ»áÌá½»Ò»ÌõÏûÏ¢µ½¶ÓÁÐÖУ¬Õâ¸ö¹ý³ÌÖв»»á³öÏÖÏûÏ¢µÄÖØ¸´ºÍ¶ªÊ§¡£ÀàËÆµÄ£¬·þÎñ
B ¿ÉÒÔʹÓ÷ֲ¼Ê½·þÎñÀ´Ïû·ÑÏûÏ¢£¬²¢ÔÚͬһ¸öÊÂÎñÖÐÌá½»ÖÁÊý¾Ý¿â B£¬Õâ¸ö¹ý³ÌÖÐÒ²²»»á³öÏÖÈκεÄÖØ¸´Êý¾Ý¡£»òÕߣ¬·þÎñ
B Ò²¿ÉÒÔÑ¡Ôñ²»Ê¹Ó÷ֲ¼Ê½ÊÂÎñ£¬¶øÊÇʹÓñ¾µØÊÂÎñ²¢ÊµÏÖÃݵȵÄÏû·ÑÕßģʽ¡£ÔÚ±¾½ÚÖУ¬Ò»¸ö¸üºÏÊʵÄÀý×ÓÊÇʹÓÃ
WS-AtomicTransaction ÔÚÒ»¸öÊÂÎñÖÐе÷¶ÔÊý¾Ý¿â A ºÍÊý¾Ý¿â B µÄдÈ룬²¢ÍêÈ«±ÜÃâ×îÖÕÒ»ÖÂÐÔ¡£µ«ÊÇ£¬ÏÖÔÚÕâÖÖ·½Ê½ÒѾ²»Ì«³£¼ûÁË¡£

¿çÊý¾Ý¿âºÍÏûÏ¢´úÀíµÄ¶þ½×¶ÎÌá½»
Á½½×¶ÎÌá½»¼Ü¹¹ÓŵãºÍȱµã
Á½½×¶ÎÌá½»ÐÒéËùÌṩµÄ±£ÕÏÓëÄ£¿é»¯µ¥ÌåÖеı¾µØÊÂÎñÀàËÆ£¬µ«ÓÐЩÀýÍâÇé¿ö¡£ÒòΪÕâÀïÓÐÁ½¸ö»ò¸ü¶àµÄ¶ÀÁ¢Êý¾ÝÔ´²ÎÓëµ½Ô×Ó¸üÐÂÖ®ÖУ¬ËùÒÔËüÃÇ¿ÉÄÜ»áÒÔ²»Í¬µÄ·½Ê½Ê§°Ü²¢×èÈûÕû¸öÊÂÎñ¡£µ«ÊÇ£¬ÓÉÓÚ´æÔÚÒ»¸öÖÐÐÄ»¯µÄе÷Õߣ¬Ïà¶ÔÓÚÎÒÏÂÃæ½«ÒªÌÖÂ󵀮äËû·½Ê½£¬ÎÒÃÇ»¹ÊÇÄܹ»ºÜÈÝÒ׵ط¢ÏÖ·Ö²¼Ê½ÏµÍ³µÄ״̬¡£

±í 2£ºÁ½½×¶ÎÌá½»µÄÓŵãºÍȱµã
3
±àÅÅʽ
¶ÔÓÚÄ£¿é»¯µ¥ÌåÀ´½²£¬ÎÒÃÇ»áʹÓñ¾µØÊÂÎñ£¬ÕâÑùÎÒÃÇʼÖÕÄܹ»ÖªµÀϵͳµÄ״̬¡£¶Ô»ùÓÚÁ½½×¶ÎÌá½»µÄ·Ö²¼Ê½ÊÂÎñ£¬ÎÒÃÇÒ²Äܱ£Ö¤×´Ì¬µÄÒ»ÖÂÐÔ¡£Î¨Ò»µÄÀýÍâÇé¿öÊÇÊÂÎñе÷Õß³öÏÖÁ˲»¿É»Ö¸´µÄ¹ÊÕÏ¡£µ«ÊÇ£¬Èç¹ûÎÒÃÇÏëÒª¼õÈõÒ»ÖÂÐÔµÄÐèÇ󣬶øÏ£ÍûÄܹ»Á˽âÕû¸ö·Ö²¼Ê½ÏµÍ³µÄ״̬£¬²¢ÇÒÄÜ´ÓÒ»¸öµØ·½¶ÔÆä½øÐÐе÷£¬ÄÇôÎÒÃǸÃÔõô´¦ÀíÄØ£¿
ÔÚÕâÖÖÇé¿öÏ£¬ÎÒÃÇ¿ÉÒÔ¿¼ÂDzÉȡһÖÖ±àÅÅ£¨orchestration£©µÄ·½Ê½£¬ÔÚÕâÀij¸ö·þÎñ»áµ£ÈÎÕû¸ö·Ö²¼Ê½×´Ì¬±ä¸üµÄе÷ÕߺͱàÅÅÕß¡£±àÅÅÕß·þÎñÓÐÔðÈε÷ÓÃÆäËûµÄ·þÎñ£¬Ö±ÖÁËüÃÇ´ïµ½ËùÐèµÄ״̬£¬»òÕßÔÚËüÃdzöÏÖ¹ÊÕϵÄʱºòÖ´ÐоÀÕý´ëÊ©¡£±àÅÅÕßʹÓÃËüµÄ±¾µØÊý¾Ý¿âÀ´¸ú×Ù״̬±ä¸ü£¬²¢ÇÒÒª¸ºÔð»Ö¸´Óë״̬±ä¸üµÄËùÓйÊÕÏ¡£
ʵÏÖ±àÅÅʽ¼Ü¹¹
±àÅÅʽ¼¼Êõ×îÁ÷ÐеÄʵÏÖÊÇ BPMN ¹æ·¶µÄ¸÷ÖÖ¾ßÌåʵÏÖ£¬±ÈÈç jBPM ºÍ Camunda¡£¶ÔÕâÖÖϵͳµÄÐèÇó²¢²»»áÒòΪ΢·þÎñ»ò
Serverless ÕâÑùµÄ¼«¶È·Ö²¼Ê½¼Ü¹¹µÄ³öÏÖ¶øÏûʧ£¬Ïà·´£¬ÕâÖÖÐèÇó»¹»áÔö¼Ó¡£ÎªÁËÖ¤Ã÷ÕâÒ»µã£¬ÎÒÃÇ¿ÉÒÔ¿´Ò»Ï½ÏеÄÓÐ״̬±àÅÅÒýÇæ£¬ËüÃÇûÓÐ×ñÑʲô¹æ·¶£¬µ«ÊÇÈ´ÌṩÁËÀàËÆµÄÓÐ״̬ÐÐΪ£¬±ÈÈç
Netflix µÄ Conductor¡¢Uber µÄ Cadence ºÍ Apache µÄ Airflow¡£Ïñ
Amazon StepFunctions¡¢Azure Durable Functions ºÍ Azure
Logic Apps ÕâÑùµÄ Serverless ÓÐ״̬º¯ÊýÒ²ÊôÓÚÕâ¸öÀà±ð¡£»¹ÓÐһЩ¿ªÔ´¿âÔÊÐíÎÒÃÇʵÏÖÓÐ״̬µÄе÷ºÍ»Ø¹öÐÐΪ£¬Èç
Apache Camel µÄ Saga ģʽʵÏÖºÍ NServiceBus µÄ Saga ¹¦ÄÜ¡£Ðí¶àʵÏÖ
Saga ģʽµÄ×Ô¶¨ÒåϵͳҲÊôÓÚÕâÒ»Àà¡£

±àÅÅÁ½¸ö·þÎñµÄ·Ö²¼Ê½ÊÂÎñ
ÔÚÎÒÃǵÄʾÀýͼÖУ¬ÎÒÃÇÈ÷þÎñ A ×÷ΪÓÐ״̬µÄ±àÅÅÕߣ¬¸ºÔðµ÷Ó÷þÎñ B ²¢ÔÚÐèÒªµÄʱºòͨ¹ý²¹³¥²Ù×÷´Ó¹ÊÕÏÖлָ´¡£ÕâÖÖ·½Ê½µÄ¹Ø¼üÌØÕ÷ÊÇ£¬·þÎñ
A ºÍ·þÎñ B Óб¾µØÊÂÎñµÄ±ß½ç£¬µ«ÊÇ·þÎñ A ÓÐе÷Õû¸ö½»»¥Á÷³ÌµÄ֪ʶºÍÔðÈΡ£ÕâÒ²ÊÇΪʲôËüµÄÊÂÎñ±ß½ç»á½Ó´¥µ½·þÎñ
B µÄ¶Ëµã¡£ÔÚʵÏÖ·½Ã棬ÎÒÃÇ¿ÉÒÔʹÓÃͬ²½µÄ½»»¥£¬¾ÍÏñÉÏͼËùʾ£¬Ò²¿ÉÒÔÔÚ·þÎñÖ®¼äʹÓÃÏûÏ¢¶ÓÁУ¨ÔÚÕâÖÖÇé¿öÏÂÎÒÃÇÒ²¿ÉÒÔʹÓÃÁ½½×¶ÎÌá½»£©¡£
±àÅÅʽµÄÓŵãºÍȱµã
±àÅÅʽÊÇÒ»ÖÖ×îÖÕÒ»Öµķ½·¨£¬Ëü¿ÉÄÜ»áÉæ¼°µ½ÖØÊԺͻعö²ÅÄÜʹ·Ö²¼Ê½ÏµÍ³´ïµ½Ò»ÖµÄ״̬¡£ËäÈ»±ÜÃâÁ˶Էֲ¼Ê½ÊÂÎñµÄÐèÇ󣬵«ÊDZàÅŵķ½Ê½ÒªÇó²ÎÓëµÄ·þÎñÌṩÃݵȵIJÙ×÷£¬ÒÔ·Àе÷Õß±ØÐë½øÐÐÖØÊÔ²Ù×÷¡£²ÎÓëµÄ·þÎñ»¹±ØÐëÒªÌṩ»Ö¸´¶Ëµã£¬ÒÔ·Àе÷Õß¾ö¶¨Ö´Ðлعö²¢ÐÞ¸´È«¾Ö״̬¡£ÕâÖÖ·½Ê½µÄ×î´óÓŵãÊÇ£¬Äܹ»½öͨ¹ý±¾µØÊÂÎñ¾ÍÄÜÇý¶¯ÄÇЩ¿ÉÄܲ»Ö§³Ö·Ö²¼Ê½ÊÂÎñµÄÒì¹¹·þÎñ´ïµ½Ò»ÖµÄ״̬¡£Ðµ÷ÕߺͲÎÓëµÄ·þÎñÖ»ÐèÒª±¾µØÊÂÎñ¼´¿É£¬¶øÇÒʼÖÕÄܹ»Í¨¹ýе÷Õß²éѯϵͳµÄ״̬£¬¼´±ãËüĿǰ¿ÉÄÜ´¦ÓÚ²¿·ÖÒ»ÖµÄ״̬¡£ÔÚÏÂÃæÎÒËùÃèÊöµÄÆäËû·½Ê½ÖУ¬ÊDz»¿ÉÄÜʵÏÖÕâÒ»µãµÄ¡£

±í 3£º±àÅÅʽµÄÓŵãºÍȱµã
4
Ðͬʽ
´ÓÆù½ñΪֹµÄÌÖÂÛÖУ¬ÎÒÃÇ¿ÉÒÔ¿´µ½£¬Ò»¸öÒµÎñ²Ù×÷¿ÉÄܻᵼÖ·þÎñ¼äµÄ¶à´Îµ÷Ó㬲¢ÇÒÒ»¸öÒµÎñÊÂÎñÍê³É¶Ëµ½¶ËµÄ´¦ÀíËùÐèµÄʱ¼äÊDz»È·¶¨µÄ¡£ÎªÁ˹ÜÀíÕâÒ»µã£¬±àÅÅʽ£¨orchestration£©Ä£Ê½»áʹÓÃÒ»¸öÖÐÐÄ»¯µÄ¿ØÖÆÆ÷·þÎñ£¬Ëü»á¸æËß²ÎÓëÕ߸Ã×öʲô¡£
±àÅÅʽµÄÒ»ÖÖÌæ´ú·½°¸¾ÍÊÇÐͬʽ£¨choreography£©£¬ÔÚÕâÖÖ·ç¸ñµÄ·þÎñе÷ÖУ¬²ÎÓëÕßÔÚ½»»»Ê¼þʱûÓÐÒ»¸öÖÐÐÄ»¯µÄ¿ØÖƵ㡣ÔÚÕâÖÖģʽÏ£¬Ã¿¸ö·þÎñ»áÖ´ÐÐÒ»¸ö±¾µØÊÂÎñ²¢·¢²¼Ê¼þ£¬´Ó¶ø´¥·¢ÆäËû·þÎñÖеı¾µØÊÂÎñ¡£ÏµÍ³ÖеÄÿ¸ö×é¼þ¶¼Òª²ÎÓëÒµÎñÊÂÎñ¹¤×÷Á÷µÄ¾ö²ß£¬¶ø²»ÊÇÒÀÀµÒ»¸öÖÐÐÄ»¯µÄ¿ØÖƵ㡣ÔÚÀúÊ·ÉÏ£¬Ðͬʽ·½Ê½×î³£¼ûµÄʵÏÖ¾ÍÊÇʹÓÃÒì²½ÏûÏ¢²ãÀ´½øÐзþÎñµÄ½»»¥¡£Í¼
6 ˵Ã÷ÁËÐͬʽģʽµÄ»ù±¾¼Ü¹¹¡£

ͨ¹ýÏûÏ¢²ã½øÐзþÎñÐͬ»¯
¾ßÓÐË«ÖØÐ´ÈëµÄÐͬʽ
ΪÁËʵÏÖ»ùÓÚÏûÏ¢µÄ·þÎñÐͬ£¬ÎÒÃÇÐèҪÿ¸ö²ÎÓëµÄ·þÎñÖ´ÐÐÒ»¸ö±¾µØÊÂÎñ£¬²¢Í¨¹ýÏòÏûÏ¢»ù´¡ÉèÊ©·¢²¼Ò»¸öÃüÁî»òʼþ£¬ÒÔ´¥·¢ÏÂÒ»¸ö·þÎñ¡£Í¬ÑùµÄ£¬ÆäËû²ÎÓëµÄ·þÎñ±ØÐëÏû·ÑÒ»¸öÏûÏ¢²¢Ö´Ðб¾µØÊÂÎñ¡£´Ó±¾ÖÊÉÏÀ´½²£¬Õâ¾ÍÊÇÔÚÒ»¸ö½Ï¸ß²ã¼¶µÄË«ÖØÐ´ÈëÎÊÌâÖÐÓÖ³öÏÖÁËÁíÒ»¸öË«ÖØÐ´ÈëµÄÎÊÌâ¡£µ±ÎÒÃÇ¿ª·¢Ò»¸ö¾ßÓÐË«ÖØÐ´ÈëµÄÏûÏ¢²ãÀ´ÊµÏÖÐͬʽģʽµÄʱºò£¬ÎÒÃÇ¿ÉÒÔ°ÑËüÉè¼Æ³É¿ç±¾µØÊý¾Ý¿âºÍÏûÏ¢´úÀíµÄÒ»¸öÁ½½×¶ÎÌá½»¡£ÔÚÇ°Ãæ£¬ÎÒÃÇÔø¾½éÉܹýÕâÖÖ·½Ê½¡£ÁíÍ⣬ÎÒÃÇÒ²¿ÉÒÔ²ÉÓÃ
publish-then-local-commit »ò local-commit-then-publish
ģʽ£º
Publish-then-local-commit£ºÎÒÃÇ¿ÉÒÔÏȳ¢ÊÔ·¢²¼Ò»ÌõÏûÏ¢£¬È»ºóÔÙÌá½»±¾µØÊÂÎñ¡£ËäÈ»ÕâÖÖ·½°¸ÌýÆðÀ´²»´í£¬µ«ÊÇËüÓÐһЩÇÐʵµÄÌôÕ½¡£¾ÙÀýÀ´Ëµ£¬Ôںܶàʱºò£¬ÎÒÃÇÐèÒª·¢²¼Ò»¸öÓɱ¾µØÊÂÎñËùÉú³ÉµÄ
ID£¬¶øÕâ¸ö ID ´Ëʱ»¹Ã»ÓÐÉú³É£¬Òò´ËÎÞ·¨·¢²¼¡£ÁíÍ⣬±¾µØÊÂÎñÓпÉÄÜ»áʧ°Ü£¬µ«ÊÇÎÒÃÇÎÞ·¨»Ø¹öÒѾ·¢²¼µÄÏûÏ¢¡£ÕâÖÖ·½Ê½È±·¦¡°¶ÁÈ¡×Ô¼ºµÄдÈ롱µÄÓïÒ壬Òò´Ë¶ÔÓÚ´ó¶àÊý³¡¾°À´Ëµ£¬Õâ²¢²»ÊǺÏÊʵķ½°¸¡£
Local-commit-then-publish£ºÒ»¸öÉÔºÃÒ»µãµÄ°ì·¨ÊÇÏÈÌá½»±¾µØÊÂÎñ£¬È»ºóÔÙ·¢²¼ÏûÏ¢¡£ÔÚ±¾µØÊÂÎñÌá½»Ö®ºóºÍÏûÏ¢·¢²¼Ö®Ç°ÕâÀïÓкÜСµÄ¸ÅÂÊ»á³öÏÖ¹ÊÕÏ¡£µ«¼´±ãÊdzöÏÖÕâÑùµÄÇé¿ö£¬ÄãÒ²¿ÉÒÔ°Ñ·þÎñÉè¼Æ³ÉÃݵȵIJ¢¶Ô²Ù×÷½øÐÐÖØÊÔ¡£ÕâÒâζ×Å»áÔÙ´ÎÌá½»±¾µØÊÂÎñ²¢·¢²¼ÏûÏ¢¡£Èç¹ûÄãÄÜ¿ØÖÆÏÂÓεÄÏû·ÑÕß²¢ÇÒÈ·±£ËüÃÇÊÇÃݵȵģ¬ÄÇôÕâÖÖ·½Ê½¾ÍÊÇÐÐÖ®ÓÐЧµÄ¡£×ÜÌå¶øÑÔ£¬ÕâÊÇÒ»¸öºÜºÃµÄʵÏÖ·½°¸¡£
ÎÞË«ÖØÐ´ÈëµÄÐͬʽ
ʵÏÖÐͬʽ¼Ü¹¹µÄ¸÷ÖÖʵÏÖ·½Ê½¶¼ÏÞÖÆÃ¿¸ö·þÎñ¶¼ÒªÍ¨¹ý±¾µØÊÂÎñдÈëµ½µ¥Ò»µÄÊý¾ÝÔ´ÖУ¬¶ø²»ÄÜдÈëµ½ÆäËûµÄµØ·½ÖС£ÎÒÃÇ¿´Ò»Ï£¬ÈçºÎÔÚ±ÜÃâË«ÖØÐ´ÈëµÄÇé¿öÏÂʵÏÖÕâÒ»µã¡£
¼ÙÉè·þÎñ A ½ÓÊÕµ½Ò»¸öÇëÇó²¢Òª¶ÔÊý¾Ý¿â A ½øÐÐдÈë²Ù×÷£¬³ý´ËÖ®Íâ²»ÔÙ²Ù×÷ÆäËûµÄÊý¾ÝÔ´¡£·þÎñ B
ÖÜÆÚÐÔµØÂÖѯ·þÎñ A ²¢Ì½²âеıä¸ü¡£µ±Ëü¶ÁÈ¡µ½±ä¸üʱ£¬·þÎñ B »á»ùÓÚ±ä¸ü¸üÐÂ×Ô¼ºµÄÊý¾Ý¿â£¬²¢ÇÒ»á¸üÐÂË÷Òý»òʱ¼ä´ÁÀ´±ê¼Ç»ñÈ¡µ½Á˱ä¸ü¡£ÕâÀïµÄ¹Ø¼üÔÚÓÚ£¬ÕâÁ½¸ö·þÎñÖ»¶Ô×Ô¼ºµÄÊý¾Ý¿â½øÐÐдÈë²Ù×÷£¬²¢ÒÔ±¾µØÊÂÎñµÄÐÎʽ½øÐÐÌá½»¡£Èçͼ
7 Ëùʾ£¬ÕâÖÖ·½Ê½¿ÉÒÔÃèÊöΪ·þÎñÐͬ£¨service choreography£©£¬»òÕßÎÒÃÇÒ²¿ÉÒÔÓ÷dz£¹ÅÀϵÄÊý¾Ý¹ÜµÀµÄÊõÓïÀ´¶ÔÆä½øÐÐÃèÊö¡£ÖÁÓڿɹ©Ñ¡ÓõÄʵÏÖ·½°¸¾Í¸üÓÐȤÁË¡£

ͨ¹ýÂÖѯʵÏֵķþÎñÐͬ
¶ÔÓÚ·þÎñ B À´Ëµ£¬×î¼òµ¥µÄ³¡¾°¾ÍÊÇÁ¬½Óµ½·þÎñ A µÄÊý¾Ý¿â²¢¶ÁÈ¡·þÎñ A µÄ±í¡£µ«ÊÇ£¬Òµ½ç»á¾¡Á¿±ÜÃâ¹²ÏíÊý¾Ý±íÕâÖÖ¼¶±ðµÄñîºÏ£¬ÔÒòÔÚÓÚ£º·þÎñ
A µÄʵÏÖºÍÊý¾ÝÄ£Ð͵ÄÈÎÒâ±ä¸ü¶¼¿ÉÄܸÉÈŵ½·þÎñ B¡£ÎÒÃÇ¿ÉÒÔ¶ÔÕâÖÖ³¡¾°×öһЩ¸Ä½ø£¬ÀýÈçʹÓ÷¢¼þÏ䣨Outbox£©Ä£Ê½£¬Îª·þÎñ
A Ìṩһ¸ö±í×÷Ϊ¹«¿ª½Ó¿Ú¡£Õâ¸ö±í¿ÉÒÔÖ»°üº¬·þÎñ B ËùÐèµÄÄÚÈÝ£¬Ëü¿ÉÒÔÉè¼ÆµÃÒ×ÓÚ²éѯºÍ¸ú×Ù±ä¸ü¡£Èç¹ûÄã¾õµÃÕ⻹²»¹»ºÃµÄ»°£¬½øÒ»²½µÄ¸Ä½ø·½°¸ÊÇÈ÷þÎñ
B ͨ¹ý API ¹ÜÀí²ã²éѯ·þÎñ A µÄËùÓб仯£¬¶ø²»ÊÇÖ±½ÓÁ¬½ÓÊý¾Ý¿â A¡£
´Ó¸ù±¾ÉÏÀ´½²£¬ËùÓеÄÕâЩ±äÖÖÐÎʽ¶¼ÓÐÒ»¸öÏàͬµÄȱµã£º·þÎñ B ÐèÒª²»¶ÏµØÂÖѯ·þÎñ A¡£ÕâÖÖ·½Ê½»á¸øÏµÍ³´øÀ´²»±ØÒªµÄ³ÖÐø¸ºÔØ£¬»òÕßÔÚ½ÓÊÕ±ä¸üʱ´æÔÚ²»±ØÒªµÄÑÓ³Ù¡£ÂÖѯ΢·þÎñµÄ±ä¸ü²¢²»Êdz£¼ûµÄ×ö·¨£¬ÄÇôÎÒÃÇ¿´Ò»ÏÂÈçºÎ½øÒ»²½¸ÄÉÆÕâ¸ö¼Ü¹¹¡£
ʹÓà Debezium µÄÐͬʽ
ÔڸĽøÐͬʽ¼Ü¹¹Ê±£¬ÓÐÒ»ÖÖ·½Ê½ºÜÓÐÎüÒýÁ¦£¬ÄǾÍÊÇÒýÈëÏñ Debezium ÕâÑùµÄ¹¤¾ß£¬ËüʹÓÃÊý¾Ý¿â
A µÄÊÂÎñÈÕÖ¾Ö´Ðбä¸üÊý¾Ý²¶»ñ£¨change data capture£¬CDC£©¡£ÕâÖÖ·½Ê½Èçͼ 8
Ëùʾ¡£

ͨ¹ý±ä¸üÊý¾Ý²¶»ñʵÏֵķþÎñÐͬ
Debezium ¿ÉÒÔ¼à¿ØÊý¾Ý¿âµÄÊÂÎñÈÕÖ¾£¬Ö´ÐбØÒªµÄ¹ýÂ˺Íת»»£¬²¢½«Ïà¹ØµÄ±ä¸üͶµÝµ½ Apache
Kafka µÄÖ÷ÌâÖС£ÕâÑùµÄ»°£¬·þÎñ B ¾Í¿ÉÒÔ¼àÌýÖ÷ÌâÖеÄͨÓÃʼþ£¬¶ø²»ÊÇÂÖѯ·þÎñ A µÄÊý¾Ý¿â»ò
API¡£ÎÒÃÇͨ¹ýÕâÖÖ·½Ê½£¬½«Êý¾Ý¿âÂÖѯת»»³ÉÁËÁ÷ʽ±ä¸ü£¬²¢ÇÒÔÚ·þÎñ¼äÒýÈëÁËÒ»¸ö¶ÓÁУ¬ÕâÑù»áʹµÃ·Ö²¼Ê½ÏµÍ³¸ü¼Ó¿É¿¿¡¢¿ÉÀ©Õ¹£¬¶øÇÒΪеÄʹÓó¡¾°»áÒýÈëÆäËûÏû·ÑÕßÌṩÁË¿ÉÄÜÐÔ¡£Debezium
ÌṩÁËÒ»ÖÖÓÅÑŵķ½Ê½À´ÊµÏÖ·¢¼þÏäģʽ£¬Äܹ»ÓÃÓÚ»ùÓÚ±àÅÅʽºÍÐͬʽµÄ Saga ģʽʵÏÖ¡£
ÕâÖÖ·½Ê½µÄÒ»¸ö¸±×÷ÓÃÔÚÓÚ£¬·þÎñ B ÓнÓÊÕµ½Öظ´ÏûÏ¢µÄ¿ÉÄÜÐÔ¡£Õâ¿ÉÒÔͨ¹ýʵÏÖÃݵȵķþÎñÀ´½â¾ö£¬¿ÉÒÔÔÚÒµÎñÂß¼²ãÃæÀ´½â¾ö£¬Ò²¿ÉÒÔʹÓü¼Êõ»¯µÄÈ¥ÖØÆ÷£¨deduplicator£¬±ÈÈç
Apache ActiveMQ Artemis µÄÖØ¸´ÏûϢ̽²â»òÕß Apache Camel µÄÃݵÈÏû·ÑÕßģʽ£©¡£
ʹÓÃʼþËÝÔ´µÄÐͬʽģʽ
ʼþËÝÔ´£¨event sourcing£©ÊÇÁíÍâÒ»ÖÖ·þÎñÐͬµÄʵÏÖģʽ¡£ÔÚÕâÖÖģʽÏ£¬ÊµÌåµÄ״̬»á±»´æ´¢ÎªÒ»ÏµÁеÄ״̬±ä¸üʼþ¡£µ±ÓÐеĸüÐÂʱ£¬²»ÊǸüÐÂʵÌåµÄ״̬£¬¶øÊÇÍùʼþµÄÁбíÖÐ×·¼ÓÒ»¸öеÄʼþ¡£Íùʼþ´æ´¢ÖÐ×·¼ÓеÄʼþÊÇÒ»¸öÔ×ÓÐԵIJÙ×÷£¬»áÔÚÒ»¸ö±¾µØÊÂÎñÖÐÍê³É¡£Èçͼ
9 Ëùʾ£¬ÕâÖÖ·½Ê½µÄºÃ´¦ÔÚÓÚ£¬¶ÔÓÚÏû·ÑÊý¾Ý¸üÐÂµÄÆäËû·þÎñÀ´½²£¬Ê¼þ´æ´¢µÄÐÐΪҲÊÇÒ»¸öÏûÏ¢¶ÓÁС£

ͨ¹ýʼþËÝԴʵÏֵķþÎñÐͬ
ÔÚÎÒÃÇÑùÀýÖУ¬Èç¹ûҪת»»³ÉʹÓÃʼþËÝÔ´µÄ»°£¬Òª°Ñ¿Í»§¶ËµÄÇëÇó´æ´¢ÔÚÒ»¸öÖ»ÄܽøÐÐ×·¼Ó²Ù×÷µÄʼþ´æ´¢ÖС£·þÎñ
A ¿ÉÒÔͨ¹ýÖØ·Å£¨replay£©Ê¼þÖØÐ¹¹½¨µ±Ç°µÄ״̬¡£Ê¼þ´æ´¢ÐèÒªÈ÷þÎñ B Ò²¶©ÔÄÏàͬµÄ¸üÐÂʼþ¡£Í¨¹ýÕâÖÖ»úÖÆ£¬·þÎñ
A ʹÓÃÆä´æ´¢²ã×÷ΪÓëÆäËû·þÎñµÄͨÐŲ㡣¾¡¹ÜÕâÖÖ»úÖÆ·Ç³£Õû½à£¬½â¾öÁ˵±ÓÐ״̬±ä¸üʱ¿É¿¿µØ·¢²¼Ê¼þµÄÎÊÌ⣬µ«ÊÇËüÒýÈëÁËÒ»Öֺܶ࿪·¢ÈËÔ±Ëù²»ÊìϤµÄ±à³Ì·ç¸ñ£¬²¢ÇÒÎ§ÈÆ×´Ì¬ÖØ½¨ºÍÏûϢѹËõ£¬»áÒýÈë¶îÍâµÄ¸´ÔÓÐÔ£¬ÕâÐèҪרÃŵĴ洢¡£
ÐͬʽµÄÓŵãºÍȱµã
²»¹ÜʹÓÃÄÄÖÖ·½Ê½À´¼ìË÷Êý¾Ý±ä¸ü£¬ÐͬʽµÄģʽ¶¼½âñîÁËдÈ룬Äܹ»ÊµÏÖ¶ÀÁ¢µÄ·þÎñ¿ÉÀ©Õ¹ÐÔ£¬²¢ÌáÉýϵͳÕûÌåµÄµ¯ÐÔ¡£ÕâÖÖ·½Ê½µÄȱµãÔÚÓÚ£¬¾ö²ßÁ÷ÊÇ·ÖÉ¢µÄ£¬ºÜÄÑ·¢ÏÖÈ«¾ÖµÄ·Ö²¼Ê½×´Ì¬¡£Òª²é¿´Ò»¸öÇëÇóµÄ״̬ÐèÒª²éѯ¶à¸öÊý¾ÝÔ´£¬Õâ¶ÔÓÚ·þÎñÊýÁ¿ÖÚ¶àµÄ³¡¾°À´ËµÊÇÒ»¸öÌôÕ½¡£±í
4 ×ܽáÁËÕâÖÖ·½Ê½µÄÓŵãºÍȱµã¡£

±í 4£ºÐͬʽµÄÓŵãºÍȱµã
5
²¢ÐйܵÀ
ÔÚÐͬʽģʽÖУ¬Ã»ÓÐÒ»¸öÖÐÐÄ»¯µÄµØ·½¿ÉÒÔ²éѯϵͳµÄ״̬£¬µ«ÊÇ»áÓÐÒ»¸ö·þÎñµÄÐòÁУ¬ÒÔ±ãÓÚÔÚ·Ö²¼Ê½ÏµÍ³Öд«²¥×´Ì¬¡£Ðͬʽģʽ´´½¨ÁËÒ»¸ö´¦Àí·þÎñµÄÐòÁл¯¹ÜµÀ£¬ËùÒÔÎÒÃÇÄܹ»ÖªµÀµ±Ò»¸öÏûÏ¢µ½´ïÕû¸ö¹ý³ÌµÄÌØ¶¨²½Öèʱ£¬Ëü¿Ï¶¨ÒѾͨ¹ýÁËÇ°ÃæµÄËùÓв½Öè¡£Èç¹ûÎÒÃÇÄܹ»·ÅËÉÕâ¸öÏÞÖÆ£¬ÔÊÐí¶ÀÁ¢µØ´¦ÀíÕâЩ²½ÖèµÄ»°£¬Çé¿öÓÖ»áÔõÑùÄØ£¿ÔÚÕâÖÖ³¡¾°Ï£¬·þÎñ
B ÔÚ´¦ÀíÒ»¸öÇëÇóµÄʱºò£¬¸ù±¾²»ÓùØÐÄ·þÎñ A ÊÇ·ñÒѾ´¦Àí¹ýËü¡£
ÔÚ²¢ÐйܵÀµÄ·½Ê½ÖУ¬ÎÒÃÇ»áÌí¼ÓÒ»¸ö·ÓÉ·þÎñ£¬¸Ã·þÎñ½ÓÊÕÇëÇ󣬲¢ÔÚÒ»¸ö±¾µØÊÂÎñÖÐͨ¹ýÏûÏ¢´úÀí½«ÇëÇóת·¢ÖÁ·þÎñ
A ºÍ·þÎñ B¡£Èçͼ 10 Ëùʾ£¬´ÓÕâ¸ö²½Ö迪ʼ£¬Á½¸ö·þÎñ¿ÉÒÔ¶ÀÁ¢¡¢²¢Ðеش¦ÀíÇëÇó¡£

ͨ¹ý²¢ÐйܵÀ½øÐд¦Àí
¾¡¹ÜÕâÖÖģʽºÜÈÝÒ×ʵÏÖ£¬µ«ÊÇËüÖ»ÊÊÓÃÓÚ·þÎñÖ®¼äûÓÐʱ¼äÔ¼ÊøµÄ³¡¾°¡£ÀýÈ磬·þÎñ B ²»¹Ü·þÎñ A ÊÇ·ñÒѾ´¦Àí¹ý¸ÃÇëÇó£¬Ëü¶¼Äܹ»¶ÔÇëÇó½øÐд¦Àí¡£Í¬Ê±£¬ÕâÖÖ·½Ê½ÐèÒªÒ»¸ö¶îÍâµÄ·ÓÉ·þÎñ£¬»òÕ߿ͻ§¶ËÖªµÀ·þÎñ
A ºÍ·þÎñ B£¬´Ó¶øÄܹ»¸øËüÃÇ·¢ËÍÏûÏ¢¡£
¼àÌý×ÔÉí
ÕâÖÖ·½Ê½ÓÐÒ»ÖÖÇáÁ¿¼¶µÄÌæ´ú·½°¸£¬±»³ÆÎª¡°¼àÌý×ÔÉí£¨listen to yourself£©¡±Ä£Ê½£¬ÔÚÕâÀÆäÖÐÓиö·þÎñ»áͬʱµ£ÈηÓÉ¡£ÔÚÕâÖÖÌæ´ú·½Ê½Ï£¬µ±·þÎñ
A ½ÓÊÕµ½Ò»¸öÇëÇóʱ£¬Ëü²»»áдÈëµ½×Ô¼ºµÄÊý¾Ý¿âÖУ¬¶øÊǽ«ÇëÇó·¢ËÍÖÁÏûϢϵͳÖУ¬¶øÏûÏ¢µÄÄ¿±êÊÇ·þÎñ B
ÒÔ¼°·þÎñ A ±¾Éí¡£Í¼ 11 ²ûÊöÁËÕâÖÖģʽ¡£

¼àÌý×ÔÉíģʽ
ÔÚÕâÀ²»Ð´ÈëÊý¾Ý¿âµÄÔÒòÔÚÓÚ±ÜÃâË«ÖØÐ´Èë¡£µ±½øÈëÏûϢϵͳ֮ºó£¬ÏûÏ¢»áÔÚÍêÈ«¶ÀÁ¢µÄÊÂÎñÉÏÏÂÎÄÖнøÈë·þÎñ
B£¬Ò²»áÖØÐ·µ»Ø·þÎñ A¡£Í¨¹ýÕâÑùÒ»¸öÇúÕ۵Ĵ¦ÀíÁ÷³Ì£¬·þÎñ A ºÍ·þÎñ B ¾Í¿ÉÒÔ¶ÀÁ¢µØ´¦ÀíÇëÇ󣬲¢Ð´Èëµ½¸÷×ÔµÄÊý¾Ý¿âÖÐÁË¡£
²¢ÐйܵÀµÄÓŵãºÍȱµã 
±í 5£º²¢ÐйܵÀµÄÓŵãºÍȱµã
6
ÈçºÎÑ¡Ôñ·Ö²¼Ê½ÊÂÎñ²ßÂÔ
´Ó±¾ÎĵÄÂÛÊöÖУ¬Äã¿ÉÄÜÒѾ²Âµ½£¬ÔÚ΢·þÎñ¼Ü¹¹ÖУ¬´¦Àí·Ö²¼Ê½ÊÂÎñ²¢Ã»ÓÐÕýÈ·»ò´íÎóµÄģʽ¡£Ã¿ÖÖģʽ¶¼ÓÐÆäÓŵãºÍȱµã¡£Ã¿ÖÖģʽ¶¼Äܽâ¾öһЩÎÊÌ⣬µ«ÊÇ·´¹ýÀ´ÓÖ»á²úÉúÆäËûµÄÎÊÌ⡣ͼ
12 ÖеÄͼ±í¼òµ¥×ܽáÁËÎÒËù²ûÊöµÄ¸÷ÖÖË«ÖØÐ´ÈëģʽµÄÖ÷ÒªÌØÕ÷¡£

Ë«ÖØÐ´ÈëģʽµÄÌØÕ÷
²»¹ÜÄã²ÉÓÃÄÄÖÖ·½Ê½£¬¶¼Òª²ûÊöºÍ¼Ç¼¾ö²ß±³ºóµÄ¶¯»ú£¬ÒÔ¼°¸ÃÑ¡ÔñÔڼܹ¹ÉÏËù´øÀ´µÄ³¤ÆÚÓ°Ïì¡£Ä㻹ÐèÒªµÃµ½´Ó³¤ÆÚʵÏÖºÍά»¤¸ÃϵͳµÄÍŶÓÄÇÀï»ñȡ֧³Ö¡£ÔÚÕâÀÎÒ¸ù¾ÝÊý¾ÝÒ»ÖÂÐԺͿÉÀ©Õ¹ÐÔÌØÕ÷À´×éÖ¯ºÍÆÀ¹À±¾ÎÄËùÃèÊöµÄ¸÷ÖÖ·½·¨£¬Èçͼ
13 Ëùʾ¡£

¸÷¸öË«ÖØÐ´ÈëģʽµÄÊý¾ÝÒ»ÖÂÐԺͿÉÀ©Õ¹ÐÔÌØÕ÷
ÎÒÃÇ´Ó¿ÉÀ©Õ¹ÐÔ×îÇ¿¡¢¿ÉÓÃÐÔ×î¸ßµÄ·½·¨µ½¿ÉÀ©Õ¹ÐÔ×î²î¡¢¿ÉÓÃÐÔ×îµÍµÄ˳ÐòÀ´ÆÀ¹À¸÷ÖÖ·½·¨¡£
¸ß£º²¢ÐйܵÀºÍÐͬʽ
Èç¹ûÄãµÄ²½ÖèÔÚʱ¼äÉÏÊǽâñîµÄ£¬ÄÇô²ÉÓò¢ÐйܵÀµÄ·½·¨À´ÔËÐÐÊǺܺÏÊʵġ£ÓпÉÄÜÄãÖ»ÄÜÔÚϵͳµÄijЩ²¿·ÖʹÓÃÕâÖÖģʽ£¬¶ø²»ÊÇÔÚÕû¸öϵͳÖС£½ÓÏÂÀ´£¬¼ÙÉè²½Öè¼ä´æÔÚʱ¼ä·½ÃæµÄñîºÏÐÔ£¬Ìض¨µÄ²Ù×÷ºÍ·þÎñ±ØÐëÒªÔÚÆäËûµÄ·þÎñǰִÐУ¬ÄÇôÄã¿ÉÒÔ¿¼ÂDzÉÓÃÐͬʽµÄ·½Ê½¡£½èÖúÐͬʽµÄ·þÎñ£¬ÎÒÃÇ¿ÉÒÔ´´½¨Ò»¸ö¿ÉÀ©Õ¹µÄ¡¢Ê¼þÇý¶¯µÄ¼Ü¹¹£¬ÔÚÕâÀïÏûÏ¢»áͨ¹ýÒ»¸öÈ¥ÖÐÐÄ»¯µÄÐͬ»¯¹ý³ÌÔÚ·þÎñºÍ·þÎñÖ®¼äÁ÷¶¯¡£ÔÚÕâÖÖÇé¿öÏ£¬Ê¹ÓÃ
Debezium ºÍ Apache Kafka µÄ·¢¼þÏäģʽʵÏÖ£¨Èç Red Hat OpenShift
Streams for Apache Kafka£©ÌرðÓÐȤ£¬¶øÇÒÔ½À´Ô½ÊÜ»¶Ó
Öеȣº±àÅÅʽºÍÁ½½×¶ÎÌá½»
Èç¹ûÐͬʽģʽ²»ÊǺܺÏÊÊ£¬ÄãÐèÒªÒ»¸ö¸ºÔðе÷ºÍ¾ö²ßµÄÖÐÐĵ㣬ÄÇô¿ÉÒÔ¿¼ÂDzÉÓñàÅÅʽģʽ¡£ÕâÊÇÒ»¸öÁ÷Ðеļܹ¹£¬ÓлùÓÚ±ê×¼µÄºÍ×Ô¶¨ÒåµÄ¿ªÔ´ÊµÏÖ¡£»ùÓÚ±ê×¼µÄʵÏÖ¿ÉÄÜ»áÇ¿ÆÈÄãʹÓÃijЩÊÂÎñÓïÒ壬¶ø×Ô¶¨ÒåµÄ±àÅÅʽʵÏÖÔòÔÊÐíÄãÔÚËùÐèµÄÊý¾ÝÒ»ÖÂÐԺͿÉÀ©Õ¹ÐÔÖ®¼ä½øÐÐȨºâ¡£
µÍ£ºÄ£¿é»¯µ¥Ìå
Èç¹ûÄãÑØ×ÅͼʾÔÙÍù×ó×ߵϰ£¬ÄÇôºÜ¿ÉÄÜÄã¶ÔÊý¾ÝÒ»ÖÂÐÔÓзdz£Ç¿ÁÒµÄÐèÇ󣬶øÇÒ¶ÔËüËùÐèµÄÖØ´óȨºâÓгä·ÖµÄ˼Ïë×¼±¸¡£ÔÚÕâÖÖÇé¿öÏ£¬Õë¶ÔÌØ¶¨Êý¾ÝÔ´£¬Í¨¹ýÁ½½×¶ÎÌá½»µÄ·Ö²¼Ê½ÊÂÎñÊÇ¿ÉÐе쬵«ÊÇÔÚרÃÅΪ¿ÉÀ©Õ¹ÐԺ͸߶ȿÉÓÃÐÔÉè¼ÆµÄ¶¯Ì¬ÔÆ»·¾³ÖУ¬ËüºÜÄѿɿ¿µØÊµÏÖ¡£Èç¹ûÊÇÕâÑùµÄ»°£¬ÄÇôÄã¿ÉÒÔÖ±½Ó²ÉÓñȽÏÀÏʽµÄÄ£¿é»¯µ¥Ì巽ʽ£¬Í¬Ê±°éÒÔ´Ó΢·þÎñÔ˶¯ÖÐѧµ½µÄʵ¼ù¡£ÕâÖÖ·½Ê½¿ÉÒÔÈ·±£×î¸ßµÄÊý¾ÝÒ»ÖÂÐÔ£¬µ«´ú¼ÛÊÇÔËÐÐʱºÍÊý¾ÝÔ´µÄñîºÏ¡£
7
½áÂÛ
ÔÚ¾ßÓÐÊýÊ®¸ö·þÎñµÄ´óÐÍ·Ö²¼Ê½ÏµÍ³ÖУ¬²¢²»»áÓÐÒ»¸öÊÊÓÃÓÚËùÓг¡¾°µÄ·½Ê½£¬ÎÒÃÇÐèÒª½«ÆäÖеö·½·¨½áºÏÆðÀ´£¬Ó¦ÓÃÓÚ²»Í¬µÄ»·¾³ÖС£ÎÒÃÇ¿ÉÄܻὫ¼¸¸ö·þÎñ²¿ÊðÔÚÒ»¸ö¹²ÏíµÄÔËÐÐʱÉÏ£¬ÒÔÂú×ã¶ÔÊý¾ÝÒ»ÖÂÐÔµÄÌØÊâÐèÇó¡£ÎÒÃÇ¿ÉÄÜ»áÑ¡ÔñÁ½½×¶ÎµÄÌá½»À´ÓëÖ§³Ö
JTA µÄÒÅÁôϵͳ½øÐм¯³É¡£ÎÒÃÇ¿ÉÄÜ»á±àÅŸ´ÔÓµÄÒµÎñÁ÷³Ì£¬²¢ÈÃÆäÓàµÄ·þÎñʹÓÃÐͬʽģʽºÍ²¢Ðд¦Àí¡£×ܶøÑÔÖ®£¬ÄãÑ¡Ôñʲô²ßÂÔ²¢²»ÖØÒª£¬ÖØÒªµÄÊÇ»ùÓÚÕýÈ·µÄÔÒò£¬¾«ÐÄÑ¡ÔñÒ»¸ö²ßÂÔ£¬²¢Ö´ÐÐËü¡£
|