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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
Zookeeperµ½µ×ÊǸÉÂïµÄ
 
×÷ÕߣºÄÄÊÇʲô´óÀÐ
  7059  次浏览      28
 2020-6-5  
 
±à¼­ÍƼö:
ZookeeperÖ÷ÒªÄÄЩ·þÎñ:ÅäÖùÜÀí£¬Ãû×Ö·þÎñ£¬Ìṩ·Ö²¼Ê½Í¬²½ÒÔ¼°¼¯Èº¹ÜÀí£¬¸ü¶à½éÉÜÇë¿´ÏÂÎÄ.
À´×ÔÓÚ²©¿ÍÔ°£¬,ÓÉ»ðÁú¹ûÈí¼þAnna±à¼­¡¢ÍƼö¡£

ÔÚZookeeperµÄ¹ÙÍøÉÏÓÐÕâôһ¾ä»°£ºZooKeeper is a centralized service for maintaining configuration information, naming, providing distributed synchronization, and providing group services.

Õâ´ó¸ÅÃèÊöÁËZookeeperÖ÷Òª¿ÉÒÔ¸ÉÄÄЩÊÂÇ飺ÅäÖùÜÀí£¬Ãû×Ö·þÎñ£¬Ìṩ·Ö²¼Ê½Í¬²½ÒÔ¼°¼¯Èº¹ÜÀí¡£ÄÇÕâЩ·þÎñÓÖµ½µ×ÊÇÊ²Ã´ÄØ£¿ÎÒÃÇΪʲôÐèÒªÕâÑùµÄ·þÎñ£¿ÎÒÃÇÓÖΪʲôҪʹÓÃZookeeperÀ´ÊµÏÖÄØ£¬Ê¹ÓÃZookeeperÓÐʲôÓÅÊÆ£¿½ÓÏÂÀ´Îһᰤ¸ö½éÉÜÕâЩµ½µ×ÊÇʲô£¬ÒÔ¼°ÓÐÄÄЩ¿ªÔ´ÏµÍ³ÖÐʹÓÃÁË¡£

ÅäÖùÜÀí

ÔÚÎÒÃǵÄÓ¦ÓÃÖгýÁË´úÂëÍ⣬»¹ÓÐһЩ¾ÍÊǸ÷ÖÖÅäÖᣱÈÈçÊý¾Ý¿âÁ¬½ÓµÈ¡£Ò»°ãÎÒÃǶ¼ÊÇʹÓÃÅäÖÃÎļþµÄ·½Ê½£¬ÔÚ´úÂëÖÐÒýÈëÕâЩÅäÖÃÎļþ¡£µ«Êǵ±ÎÒÃÇÖ»ÓÐÒ»ÖÖÅäÖã¬Ö»ÓÐһ̨·þÎñÆ÷£¬²¢ÇÒ²»¾­³£Ð޸ĵÄʱºò£¬Ê¹ÓÃÅäÖÃÎļþÊÇÒ»¸öºÜºÃµÄ×ö·¨£¬µ«ÊÇÈç¹ûÎÒÃÇÅäÖ÷dz£¶à£¬Óкܶà·þÎñÆ÷¶¼ÐèÒªÕâ¸öÅäÖ㬶øÇÒ»¹¿ÉÄÜÊǶ¯Ì¬µÄ»°Ê¹ÓÃÅäÖÃÎļþ¾Í²»ÊǸöºÃÖ÷ÒâÁË¡£Õâ¸öʱºòÍùÍùÐèҪѰÕÒÒ»ÖÖ¼¯ÖйÜÀíÅäÖõķ½·¨£¬ÎÒÃÇÔÚÕâ¸ö¼¯Öеĵط½ÐÞ¸ÄÁËÅäÖã¬ËùÓжÔÕâ¸öÅäÖøÐÐËȤµÄ¶¼¿ÉÒÔ»ñµÃ±ä¸ü¡£±ÈÈçÎÒÃÇ¿ÉÒÔ°ÑÅäÖ÷ÅÔÚÊý¾Ý¿âÀȻºóËùÓÐÐèÒªÅäÖõķþÎñ¶¼È¥Õâ¸öÊý¾Ý¿â¶ÁÈ¡ÅäÖᣵ«ÊÇ£¬ÒòΪºÜ¶à·þÎñµÄÕý³£ÔËÐж¼·Ç³£ÒÀÀµÕâ¸öÅäÖã¬ËùÒÔÐèÒªÕâ¸ö¼¯ÖÐÌṩÅäÖ÷þÎñµÄ·þÎñ¾ß±¸ºÜ¸ßµÄ¿É¿¿ÐÔ¡£Ò»°ãÎÒÃÇ¿ÉÒÔÓÃÒ»¸ö¼¯ÈºÀ´ÌṩÕâ¸öÅäÖ÷þÎñ£¬µ«ÊÇÓü¯ÈºÌáÉý¿É¿¿ÐÔ£¬ÄÇÈçºÎ±£Ö¤ÅäÖÃÔÚ¼¯ÈºÖеÄÒ»ÖÂÐÔÄØ£¿ Õâ¸öʱºò¾ÍÐèҪʹÓÃÒ»ÖÖʵÏÖÁËÒ»ÖÂÐÔЭÒéµÄ·þÎñÁË¡£Zookeeper¾ÍÊÇÕâÖÖ·þÎñ£¬ËüʹÓÃZabÕâÖÖÒ»ÖÂÐÔЭÒéÀ´ÌṩһÖÂÐÔ¡£ÏÖÔÚÓкܶ࿪ԴÏîĿʹÓÃZookeeperÀ´Î¬»¤ÅäÖ㬱ÈÈçÔÚHBaseÖУ¬¿Í»§¶Ë¾ÍÊÇÁ¬½ÓÒ»¸öZookeeper£¬»ñµÃ±ØÒªµÄHBase¼¯ÈºµÄÅäÖÃÐÅÏ¢£¬È»ºó²Å¿ÉÒÔ½øÒ»²½²Ù×÷¡£»¹ÓÐÔÚ¿ªÔ´µÄÏûÏ¢¶ÓÁÐKafkaÖУ¬Ò²Ê¹ÓÃZookeeperÀ´Î¬»¤brokerµÄÐÅÏ¢¡£ÔÚAlibaba¿ªÔ´µÄSOA¿ò¼ÜDubboÖÐÒ²¹ã·ºµÄʹÓÃZookeeper¹ÜÀíһЩÅäÖÃÀ´ÊµÏÖ·þÎñÖÎÀí¡£

Ãû×Ö·þÎñ

Ãû×Ö·þÎñÕâ¸ö¾ÍºÜºÃÀí½âÁË¡£±ÈÈçΪÁËͨ¹ýÍøÂç·ÃÎÊÒ»¸öϵͳ£¬ÎÒÃǵÃÖªµÀ¶Ô·½µÄIPµØÖ·£¬µ«ÊÇIPµØÖ·¶ÔÈ˷dz£²»ÓѺã¬Õâ¸öʱºòÎÒÃǾÍÐèҪʹÓÃÓòÃûÀ´·ÃÎÊ¡£µ«ÊǼÆËã»úÊDz»ÄÜÊDZðÓòÃûµÄ¡£Ôõô°ìÄØ£¿Èç¹ûÎÒÃÇÿ̨»úÆ÷Àï¶¼±¸ÓÐÒ»·ÝÓòÃûµ½IPµØÖ·µÄÓ³É䣬Õâ¸öµ¹ÊÇÄܽâ¾öÒ»²¿·ÖÎÊÌ⣬µ«ÊÇÈç¹ûÓòÃû¶ÔÓ¦µÄIP·¢Éú±ä»¯ÁËÓÖ¸ÃÔõô°ìÄØ£¿ÓÚÊÇÎÒÃÇÓÐÁËDNSÕâ¸ö¶«Î÷¡£ÎÒÃÇÖ»ÐèÒª·ÃÎÊÒ»¸ö´ó¼ÒÊìÖªµÄ(known)µÄµã£¬Ëü¾Í»á¸æËßÄãÕâ¸öÓòÃû¶ÔÓ¦µÄIPÊÇʲô¡£ÔÚÎÒÃǵÄÓ¦ÓÃÖÐÒ²»á´æÔںܶàÕâÀàÎÊÌâ£¬ÌØ±ðÊÇÔÚÎÒÃǵķþÎñÌØ±ð¶àµÄʱºò£¬Èç¹ûÎÒÃÇÔÚ±¾µØ±£´æ·þÎñµÄµØÖ·µÄʱºò½«·Ç³£²»·½±ã£¬µ«ÊÇÈç¹ûÎÒÃÇÖ»ÐèÒª·ÃÎÊÒ»¸ö´ó¼Ò¶¼ÊìÖªµÄ·ÃÎʵ㣬ÕâÀïÌṩͳһµÄÈë¿Ú£¬ÄÇôά»¤ÆðÀ´½«·½±ãµÃ¶àÁË¡£

·Ö²¼Ê½Ëø

ÆäʵÔÚµÚһƪÎÄÕÂÖÐÒѾ­½éÉÜÁËZookeeperÊÇÒ»¸ö·Ö²¼Ê½Ð­µ÷·þÎñ¡£ÕâÑùÎÒÃǾͿÉÒÔÀûÓÃZookeeperÀ´Ð­µ÷¶à¸ö·Ö²¼Ê½½ø³ÌÖ®¼äµÄ»î¶¯¡£±ÈÈçÔÚÒ»¸ö·Ö²¼Ê½»·¾³ÖУ¬ÎªÁËÌá¸ß¿É¿¿ÐÔ£¬ÎÒÃǵļ¯ÈºµÄÿ̨·þÎñÆ÷É϶¼²¿Êð×ÅͬÑùµÄ·þÎñ¡£µ«ÊÇ£¬Ò»¼þÊÂÇéÈç¹û¼¯ÈºÖеÄÿ¸ö·þÎñÆ÷¶¼½øÐеϰ£¬ÄÇÏ໥֮¼ä¾ÍҪЭµ÷£¬±à³ÌÆðÀ´½«·Ç³£¸´ÔÓ¡£¶øÈç¹ûÎÒÃÇÖ»ÈÃÒ»¸ö·þÎñ½øÐвÙ×÷£¬ÄÇÓÖ´æÔÚµ¥µã¡£Í¨³£»¹ÓÐÒ»ÖÖ×ö·¨¾ÍÊÇʹÓ÷ֲ¼Ê½Ëø£¬ÔÚij¸öʱ¿ÌÖ»ÈÃÒ»¸ö·þÎñÈ¥¸É»î£¬µ±Õą̂·þÎñ³öÎÊÌâµÄʱºòËøÊÍ·Å£¬Á¢¼´fail overµ½ÁíÍâµÄ·þÎñ¡£ÕâÔںܶà·Ö²¼Ê½ÏµÍ³Öж¼ÊÇÕâô×ö£¬ÕâÖÖÉè¼ÆÓÐÒ»¸ö¸üºÃÌýµÄÃû×Ö½ÐLeader Election(leaderÑ¡¾Ù)¡£±ÈÈçHBaseµÄMaster¾ÍÊDzÉÓÃÕâÖÖ»úÖÆ¡£µ«Òª×¢ÒâµÄÊÇ·Ö²¼Ê½Ëø¸úͬһ¸ö½ø³ÌµÄËø»¹ÊÇÓÐÇø±ðµÄ£¬ËùÒÔʹÓõÄʱºòÒª±Èͬһ¸ö½ø³ÌÀïµÄËø¸ü½÷É÷µÄʹÓá£

¼¯Èº¹ÜÀí

ÔÚ·Ö²¼Ê½µÄ¼¯ÈºÖУ¬¾­³£»áÓÉÓÚ¸÷ÖÖÔ­Òò£¬±ÈÈçÓ²¼þ¹ÊÕÏ£¬Èí¼þ¹ÊÕÏ£¬ÍøÂçÎÊÌ⣬ÓÐЩ½Úµã»á½ø½ø³ö³ö¡£ÓÐеĽڵã¼ÓÈë½øÀ´£¬Ò²ÓÐÀϵĽڵãÍ˳ö¼¯Èº¡£Õâ¸öʱºò£¬¼¯ÈºÖÐÆäËû»úÆ÷ÐèÒª¸ÐÖªµ½ÕâÖֱ仯£¬È»ºó¸ù¾ÝÕâÖֱ仯×ö³ö¶ÔÓ¦µÄ¾ö²ß¡£±ÈÈçÎÒÃÇÊÇÒ»¸ö·Ö²¼Ê½´æ´¢ÏµÍ³£¬ÓÐÒ»¸öÖÐÑë¿ØÖÆ½Úµã¸ºÔð´æ´¢µÄ·ÖÅ䣬µ±ÓÐеĴ洢½øÀ´µÄʱºòÎÒÃÇÒª¸ù¾ÝÏÖÔÚ¼¯ÈºÄ¿Ç°µÄ״̬À´·ÖÅä´æ´¢½Úµã¡£Õâ¸öʱºòÎÒÃǾÍÐèÒª¶¯Ì¬¸ÐÖªµ½¼¯ÈºÄ¿Ç°µÄ״̬¡£»¹ÓУ¬±ÈÈçÒ»¸ö·Ö²¼Ê½µÄSOA¼Ü¹¹ÖУ¬·þÎñÊÇÒ»¸ö¼¯ÈºÌṩµÄ£¬µ±Ïû·ÑÕß·ÃÎÊij¸ö·þÎñʱ£¬¾ÍÐèÒª²ÉÓÃijÖÖ»úÖÆ·¢ÏÖÏÖÔÚÓÐÄÄЩ½Úµã¿ÉÒÔÌṩ¸Ã·þÎñ(ÕâÒ²³ÆÖ®Îª·þÎñ·¢ÏÖ£¬±ÈÈçAlibaba¿ªÔ´µÄSOA¿ò¼ÜDubbo¾Í²ÉÓÃÁËZookeeper×÷Ϊ·þÎñ·¢Ïֵĵײã»úÖÆ)¡£»¹ÓпªÔ´µÄKafka¶ÓÁоͲÉÓÃÁËZookeeper×÷ΪCosnumerµÄÉÏÏÂÏß¹ÜÀí¡£

×Ô¼ºµÄһЩÀí½â£º

Leader¿ÉÒÔ½ÓÊÜclientÇëÇó£¬Ò²½ÓÊÕÆäËûServerת·¢µÄдÇëÇ󣬸ºÔð¸üÐÂϵͳ״̬¡£ FollowerÒ²¿ÉÒÔ½ÓÊÕclientÇëÇó£¬Èç¹ûÊÇдÇëÇó½«×ª·¢¸øLeaderÀ´¸üÐÂϵͳ״̬£¬¶ÁÇëÇóÔòÓÉFollowerµÄÄÚ´æÊý¾Ý¿âÖ±½ÓÏìÓ¦¡£

ÊÂÎï²Ù×÷

ÔÚZooKeeperÖУ¬ÄܸıäZooKeeper·þÎñÆ÷״̬µÄ²Ù×÷³ÆÎªÊÂÎñ²Ù×÷¡£Ò»°ã°üÀ¨Êý¾Ý½Úµã´´½¨Óëɾ³ý¡¢Êý¾ÝÄÚÈݸüкͿͻ§¶Ë»á»°´´½¨ÓëʧЧµÈ²Ù×÷¡£¶ÔӦÿһ¸öÊÂÎñÇëÇó£¬ZooKeeper¶¼»áΪÆä·ÖÅäÒ»¸öÈ«¾ÖΨһµÄÊÂÎñID£¬Óà ZXID ±íʾ£¬Í¨³£ÊÇÒ»¸ö64λµÄÊý×Ö¡£Ã¿Ò»¸ö ZXID¶ÔÓ¦Ò»´Î¸üвÙ×÷£¬´ÓÕâЩ ZXID ÖпÉÒÔ¼ä½ÓµØÊ¶±ð³ö ZooKeeper ´¦ÀíÕâЩÊÂÎñ²Ù×÷ÇëÇóµÄ

È«¾Ö˳Ðò¡£

Watcher(ʼþ¼àÌýÆ÷)

ZooKeeper ÖÐÒ»¸öºÜÖØÒªµÄÌØÐÔ¡£ZooKeeperÔÊÐíÓû§ÔÚÖ¸¶¨½ÚµãÉÏ×¢²áһЩ Watcher£¬²¢ÇÒÔÚÒ»Ð©ÌØ¶¨Ê¼þ´¥·¢µÄʱºò£¬ZooKeeper·þÎñ¶Ë»á½«Ê¼þ֪ͨµ½¸ÐÐËȤµÄ¿Í»§¶ËÉÏÈ¥¡£¸Ã»úÖÆÊÇ ZooKeeper ʵÏÖ·Ö²¼Ê½Ð­µ÷·þÎñµÄÖØÒªÌØÐÔ¡£

ZooKeeperÊý¾ÝÄ£Ð͵ĽṹÕûÌåÉÏ¿ÉÒÔ¿´×÷ÊÇÒ»¿ÃÊ÷£¬Ã¿¸ö½Úµã³Æ×öÒ»¸öZNode¡£Ã¿¸öZNode¶¼¿ÉÒÔͨ¹ýÆä·¾¶Î¨Ò»±êʶÔÚÿ¸öZNodeÉϿɴ洢ÉÙÁ¿Êý¾Ý(ĬÈÏÊÇ1M, ¿ÉÒÔͨ¹ýÅäÖÃÐÞ¸Ä, ͨ³£²»½¨ÒéÔÚZNodeÉÏ´æ´¢´óÁ¿µÄÊý¾Ý)

ZooKeeperÖ§³ÖÒ»ÖÖWatch²Ù×÷£¬Client¿ÉÒÔÔÚij¸öZNodeÉÏÉèÖÃÒ»¸öWatcher£¬À´Watch¸ÃZNodeÉϵı仯¡£Èç¹û¸ÃZNodeÉÏÓÐÏàÓ¦µÄ±ä»¯£¬¾Í»á´¥·¢Õâ¸öWatcher£¬°ÑÏàÓ¦µÄʼþ֪ͨ¸øÉèÖÃWatcherµÄClient¡£ÐèҪעÒâµÄÊÇ£¬ZooKeeperÖеÄWatcherÊÇÒ»´ÎÐԵ쬼´´¥·¢Ò»´Î¾Í»á±»È¡Ïû£¬Èç¹ûÏë¼ÌÐøWatchµÄ»°£¬ÐèÒª¿Í»§¶ËÖØÐÂÉèÖÃWatcher

½Úµã״̬

ÿ¸ö¼¯ÈºÖеĽڵ㶼ÓÐÒ»¸ö״̬ LOOKING, FOLLOWING, LEADING, OBSERVING¡£¶¼ÊôÓÚÕâ4ÖÖ£¬Ã¿¸ö½ÚµãÆô¶¯µÄʱºò¶¼ÊÇLOOKING״̬£¬Èç¹ûÕâ¸ö½Úµã²ÎÓëÑ¡¾Ùµ«×îºó²»ÊÇleader£¬Ôò״̬ÊÇFOLLOWING£¬Èç¹û²»²ÎÓëÑ¡¾ÙÔòÊÇOBSERVING£¬leaderµÄ״̬ÊÇLEADING¡£

¹ØÓÚZooKeeper¼¯Èº·þÎñÆ÷Êý

ZooKeeper ¹Ù·½È·Êµ¸ø³öÁ˹ØÓÚÆæÊýµÄ½¨Ò飬µ«¾ø´ó²¿·Ö ZooKeeper Óû§¶ÔÓÚÕâ¸ö½¨ÒéÈÏʶÓÐÆ«²î¡£Ò»¸ö ZooKeeper ¼¯ÈºÈç¹ûÒª¶ÔÍâÌṩ¿ÉÓõķþÎñ£¬ÄÇô¼¯ÈºÖбØÐëÒªÓйý°ëµÄ»úÆ÷Õý³£¹¤×÷²¢Çұ˴ËÖ®¼äÄܹ»Õý³£Í¨ÐÅ¡£»ùÓÚÕâ¸öÌØÐÔ£¬Èç¹ûÏë´î½¨Ò»¸öÄܹ»ÔÊÐí N ̨»úÆ÷ down µôµÄ¼¯Èº£¬ÄÇô¾ÍÒª²¿ÊðÒ»¸öÓÉ 2*N+1 ̨·þÎñÆ÷¹¹³ÉµÄ ZooKeeper ¼¯Èº¡£Òò´Ë£¬Ò»¸öÓÉ 3 ̨»úÆ÷¹¹³ÉµÄ ZooKeeper ¼¯Èº£¬Äܹ»ÔÚ¹Òµô 1 ̨»úÆ÷ºóÒÀÈ»Õý³£¹¤×÷£¬¶ø¶ÔÓÚÒ»¸öÓÉ 5 ̨·þÎñÆ÷¹¹³ÉµÄ ZooKeeper ¼¯Èº£¬Äܹ»¶Ô 2 ̨»úÆ÷¹ÒµôµÄÇé¿ö½øÐÐÈÝÔÖ¡£×¢Ò⣬Èç¹ûÊÇÒ»¸öÓÉ6̨·þÎñÆ÷¹¹³ÉµÄ ZooKeeper ¼¯Èº£¬Í¬ÑùÖ»Äܹ»¹Òµô 2 ̨»úÆ÷£¬ÒòΪÈç¹û¹Òµô 3 ̨£¬Ê£ÏµĻúÆ÷¾ÍÎÞ·¨ÊµÏÖ¹ý°ëÁË¡£

zookeeperÓÐÕâÑùÒ»¸öÌØÐÔ£º

¡¾¼¯ÈºÖÐÖ»ÒªÓг¬¹ý¹ý°ëµÄ»úÆ÷ÊÇÕý³£¹¤×÷µÄ£¬ÄÇôÕû¸ö¼¯Èº¶ÔÍâ¾ÍÊÇ¿ÉÓõġ¿

Ò²¾ÍÊÇ˵Èç¹ûÓÐ2¸özookeeper£¬ÄÇôֻҪÓÐ1¸öËÀÁËzookeeper¾Í²»ÄÜÓÃÁË£¬ÒòΪ1ûÓйý°ë£¬ËùÒÔ2¸özookeeperµÄËÀÍöÈÝÈ̶ÈΪ0£»

ͬÀí£¬ÒªÊÇÓÐ3¸özookeeper£¬Ò»¸öËÀÁË£¬»¹Ê£ÏÂ2¸öÕý³£µÄ£¬¹ý°ëÁË£¬ËùÒÔ3¸özookeeperµÄÈÝÈ̶ÈΪ1£»

ͬÀíÄã¶àÁоټ¸¸ö£º2->0;3->1;4->1;5->2;6->2»á·¢ÏÖÒ»¸ö¹æÂÉ£¬2nºÍ2n-1µÄÈÝÈ̶ÈÊÇÒ»ÑùµÄ£¬

¶¼ÊÇn-1£¬ËùÒÔΪÁ˸ü¼Ó¸ßЧ£¬ºÎ±ØÔö¼ÓÄÇÒ»¸ö²»±ØÒªµÄzookeeperÄØ¡£

ZooKeeper¿ÉÉìËõÐÔ

ÄÇô£¬ZooKeeperΪʲôҪÒýÈëObserverÕâ¸ö½ÇɫĨ£¿ÆäʵÔÚZooKeeperÖÐÒýÈëObserver£¬Ö÷ÒªÊÇΪÁËʹZooKeeper¾ßÓиüºÃµÄ¿ÉÉìËõÐÔ¡£ÄÇô£¬ºÎΪ¿ÉÉìËõÐÔ£¿¹ØÓÚÉìËõÐÔ£¬¶ÔÓÚ²»Í¬µÄÈËÒâζ×Ų»Í¬µÄÊÂÇé¡£ ¶øÔÚÕâÀïÊÇ˵£¬Èç¹ûÎÒÃǵŤ×÷¸ºÔØ¿ÉÒÔͨ¹ý¸øÏµÍ³·ÖÅä¸ü¶àµÄ×ÊÔ´À´·Öµ££¬ÄÇôÕâ¸öϵͳ¾ÍÊÇ¿ÉÉìËõµÄ£»Ò»¸ö²»¿ÉÉìËõµÄϵͳȴÎÞ·¨Í¨¹ýÔö¼Ó×ÊÔ´À´ÌáÉýÐÔÄÜ£¬ÉõÖÁ»áÔÚ¹¤×÷¸ºÔØÔö¼Óʱ£¬ÐÔÄܻἱ¾çϽµ¡£

ÔÚObserver³öÏÖÒÔǰ£¬ZooKeeperµÄÉìËõÐÔÓÉFollowerÀ´ÊµÏÖ£¬ÎÒÃÇ¿ÉÒÔͨ¹ýÌí¼ÓFollower½ÚµãµÄÊýÁ¿À´±£Ö¤ZooKeeper·þÎñµÄ¶ÁÐÔÄÜ¡£µ«ÊÇËæ×ÅFollower½ÚµãÊýÁ¿µÄÔö¼Ó£¬ZooKeeper·þÎñµÄдÐÔÄÜÊܵ½ÁËÓ°Ïì¡£

¼òµ¥À´Ëµ£¬ZabЭÒ鹿¶¨£ºÀ´×ÔClientµÄËùÓÐдÇëÇ󣬶¼Òª×ª·¢¸øZK·þÎñÖÐΨһµÄServer¡ªLeader£¬ÓÉLeader¸ù¾Ý¸ÃÇëÇ󷢯ðÒ»¸öProposal£¨ÇëÇ󣩡£È»ºó£¬ÆäËûµÄServer¶Ô¸ÃProposal£¨ÇëÇ󣩽øÐÐVote£¨Í¶Æ±£©¡£Ö®ºó£¬Leader¶ÔVote£¨Í¶Æ±£©½øÐÐÊÕ¼¯£¬µ±VoteÊýÁ¿¹ý°ëʱLeader»áÏòËùÓеÄServer·¢ËÍÒ»¸ö֪ͨÏûÏ¢¡£×îºó£¬µ±ClientËùÁ¬½ÓµÄServerÊÕµ½¸ÃÏûϢʱ£¬»á°Ñ¸Ã²Ù×÷¸üе½ÄÚ´æÖв¢¶ÔClientµÄдÇëÇó×ö³ö»ØÓ¦¡£

´ÓͼÖÐÎÒÃÇ¿ÉÒÔ¿´³ö£¬ ZooKeeper ·þÎñÆ÷ÔÚÉÏÊöЭÒéÖÐʵ¼Ê°çÑÝÁËÁ½¸öÖ°ÄÜ¡£ËüÃÇÒ»·½Ãæ´Ó¿Í»§¶Ë½ÓÊÜÁ¬½ÓÓë²Ù×÷ÇëÇó£¬ÁíÒ»·½Ãæ¶Ô²Ù×÷½á¹û½øÐÐͶƱ¡£ÕâÁ½¸öÖ°ÄÜÔÚ ZooKeeper¼¯ÈºÀ©Õ¹µÄʱºò±Ë´ËÖÆÔ¼¡£ÀýÈ磬µ±ÎÒÃÇÏ£ÍûÔö¼Ó ZK·þÎñÖÐClientÊýÁ¿µÄʱºò£¬ÄÇôÎÒÃǾÍÐèÒªÔö¼ÓServerµÄÊýÁ¿£¬À´Ö§³ÖÕâô¶àµÄ¿Í»§¶Ë¡£È»¶ø£¬´ÓZabЭÒé¶ÔдÇëÇóµÄ´¦Àí¹ý³ÌÖÐÎÒÃÇ¿ÉÒÔ·¢ÏÖ£¬Ôö¼Ó·þÎñÆ÷µÄÊýÁ¿£¬ÔòÔö¼ÓÁ˶ÔЭÒéÖÐͶƱ¹ý³ÌµÄѹÁ¦¡£ÒòΪLeader½Úµã±ØÐëµÈ´ý¼¯ÈºÖйý°ëServerÏìӦͶƱ£¬ÓÚÊǽڵãµÄÔö¼ÓʹµÃ²¿·Ö¼ÆËã»úÔËÐнÏÂý£¬´Ó¶øÍÏÂýÕû¸öͶƱ¹ý³ÌµÄ¿ÉÄÜÐÔÒ²ËæÖ®Ìá¸ß£¬Ð´²Ù×÷Ò²»áËæÖ®Ï½µ¡£ÕâÕýÊÇÎÒÃÇÔÚʵ¼Ê²Ù×÷Öп´µ½µÄÎÊÌ⡪¡ªËæ×Å ZooKeeper ¼¯Èº±ä´ó£¬Ð´²Ù×÷µÄÍÌÍÂÁ¿»áϽµ¡£

ËùÒÔ£¬ÎÒÃDz»µÃ²»µÃÔÚÔö¼ÓClientÊýÁ¿µÄÆÚÍûºÍÎÒÃÇÏ£Íû±£³Ö½ÏºÃÍÌÍÂÐÔÄܵįÚÍû¼ä½øÐÐȨºâ¡£Òª´òÆÆÕâÒ»ñîºÏ¹ØÏµ£¬ÎÒÃÇÒýÈëÁ˲»²ÎÓëͶƱµÄ·þÎñÆ÷£¬³ÆÎªObserver¡£ Observer¿ÉÒÔ½ÓÊܿͻ§¶ËµÄÁ¬½Ó£¬²¢½«Ð´ÇëÇóת·¢¸øLeader½Úµã¡£µ«ÊÇ£¬Leader½Úµã²»»áÒªÇó Observer²Î¼ÓͶƱ¡£Ïà·´£¬Observer²»²ÎÓëͶƱ¹ý³Ì£¬½ö½öÔÚÉÏÊöµÚ3šiÄÇÑù£¬ºÍÆäËû·þÎñ½ÚµãÒ»ÆðµÃµ½Í¶Æ±½á¹û¡£

Zookeeper¹¤×÷Á÷³Ì-Leader

1 .»Ö¸´Êý¾Ý£»

2 .ά³ÖÓëLearnerµÄÐÄÌø£¬½ÓÊÕLearnerÇëÇó²¢ÅжÏLearnerµÄÇëÇóÏûÏ¢ÀàÐÍ£»

3 .LearnerµÄÏûÏ¢ÀàÐÍÖ÷ÒªÓÐPINGÏûÏ¢¡¢REQUESTÏûÏ¢¡¢ACKÏûÏ¢¡¢REVALIDATEÏûÏ¢£¬¸ù¾Ý²»Í¬µÄÏûÏ¢ÀàÐÍ£¬½øÐв»Í¬µÄ´¦Àí¡£

PING ÏûÏ¢ÊÇÖ¸LearnerµÄÐÄÌøÐÅÏ¢£»

REQUESTÏûÏ¢ÊÇFollower·¢Ë͵ÄÌáÒéÐÅÏ¢£¬°üÀ¨Ð´ÇëÇó¼°Í¬²½ÇëÇó£»

ACKÏûÏ¢ÊÇ FollowerµÄ¶ÔÌáÒéµÄ»Ø¸´£¬³¬¹ý°ëÊýµÄFollowerͨ¹ý£¬Ôòcommit¸ÃÌáÒ飻

REVALIDATEÏûÏ¢ÊÇÓÃÀ´ÑÓ³¤SESSIONÓÐЧʱ¼ä¡£

Zookeeper¹¤×÷Á÷³Ì-Follower

FollowerÖ÷ÒªÓÐËĸö¹¦ÄÜ£º

1.ÏòLeader·¢ËÍÇëÇó£¨PINGÏûÏ¢¡¢REQUESTÏûÏ¢¡¢ACKÏûÏ¢¡¢REVALIDATEÏûÏ¢£©£»

2.½ÓÊÕLeaderÏûÏ¢²¢½øÐд¦Àí£»

3.½ÓÊÕClientµÄÇëÇó£¬Èç¹ûΪдÇëÇ󣬷¢Ë͸øLeader½øÐÐͶƱ£»

4.·µ»ØClient½á¹û¡£

FollowerµÄÏûϢѭ»·´¦ÀíÈçϼ¸ÖÖÀ´×ÔLeaderµÄÏûÏ¢£º

1 .PINGÏûÏ¢£º ÐÄÌøÏûÏ¢£»

2 .PROPOSALÏûÏ¢£ºLeader·¢ÆðµÄÌá°¸£¬ÒªÇóFollowerͶƱ£»

3 .COMMITÏûÏ¢£º·þÎñÆ÷¶Ë×îÐÂÒ»´ÎÌá°¸µÄÐÅÏ¢£»

4 .UPTODATEÏûÏ¢£º±íÃ÷ͬ²½Íê³É£»

5 .REVALIDATEÏûÏ¢£º¸ù¾ÝLeaderµÄREVALIDATE½á¹û£¬¹Ø±Õ´ýrevalidateµÄsession»¹ÊÇÔÊÐíÆä½ÓÊÜÏûÏ¢£»

6 .SYNCÏûÏ¢£º·µ»ØSYNC½á¹ûµ½¿Í»§¶Ë£¬Õâ¸öÏûÏ¢×î³õÓɿͻ§¶Ë·¢Æð£¬ÓÃÀ´Ç¿ÖƵõ½×îеĸüС£

Zookeeper½ÚµãÊý¾Ý²Ù×÷Á÷³Ì

×¢£º

1.ÔÚClientÏòFollwer·¢³öÒ»¸öдµÄÇëÇó

2.Follwer°ÑÇëÇó·¢Ë͸øLeader

3.Leader½ÓÊÕµ½ÒÔºó¿ªÊ¼·¢ÆðͶƱ²¢Í¨ÖªFollwer½øÐÐͶƱ

4.Follwer°ÑͶƱ½á¹û·¢Ë͸øLeader

5.Leader½«½á¹û»ã×ܺóÈç¹ûÐèҪдÈ룬Ôò¿ªÊ¼Ð´Èëͬʱ°ÑдÈë²Ù×÷֪ͨ¸øLeader£¬È»ºócommit;

6.Follwer°ÑÇëÇó½á¹û·µ»Ø¸øClient

ZookeeperÉè¼ÆÄ¿µÄ

1.×îÖÕÒ»ÖÂÐÔ£ºclient²»ÂÛÁ¬½Óµ½ÄĸöServer£¬Õ¹Ê¾¸øËü¶¼ÊÇͬһ¸öÊÓͼ£¬ÕâÊÇzookeeper×îÖØÒªµÄÐÔÄÜ¡£

2.¿É¿¿ÐÔ£º¾ßÓмòµ¥¡¢½¡×³¡¢Á¼ºÃµÄÐÔÄÜ£¬Èç¹ûÏûÏ¢±»µ½Ò»Ì¨·þÎñÆ÷½ÓÊÜ£¬ÄÇôËü½«±»ËùÓеķþÎñÆ÷½ÓÊÜ¡£

3.ʵʱÐÔ£ºZookeeper±£Ö¤¿Í»§¶Ë½«ÔÚÒ»¸öʱ¼ä¼ä¸ô·¶Î§ÄÚ»ñµÃ·þÎñÆ÷µÄ¸üÐÂÐÅÏ¢£¬»òÕß·þÎñÆ÷ʧЧµÄÐÅÏ¢¡£µ«ÓÉÓÚÍøÂçÑÓʱµÈÔ­Òò£¬Zookeeper²»Äܱ£Ö¤Á½¸ö¿Í»§¶ËÄÜͬʱµÃµ½¸Õ¸üеÄÊý¾Ý£¬Èç¹ûÐèÒª×îÐÂÊý¾Ý£¬Ó¦¸ÃÔÚ¶ÁÊý¾Ý֮ǰµ÷ÓÃsync()½Ó¿Ú¡£

4.µÈ´ýÎ޹أ¨wait-free£©£ºÂýµÄ»òÕßʧЧµÄclient²»µÃ¸ÉÔ¤¿ìËÙµÄclientµÄÇëÇó£¬Ê¹µÃÿ¸öclient¶¼ÄÜÓÐЧµÄµÈ´ý¡£

5.Ô­×ÓÐÔ£º¸üÐÂÖ»Äܳɹ¦»òÕßʧ°Ü£¬Ã»ÓÐÖмä״̬¡£

6.˳ÐòÐÔ£º°üÀ¨È«¾ÖÓÐÐòºÍÆ«ÐòÁ½ÖÖ£ºÈ«¾ÖÓÐÐòÊÇÖ¸Èç¹ûÔÚһ̨·þÎñÆ÷ÉÏÏûÏ¢aÔÚÏûÏ¢bǰ·¢²¼£¬ÔòÔÚËùÓÐServerÉÏÏûÏ¢a¶¼½«ÔÚÏûÏ¢bǰ±»·¢²¼£»Æ«ÐòÊÇÖ¸Èç¹ûÒ»¸öÏûÏ¢bÔÚÏûÏ¢aºó±»Í¬Ò»¸ö·¢ËÍÕß·¢²¼£¬a±Ø½«ÅÅÔÚbÇ°Ãæ¡£

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

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

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

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