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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
·Ö²¼Ê½·þÎñ¿ò¼ÜZookeeper½éÉÜ¡¢Ô­Àí¼°Ó¦ÓÃ
 
×÷Õߣº¼¼Êõѧϰ
  3194  次浏览      27
 2020-6-6  
 
±à¼­ÍƼö:
ÎÄÕÂÖ÷Òª½éÉÜÁËZookeeper»ù´¡ ¡¢ZookeeperÉè¼ÆÄ¿µÄ¡¢Zookeeper¹¤×÷Ô­ÀíÒÔ¼°Ïà¹ØµÄÓ¦Óá£
À´×ÔÓÚ¼òÊ飬,ÓÉ»ðÁú¹ûÈí¼þAnna±à¼­¡¢ÍƼö¡£

Zookeeper¼ò½é

Zookeeper ·Ö²¼Ê½·þÎñ¿ò¼ÜÊÇ Apache Hadoop µÄÒ»¸ö×ÓÏîÄ¿£¬ËüÖ÷ÒªÊÇÓÃÀ´½â¾ö·Ö²¼Ê½Ó¦ÓÃÖо­³£Óöµ½µÄһЩÊý¾Ý¹ÜÀíÎÊÌ⣬È磺ͳһÃüÃû·þÎñ¡¢×´Ì¬Í¬²½·þÎñ¡¢¼¯Èº¹ÜÀí¡¢·Ö²¼Ê½Ó¦ÓÃÅäÖÃÏîµÄ¹ÜÀíµÈµÈ¡£

Zookeeper»ù±¾¸ÅÄî

zk½ÇÉ«

ZookeeperÖеĽÇÉ«Ö÷ÒªÓÐÒÔÏÂÈýÀ࣬ÈçϱíËùʾ£ºzookeeper½ÇÉ«

zk serviceÍøÂç½á¹¹

ZookeeperµÄ¹¤×÷¼¯Èº¿ÉÒÔ¼òµ¥·Ö³ÉÁ½À࣬һ¸öÊÇLeader£¬Î¨Ò»Ò»¸ö£¬ÆäÓàµÄ¶¼ÊÇfollower£¬ÈçºÎÈ·¶¨LeaderÊÇͨ¹ýÄÚ²¿Ñ¡¾ÙÈ·¶¨µÄ¡£

LeaderºÍ¸÷¸öfollowerÊÇ»¥ÏàͨÐŵ쬶ÔÓÚzkϵͳµÄÊý¾Ý¶¼ÊDZ£´æÔÚÄÚ´æÀïÃæµÄ£¬Í¬ÑùÒ²»á±¸·ÝÒ»·ÝÔÚ´ÅÅÌÉÏ¡£

¶ÔÓÚÿ¸özk½Úµã¶øÑÔ£¬¿ÉÒÔ¿´×öÿ¸özk½ÚµãµÄÃüÃû¿Õ¼äÊÇÒ»ÑùµÄ£¬Ò²¾ÍÊÇÓÐͬÑùµÄÊý¾Ý¡££¨¿É²é¿´ÏÂÃæµÄÊ÷½á¹¹£©

Èç¹ûLeader¹ÒÁË£¬zk¼¯Èº»áÖØÐÂÑ¡¾Ù£¬ÔÚºÁÃë¼¶±ð¾Í»áÖØÐÂÑ¡¾Ù³öÒ»¸öLeaer¡£

¼¯ÈºÖгý·ÇÓÐÒ»°ëÒÔÉϵÄzk½Úµã¹ÒÁË£¬zk service²Å²»¿ÉÓá£

zkÃüÃû¿Õ¼ä½á¹¹

ZookeeperµÄÃüÃû¿Õ¼ä¾ÍÊÇzkÓ¦ÓõÄÎļþϵͳ£¬ËüºÍlinuxµÄÎļþϵͳºÜÏñ£¬Ò²ÊÇÊ÷×´£¬ÕâÑù¾Í¿ÉÒÔÈ·¶¨Ã¿¸ö·¾¶¶¼ÊÇΨһµÄ£¬¶ÔÓÚÃüÃû¿Õ¼äµÄ²Ù×÷±ØÐë¶¼ÊǾø¶Ô·¾¶²Ù×÷¡£ÓëlinuxÎļþϵͳ²»Í¬µÄÊÇ£¬linuxÎļþϵͳÓÐĿ¼ºÍÎļþµÄÇø±ð£¬¶øzkͳһ½Ð×öznode£¬Ò»¸öznode½Úµã¿ÉÒÔ°üº¬×Óznode£¬Í¬Ê±Ò²¿ÉÒÔ°üº¬Êý¾Ý¡£

Ìáʾ£º

±ÈÈç/Nginx/conf£¬/ÊÇÒ»¸öznode£¬/NginxÊÇ/µÄ×Óznode£¬/Nginx»¹¿ÉÒÔ°üº¬Êý¾Ý£¬Êý¾ÝÄÚÈݾÍÊÇËùÓа²×°NginxµÄ»úÆ÷IP£¬/Nginx/confÊÇ/Nginx×Óznode£¬ËüÒ²¿ÉÒÔ°üº¬ÄÚÈÝ£¬Êý¾Ý¾ÍÊÇNginxµÄÅäÖÃÎļþÄÚÈÝ¡£ÔÚÓ¦ÓÃÖУ¬ÎÒÃÇ¿ÉÒÔͨ¹ýÕâÑùÒ»¸ö·¾¶¾Í¿ÉÒÔ»ñµÃËùÓа²×°NginxµÄ»úÆ÷IPÁÐ±í£¬»¹¿ÉÒÔ»ñµÃÕâЩ»úÆ÷ÉÏNginxµÄÅäÖÃÎļþ¡£

zk¶ÁдÊý¾Ý

дÊý¾Ý£¬µ«Ò»¸ö¿Í»§¶Ë½øÐÐдÊý¾ÝÇëÇóʱ£¬»áÖ¸¶¨zk¼¯ÈºÖнڵ㣬Èç¹ûÊÇfollower½ÓÊÕµ½Ð´ÇëÇ󣬾ͻá°ÑÇëÇóת·¢¸øLeader£¬Leaderͨ¹ýÄÚ²¿µÄZabЭÒé½øÐÐÔ­×ӹ㲥£¬Ö±µ½ËùÓÐzk½Úµã¶¼³É¹¦Ð´ÁËÊý¾Ýºó£¨ÄÚ´æÍ¬²½ÒÔ¼°´ÅÅ̸üУ©£¬Õâ´ÎдÇëÇóËãÊÇÍê³É£¬È»ºózk service¾Í»á¸øclient·¢»ØÏìÓ¦

¶ÁÊý¾Ý£¬ÒòΪ¼¯ÈºÖÐËùÓеÄzk½Úµã¶¼³ÊÏÖÒ»¸öͬÑùµÄÃüÃû¿Õ¼äÊÓͼ£¨¾ÍÊǽṹÊý¾Ý£©£¬ÉÏÃæµÄдÇëÇóÒѾ­±£Ö¤ÁËдһ´ÎÊý¾Ý±ØÐë±£Ö¤¼¯ÈºËùÓеÄzk½Úµã¶¼ÊÇͬ²½ÃüÃû¿Õ¼äµÄ£¬ËùÒÔ¶ÁµÄʱºò¿ÉÒÔÔÚÈÎÒâһ̨zk½ÚµãÉÏ

ps:ÆäʵдÊý¾ÝµÄʱºò²»ÊÇÒª±£Ö¤ËùÓÐzk½Úµã¶¼Ð´Íê²ÅÏìÓ¦£¬¶øÊDZ£Ö¤Ò»°ëÒÔÉϵĽڵãдÍêÁ˾ͰÑÕâ´Î±ä¸ü¸üе½Äڴ棬²¢ÇÒµ±×ö×îÐÂÃüÃû¿Õ¼äµÄÓ¦Óá£ËùÒÔÔÚ¶ÁÊý¾ÝµÄʱºò¿ÉÄÜ»á¶Áµ½²»ÊÇ×îеÄzk½Úµã£¬ÕâʱºòÖ»ÄÜͨ¹ýsync()½â¾ö¡£ÕâÀïÏȲ»¿¼ÂÇÁË£¬¼ÙÉèÕû¸özk service¶¼ÊÇͬ²½metaÐÅÏ¢µÄ£¬ºóÃæµÄÎÄÕÂÔÙÌÖÂÛ¡£

zk znodeÀàÐÍ

ZookeeperÖÐznodeµÄ½Úµã´´½¨Ê±ºòÊÇ¿ÉÒÔÖ¸¶¨ÀàÐ͵ģ¬Ö÷ÒªÓÐÏÂÃæ¼¸ÖÖÀàÐÍ¡£

PERSISTENT£º³Ö¾Ã»¯znode½Úµã£¬Ò»µ©´´½¨Õâ¸öznodeµã´æ´¢µÄÊý¾Ý²»»áÖ÷¶¯Ïûʧ£¬³ý·ÇÊǿͻ§¶ËÖ÷¶¯µÄdelete¡£

SEQUENCE£ºË³ÐòÔö¼Ó±àºÅznode½Úµã£¬±ÈÈçClientAÈ¥zk serviceÉϽ¨Á¢Ò»¸öznodeÃû×Ö½Ð×ö/Nginx/conf£¬Ö¸¶¨ÁËÕâÖÖÀàÐ͵Ľڵãºózk»á´´½¨/Nginx/conf0000000000£¬ClientBÔÙÈ¥´´½¨¾ÍÊÇ´´½¨/Nginx/conf0000000001£¬ClientCÊÇ´´½¨/Nginx/conf0000000002£¬ÒÔºóÈÎÒâClientÀ´´´½¨Õâ¸öznode¶¼»áµÃµ½Ò»¸ö±Èµ±Ç°zkÃüÃû¿Õ¼ä×î´óznode±àºÅ+1µÄznode£¬Ò²¾Í˵ÈÎÒâÒ»¸öClientÈ¥´´½¨znode¶¼ÊDZ£Ö¤µÃµ½µÄznodeÊǵÝÔöµÄ£¬¶øÇÒÊÇΨһµÄ¡£

EPHEMERAL£ºÁÙʱznode½Úµã£¬ClientÁ¬½Óµ½zk serviceµÄʱºò»á½¨Á¢Ò»¸ösession£¬Ö®ºóÓÃÕâ¸özkÁ¬½ÓʵÀý´´½¨¸ÃÀàÐ͵Äznode£¬Ò»µ©Client¹Ø±ÕÁËzkµÄÁ¬½Ó£¬·þÎñÆ÷¾Í»áÇå³ýsession£¬È»ºóÕâ¸ösession½¨Á¢µÄznode½Úµã¶¼»á´ÓÃüÃû¿Õ¼äÏûʧ¡£×ܽá¾ÍÊÇ£¬Õâ¸öÀàÐ͵ÄznodeµÄÉúÃüÖÜÆÚÊǺÍClient½¨Á¢µÄÁ¬½ÓÒ»ÑùµÄ¡£±ÈÈçClientA´´½¨ÁËÒ»¸öEPHEMERALµÄ/Nginx/conf0000000011µÄznode½Úµã£¬Ò»µ©ClientAµÄzkÁ¬½Ó¹Ø±Õ£¬Õâ¸öznode½Úµã¾Í»áÏûʧ¡£Õû¸özk serviceÃüÃû¿Õ¼äÀï¾Í»áɾ³ýÕâ¸öznode½Úµã¡£

PERSISTENT|SEQUENTIAL£ºË³Ðò×Ô¶¯±àºÅµÄznode½Úµã£¬ÕâÖÖznoe½Úµã»á¸ù¾Ýµ±Ç°Òѽü´æÔÚµÄznode½Úµã±àºÅ×Ô¶¯¼Ó 1£¬¶øÇÒ²»»áËæsession¶Ï¿ª¶øÏûʧ¡£

EPHEMERAL|SEQUENTIAL£ºÁÙʱ×Ô¶¯±àºÅ½Úµã£¬znode½Úµã±àºÅ»á×Ô¶¯Ôö¼Ó£¬µ«ÊÇ»áËæsessionÏûʧ¶øÏûʧ

ZookeeperÉè¼ÆÄ¿µÄ

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

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

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

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

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

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

Zookeeper¹¤×÷Ô­Àí

Zookeeper µÄºËÐÄÊǹ㲥£¬Õâ¸ö»úÖÆ±£Ö¤Á˸÷¸öServerÖ®¼äµÄͬ²½¡£ÊµÏÖÕâ¸ö»úÖÆµÄЭÒé½Ð×öZabЭÒé¡£

ZabЭÒéÓÐÁ½ÖÖģʽ£¬ËüÃÇ·Ö±ðÊǻָ´Ä£Ê½£¨Ñ¡Ö÷£©ºÍ¹ã²¥ ģʽ£¨Í¬²½£©¡£µ±·þÎñÆô¶¯»òÕßÔÚÁìµ¼Õß±ÀÀ£ºó£¬Zab¾Í½øÈëÁ˻ָ´Ä£Ê½£¬µ±Áìµ¼Õß±»Ñ¡¾Ù³öÀ´£¬ÇÒ´ó¶àÊýServerÍê³ÉÁ˺ÍleaderµÄ״̬ͬ²½ÒÔºó£¬ »Ö¸´Ä£Ê½¾Í½áÊøÁË¡£×´Ì¬Í¬²½±£Ö¤ÁËleaderºÍServer¾ßÓÐÏàͬµÄϵͳ״̬¡£ÎªÁ˱£Ö¤ÊÂÎñµÄ˳ÐòÒ»ÖÂÐÔ£¬zookeeper²ÉÓÃÁ˵ÝÔöµÄÊÂÎñidºÅ £¨zxid£©À´±êʶÊÂÎñ¡£ËùÓеÄÌáÒ飨proposal£©¶¼ÔÚ±»Ìá³öµÄʱºò¼ÓÉÏÁËzxid¡£ÊµÏÖÖÐzxidÊÇÒ»¸ö64λµÄÊý×Ö£¬Ëü¸ß32λÊÇepochÓà À´±êʶleader¹ØÏµÊÇ·ñ¸Ä±ä£¬Ã¿´ÎÒ»¸öleader±»Ñ¡³öÀ´£¬Ëü¶¼»áÓÐÒ»¸öеÄepoch£¬±êʶµ±Ç°ÊôÓÚÄǸöleaderµÄͳÖÎʱÆÚ¡£µÍ32λÓÃÓÚµÝÔö¼ÆÊý¡£

ÿ¸öServerÔÚ¹¤×÷¹ý³ÌÖÐÓÐÈýÖÖ״̬£º

LOOKING£ºµ±Ç°Server²»ÖªµÀleaderÊÇË­£¬ÕýÔÚËÑѰ¡£

LEADING£ºµ±Ç°Server¼´ÎªÑ¡¾Ù³öÀ´µÄleader¡£

FOLLOWING£ºleaderÒѾ­Ñ¡¾Ù³öÀ´£¬µ±Ç°ServerÓë֮ͬ²½¡£

Ñ¡Ö÷Á÷³Ì

µ± leader±ÀÀ£»òÕßleaderʧȥ´ó¶àÊýµÄfollower£¬Õâʱºòzk½øÈë»Ö¸´Ä£Ê½£¬»Ö¸´Ä£Ê½ÐèÒªÖØÐÂÑ¡¾Ù³öÒ»¸öеÄleader£¬ÈÃËùÓÐµÄ Server¶¼»Ö¸´µ½Ò»¸öÕýÈ·µÄ״̬¡£

ZookeeperµÄÑ¡¾ÙËã·¨ÓÐÁ½ÖÖ£º

Ò»ÖÖÊÇ»ùÓÚbasic paxosʵÏֵģ¬ÁíÍâÒ»ÖÖÊÇ»ùÓÚfast paxosË㷨ʵÏֵġ£

ϵͳĬÈϵÄÑ¡¾ÙË㷨Ϊfast paxos¡£

basic paxosÁ÷³Ì£º

Ñ¡¾ÙÏß³ÌÓɵ±Ç°Server·¢ÆðÑ¡¾ÙµÄÏ̵߳£ÈΣ¬ÆäÖ÷Òª¹¦ÄÜÊǶÔͶƱ½á¹û½øÐÐͳ¼Æ£¬²¢Ñ¡³öÍÆ¼öµÄServer£»

Ñ¡¾ÙÏß³ÌÊ×ÏÈÏòËùÓÐServer·¢ÆðÒ»´ÎѯÎÊ(°üÀ¨×Ô¼º)£»

Ñ¡¾ÙÏß³ÌÊÕµ½»Ø¸´ºó£¬ÑéÖ¤ÊÇ·ñÊÇ×Ô¼º·¢ÆðµÄѯÎÊ(ÑéÖ¤zxidÊÇ·ñÒ»ÖÂ)£¬È»ºó»ñÈ¡¶Ô·½µÄid(myid)£¬²¢´æ´¢µ½µ±Ç°Ñ¯ÎʶÔÏóÁбíÖУ¬×îºó»ñÈ¡¶Ô·½ÌáÒéµÄleaderÏà¹ØÐÅÏ¢(id,zxid)£¬²¢½«ÕâЩÐÅÏ¢´æ´¢µ½µ±´ÎÑ¡¾ÙµÄͶƱ¼Ç¼±íÖУ»

ÊÕµ½ËùÓÐServer»Ø¸´ÒԺ󣬾ͼÆËã³özxid×î´óµÄÄǸöServer£¬²¢½«Õâ¸öServerÏà¹ØÐÅÏ¢ÉèÖóÉÏÂÒ»´ÎҪͶƱµÄServer£»

Ï߳̽«µ±Ç°zxid×î´óµÄServerÉèÖÃΪµ±Ç°ServerÒªÍÆ¼öµÄLeader£¬Èç¹û´Ëʱ»ñʤµÄServer»ñµÃn/2 + 1µÄServerƱÊý£¬ ÉèÖõ±Ç°ÍƼöµÄleaderΪ»ñʤµÄServer£¬½«¸ù¾Ý»ñʤµÄServerÏà¹ØÐÅÏ¢ÉèÖÃ×Ô¼ºµÄ״̬£¬·ñÔò£¬¼ÌÐøÕâ¸ö¹ý³Ì£¬Ö±µ½leader±»Ñ¡¾Ù³öÀ´¡£Í¨ ¹ýÁ÷³Ì·ÖÎöÎÒÃÇ¿ÉÒԵóö£ºÒªÊ¹Leader»ñµÃ¶àÊýServerµÄÖ§³Ö£¬ÔòServer×ÜÊý±ØÐëÊÇÆæÊý2n+1£¬ÇÒ´æ»îµÄServerµÄÊýÄ¿²»µÃÉÙÓÚ n+1.ÿ¸öServerÆô¶¯ºó¶¼»áÖØ¸´ÒÔÉÏÁ÷³Ì¡£ÔÚ»Ö¸´Ä£Ê½Ï£¬Èç¹ûÊǸմӱÀÀ£×´Ì¬»Ö¸´µÄ»òÕߏկô¶¯µÄserver»¹»á´Ó´ÅÅÌ¿ìÕÕÖлָ´Êý¾ÝºÍ»á»°ÐŠϢ£¬zk»á¼Ç¼ÊÂÎñÈÕÖ¾²¢¶¨ÆÚ½øÐпìÕÕ£¬·½±ãÔÚ»Ö¸´Ê±½øÐÐ״̬»Ö¸´¡£

Ñ¡¾ÙµÄ¾ßÌåÁ÷³ÌͼÈçÏÂËùʾ£º

fast paxosÁ÷³Ì£º

ÔÚÑ¡¾Ù¹ý³ÌÖУ¬Ä³ServerÊ×ÏÈÏòËùÓÐServerÌáÒé×Ô¼ºÒª³ÉΪleader£¬µ±ÆäËüServerÊÕµ½ÌáÒéÒԺ󣬽â¾öepochºÍ zxidµÄ³åÍ»£¬²¢½ÓÊܶԷ½µÄÌáÒ飬ȻºóÏò¶Ô·½·¢ËͽÓÊÜÌáÒéÍê³ÉµÄÏûÏ¢£¬Öظ´Õâ¸öÁ÷³Ì£¬×îºóÒ»¶¨ÄÜÑ¡¾Ù³öLeader¡£

Ñ¡¾ÙµÄ¾ßÌåÁ÷³ÌͼÈçÏÂËùʾ£º

ͬ²½Á÷³Ì

Ñ¡ÍêleaderÒÔºó£¬zk¾Í½øÈë״̬ͬ²½¹ý³Ì¡£

leaderµÈ´ýserverÁ¬½Ó£»

FollowerÁ¬½Óleader£¬½«×î´óµÄzxid·¢Ë͸øleader£»

Leader¸ù¾ÝfollowerµÄzxidÈ·¶¨Í¬²½µã£»

Íê³Éͬ²½ºó֪ͨfollower ÒѾ­³ÉΪuptodate״̬£»

FollowerÊÕµ½uptodateÏûÏ¢ºó£¬ÓÖ¿ÉÒÔÖØÐ½ÓÊÜclientµÄÇëÇó½øÐзþÎñÁË¡£

ͬ²½µÄ¾ßÌåÁ÷³ÌͼÈçÏÂËùʾ£º

¹¤×÷Á÷³Ì

Leader¹¤×÷Á÷³Ì

»Ö¸´Êý¾Ý£»

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

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

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

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

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

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

LeaderµÄ¹¤×÷Á÷³Ì¼òͼ¾ßÌåÈçÏÂËùʾ£º

Leader¹¤×÷Á÷³Ì

Follower¹¤×÷Á÷³Ì

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

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

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

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

·µ»ØClient½á¹û¡£

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

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

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

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

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

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

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

FollowerµÄ¹¤×÷Á÷³Ì¼òͼ¾ßÌåÈçÏÂËùʾ£º

FollowerµÄ¹¤×÷Á÷³Ì

Ó¦ÓÃÆª

·Ö²¼Ê½ÏµÍ³µÄÔËÐÐÊǺܸ´Ôӵģ¬ÒòÎªÉæ¼°µ½ÁËÍøÂçͨÐÅ»¹ÓнڵãʧЧµÈ²»¿É¿ØµÄÇé¿ö¡£ÏÂÃæ½éÉÜÔÚ×ͳµÄmaster-workersÄ£ÐÍ£¬Ö÷Òª¿ÉÒÔ»áÓöµ½Ê²Ã´ÎÊÌ⣬´«Í³·½·¨ÊÇÔõô½â¾öÒÔ¼°ÔõôÓÃzookeeper½â¾ö¡£

Master½Úµã¹ÜÀí

¼¯Èºµ±ÖÐ×îÖØÒªµÄÊÇMaster£¬ËùÒÔÒ»°ã¶¼»áÉèÖÃһ̨MasterµÄBackup¡£

Backup»á¶¨ÆÚÏòMaster»ñÈ¡MetaÐÅÏ¢²¢ÇÒ¼ì²âMasterµÄ´æ»îÐÔ£¬Ò»µ©Master¹ÒÁË£¬BackupÁ¢ÂíÆô¶¯£¬½ÓÌæMasterµÄ¹¤×÷×Ô¼º³ÉΪMaster£¬·Ö²¼Ê½µÄÇé¿ö¶àÖÖ¶àÑù£¬ÒòÎªÉæ¼°µ½ÁËÍøÂçͨÐŵͶ¶¯£¬Õë¶ÔÏÂÃæµÄÇé¿ö:

Backup¼ì²âMaster´æ»îÐÔ´«Í³µÄ¾ÍÊǶ¨ÆÚ·¢°ü£¬Ò»µ©Ò»¶¨Ê±¼ä¶ÎÄÚûÓÐÊÕµ½ÏìÓ¦¾ÍÅж¨Master DownÁË£¬ÓÚÊÇBackup¾ÍÆô¶¯£¬Èç¹ûMasterÆäʵÊÇûÓÐdown£¬BackupÊÕ²»µ½ÏìÓ¦»òÕßÊÕµ½ÏìÓ¦ÑÓ³ÙµÄÔ­ÒòÊÇÒòÎªÍøÂç×èÈûµÄÎÊÌâÄØ£¿BackupÒ²Æô¶¯ÁË£¬Õâʱºò¼¯ÈºÀï¾ÍÓÐÁËÁ½¸öMaster£¬ºÜÓпÉÄܲ¿·Öworkers»ã±¨¸øMaster£¬ÁíÒ»²¿·Öworkers»ã±¨¸øºóÀ´Æô¶¯µÄBackup£¬ÕâÏÂ×Ó·þÎñ¾ÍÈ«ÂÒÁË¡£

BackupÊǶ¨ÆÚͬ²½MasterÖеÄmetaÐÅÏ¢£¬ËùÒÔ×ÜÊÇÖͺóµÄ£¬Ò»µ©Master¹ÒÁË£¬BackupµÄÐÅÏ¢±ØÈ»ÊÇÀϵģ¬ºÜÓпÉÄÜ»áÓ°Ï켯ȺÔËÐÐ״̬¡£

½â¾öÎÊÌâ:

Master½Úµã¸ß¿ÉÓ㬲¢ÇÒ±£Ö¤Î¨Ò»¡£

MetaÐÅÏ¢µÄ¼°Ê±Í¬²½¡£

** Zookeeper MasterÑ¡¾Ù **

Zookeeper»á·ÖÅ䏸ע²áµ½ËüÉÏÃæµÄ¿Í»§¶ËÒ»¸ö±àºÅ£¬²¢ÇÒzk×Ô¼º»á±£Ö¤Õâ¸ö±àºÅµÄΨһÐԺ͵ÝÔöÐÔ£¬N¶à»úÆ÷ÖÐÖ»ÐèÑ¡³ö±àºÅ×îСµÄClient×÷ΪMaster¾ÍÐУ¬²¢ÇÒ±£Ö¤ÕâЩ»úÆ÷µÄ¶¼Î¬»¤Ò»¸öÒ»ÑùµÄmetaÐÅÏ¢ÊÓͼ£¬Ò»µ©Master¹ÒÁË£¬ÄÇôÕâN»úÆ÷ÖбàºÅ×îСµÄʤÈÎMaster£¬MetaÐÅÏ¢ÊÇÒ»Öµġ£

¼¯Èºworker¹ÜÀí

¼¯ÈºÖеÄworker¹ÒÁËÊǺܿÉÄܵģ¬Ò»µ©worker A¹ÒÁË£¬Èç¹û´æÔÚÆäÓàµÄworkers»¥ÏàÖ®¼äÐèҪͨÐÅ£¬ÄÇôworkers±ØÐ뾡¿ì¸üÐÂ×Ô¼ºµÄhostsÁÐ±í£¬°Ñ¹ÒÁ˵ÄworkerÌÞ³ý£¬´Ó¶ø²»ÔÚºÍËüͨÐÅ£¬¶øMasterÒª×öµÄÊǰѹÒÁËworkerÉϵÄ×÷Òµµ÷¶Èµ½ÆäËûµÄworkerÉÏ¡£Í¬ÑùµÄ£¬Õą̂workerÖØÐ»ָ´Õý³£ÁË£¬ÒªÍ¨ÖªÆäËûµÄworkers¸üÐÂhostsÁÐ±í¡£´«Í³µÄ×÷·¨¶¼ÊÇÓÐרÃÅµÄ¼à¿ØÏµÍ³£¬Í¨¹ý²»¶ÏÈ¥·¢ÐÄÌø°ü(±ÈÈçping)À´·¢ÏÖworkerÊÇ·ñalive£¬È±ÏݾÍÊǼ°Ê±ÐÔÎÊÌ⣬²»ÄÜÓ¦ÓÃÓÚÔÚÏßÂÊÒªÇó½Ï¸ßµÄ³¡¾°

½â¾öÎÊÌâ:

¼¯Èºworker¼à¿Ø¡£

** Zookeeper¼à¿Ø¼¯Èº **

ÀûÓÃzookeeper½¨Á¢znodeµÄǿһÖÂÐÔ£¬¿ÉÒÔÓÃÓÚÄÇÖÖ¶Ô¼¯ÈºÖлúÆ÷״̬£¬»úÆ÷ÔÚÏßÂÊÓнϸßÒªÇóµÄ³¡¾°£¬Äܹ»¿ìËÙ¶Ô¼¯ÈºÖлúÆ÷±ä»¯×÷³öÏìÓ¦¡£

·Ö²¼Ê½Ëø

ÔÚһ̨»úÆ÷ÉÏÒª¶à¸ö½ø³Ì»òÕß¶à¸öÏ̲߳Ù×÷ͬһ×ÊÔ´±È½Ï¼òµ¥£¬ÒòΪ¿ÉÒÔÓдóÁ¿µÄ״̬ÐÅÏ¢»òÕßÈÕÖ¾ÐÅÏ¢Ìṩ±£Ö¤£¬±ÈÈçÁ½¸öAºÍB½ø³Ìͬʱдһ¸öÎļþ£¬¼ÓËø¾Í¿ÉÒÔʵÏÖ¡£µ«ÊÇ·Ö²¼Ê½ÏµÍ³Ôõô°ì£¿ÐèÒªÒ»¸öÈý·½µÄ·ÖÅäËøµÄ»úÖÆ£¬¼¸°Ų̀worker¶¼¶Ôͬһ¸öÍøÂçÖеÄÎļþд²Ù×÷£¬ÔõôЭͬ£¿»¹ÓÐÔõô±£Ö¤¸ßЧµÄÔËÐУ¿

½â¾öÎÊÌâ:

¸ßЧ·Ö²¼Ê½µÄ·Ö²¼Ê½Ëø

Zookeeper·Ö²¼Ê½Ëø

·Ö²¼Ê½ËøÖ÷ÒªµÃÒæÓÚZooKeeperΪÎÒÃDZ£Ö¤ÁËÊý¾ÝµÄǿһÖÂÐÔ£¬zookeeperµÄznode½Úµã´´½¨µÄΨһÐԺ͵ÝÔöÐÔÄܱ£Ö¤ËùÓÐÀ´ÇÀËøµÄworkerµÄÔ­×ÓÐÔ¡£

ÅäÖÃÎļþ¹ÜÀí

¼¯ÈºÖÐÅäÖÃÎļþµÄ¸üкÍͬ²½ÊÇºÜÆµ·±µÄ£¬´«Í³µÄÅäÖÃÎļþ·Ö·¢¶¼ÊÇÐèÒª°ÑÅäÖÃÎļþÊý¾Ý·Ö·¢µ½Ã¿Ì¨workerÉÏ£¬È»ºó½øÐÐworkerµÄreload£¬ÕâÖÖ·½Ê½ÊÇ×µÄ·½Ê½£¬½á¹¹ºÜÄÑά»¤£¬ÒòΪÈç¹û¼¯Èºµ±ÖÐÓпÉÄܺܶàÖÖÓ¦ÓõÄÅäÖÃÎļþҪͬ²½£¬¶øÇÒЧÂʺܵͣ¬¼¯Èº¹æÄ£Ò»´ó¸ºÔغܸߡ£»¹ÓÐÒ»ÖÖ¾ÍÊÇÿ´Î¸üаÑÅäÖÃÎļþµ¥¶À±£´æµ½Ò»¸öÊý¾Ý¿âÀïÃæ£¬È»ºóworker¶Ë¶¨ÆÚpullÊý¾Ý£¬ÕâÖÖ·½Ê½¾ÍÊÇÊý¾Ý¼°Ê±ÐԵò»µ½Í¬²½¡£

½â¾öÎÊÌâ:

ͳһÅäÖÃÎļþ·Ö·¢²¢ÇÒ¼°Ê±ÈÃworkerÉúЧ

Zookeeper·¢²¼Óë¶©ÔÄÄ£ÐÍ

·¢²¼Óë¶©ÔÄÄ£ÐÍ£¬¼´ËùνµÄÅäÖÃÖÐÐÄ£¬¹ËÃû˼Òå¾ÍÊÇ·¢²¼Õß½«Êý¾Ý·¢²¼µ½ZK½ÚµãÉÏ£¬¹©¶©ÔÄÕß¶¯Ì¬»ñÈ¡Êý¾Ý£¬ÊµÏÖÅäÖÃÐÅÏ¢µÄ¼¯ÖÐʽ¹ÜÀíºÍ¶¯Ì¬¸üС£ÀýÈçÈ«¾ÖµÄÅäÖÃÐÅÏ¢£¬·þÎñʽ·þÎñ¿ò¼ÜµÄ·þÎñµØÖ·ÁбíµÈ¾Í·Ç³£ÊʺÏʹÓá£

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

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

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

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