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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
·Ö²¼Ê½¹²Ê¶Ëã·¨Ö®RaftËã·¨
 
×÷Õߣºaidanzheng
  2186  次浏览      31
2021-1-18
 
±à¼­ÍƼö:
±¾ÎÄÖ÷Òª½éÉÜÁË·Ö²¼Ê½¹²Ê¶Ëã·¨Ö®RaftËã·¨µÄÁìµ¼ÕßÑ¡¾Ù¡¢ÈÎÆÚ±àºÅ¡¢ÈÕÖ¾¸´ÖÆÈÕÖ¾¸´ÖÆÒì³£¼°µ¥½Úµã±ä¸üÄÚÈÝ¡£
±¾ÎÄÀ´×Ôcsdn£¬ÓÉ»ðÁú¹ûÈí¼þLinda±à¼­¡¢ÍƼö¡£

RaftËã·¨ÊÇÒ»ÇÐÒÔÁìµ¼ÕßΪÖ÷£¬ÔÚ·Ö²¼Ê½ÏµÍ³ÖУ¬¾ÍһϵÁÐÖµ´ï³É¹²Ê¶ÓëÈÕÖ¾µÄÒ»Ö¡£ÊÇÒ»ÖÖÇ¿Áìµ¼ÕßÄ£ÐÍ£¬Áìµ¼ÕßµÄÐÔÄܾö¶¨ÁËÕû¸ö¼¯ÈºµÄÐÔÄÜ¡£ËüÊÇÏÖ½ñ×î³£ÓõÄÒ»ÖÖ·Ö²¼Ê½¹²Ê¶Ëã·¨¡£

Áìµ¼ÕßÑ¡¾Ù

RaftË㷨ʹÓÃÈçϵÄÈý¸ö½ÇÉ«£¬ÃèÊöÿ¸ö½ÚµãµÄ״̬¡£

1¡¢Áìµ¼Õß(Leader)£º¼¯ÈºÖеİԵÀ×ܲã¬ÆäÖ÷ÒªÖ°ÄÜÊÇ´¦ÀíдÇëÇó¡¢Í¬²½ÈÕÖ¾¸øÆäÓà½ÚµãÓë·¢ËÍÐÄÌøÐÅÏ¢¡£Áìµ¼Õßͨ¹ýÐÄÌøÐÅÏ¢£¬¸æË߯äËû½ÚµãÎÒ»¹»î×Å£¬±ð½øÐÐÁìµ¼ÕßÑ¡¾Ù¡£ÔÚÕý³£Çé¿öÏ£¬Ñ¡¾Ù³öÀ´µÄÁìµ¼Õß»áÒ»Ö±ÊÇÁìµ¼Õß¡£

2¡¢¸úËæÕß(Follower)£ºÄ¬Ä¬µÄ½ÓÊÜÁìµ¼Õß½ÚµãµÄÈÕÖ¾¸´ÖÆÓëÐÄÌø³¬Ê±RPC¡£µ±¸úËæÕßÔÚËæ»úµÄ³¬Ê±Ê±¼äÄÚ£¬Ã»ÓÐÊÕµ½Áìµ¼ÕßµÄÐÄÌøÐÅÏ¢£¬ÄÇô¾ÍÍÆ¾Ù×Ô¼ºÎªºòÑ¡Õߣ¬·¢ÆðÁìµ¼ÕßÑ¡¾Ù¡£

3¡¢ºòÑ¡Õß(Candidate)£ºÁìµ¼ÕßÑ¡Ôñ¹ý³ÌÖеÄÒ»¸öÖмä״̬¡£Õâ¸ö״̬ϵĽڵã»áÏòÆäËû½Úµã·¢ËÍÇëÇóͶƱµÄRPCÇëÇ󣬵±ºòÑ¡ÕßÔÚ³¬Ê±Ê±¼äÄÚÊÕµ½³¬¹ý¹ý°ëÊýµÄѡƱ£¬¾ÍÈ·ÈÏ×Ô¼ºÊÇÁìµ¼Õߣ¬·ñÔò¾ÍµÈ´ýËæ»úµÄ³¬Ê±Ê±¼ä£¬·¢ÆðÏÂÒ»ÂÖÁ쵼ѡ¾Ù¡£RaftË㷨ͨ¹ýÕâ¸öËæ»úµÄ³¬Ê±Ê±¼ä£¬¿ÉÒÔ¸ßЧµÄÑ¡¾Ù³öÁìµ¼Õߣ¬Ò»°ãÒ»ÂÖÑ¡¾Ù¾Í¿ÉÒÔÑ¡¾Ù³öÁìµ¼Õß¡£

ΪÁËÃèÊö·½±ã£¬ÏÂÎĵÄͼ±í·Ö±ðʹÓÃÕâÈý¸ö½ÇÉ«µÄÊ××Öĸ£¬´úÂëÕâÈýÖÖ״̬¡£

ÏÂÎÄÒÔÒ»¸öÈý½ÚµãµÄ¼¯Èº£¬ËµÃ÷Áìµ¼ÕßÑ¡¾ÙµÄ¹ý³Ì¡£

1¡¢¼¯Èº¸ÕÉÏÏßµÄʱºò£¬ËûÃǶ¼´¦ÓÚFollower״̬

2¡¢¼ÙÉèÈý¸ö½ÚµãµÄËæ»ú³¬Ê±Ê±¼ä·Ö±ðÊÇ£º1000ms¡¢1100ms¡¢1200ms£¬ÈÎÆÚ±àºÅ¶¼Îª0¡£ÓÉÓÚ½ÚµãAµÄ³¬Ê±Ê±¼ä×î¶Ì£¬ËùÒÔËü»áÂÊÏÈÍÆ¼ö×Ô¼ºÎªºòÑ¡Õß¡£

3¡¢A½Úµã×ÔÔöÈÎÆÚ±àºÅ£¬¸ø×Ô¼ºÍ¶ÉÏÒ»ÕÅѡƱ£¬ÇÒ·¢ËÍ×ÔÔöºóµÄÈÎÆÚ±àºÅ1µÄÇëÇóͶƱRPC¡£µ±B½ÚµãÊÕµ½AµÄͶƱÇëÇó£¬ÓÉÓÚB½Úµãµ±Ç°µÄÈÎÆÚ±àºÅΪ0£¬¹Ê»á¸üÐÂÈÎÆÚ±àºÅΪ1£¬ÇÒ½«Ñ¡Æ±Í¶¸ø½ÚµãA¡£²¢ÇÒB³Ðŵ²»ÔÚͶƱ¸øÈÎÆÚ±àºÅСÓÚµÈÓÚ1µÄͶƱÇëÇó£¨Ò»¸öÈÎÆÚ±àºÅÄÚÖ»ÄÜͶһÕÅѡƱ£©¡£C½ÚµãÒ²Ò»ÑùµÄ¡£

4¡¢Èç¹û½ÚµãAÔÙÁìµ¼ÕßÑ¡¾ÙµÄ³¬Ê±Ê±¼äÄÚ£¬Ó®µÃ´ó¶àÊý½ÚµãµÄѡƱ£¬ÄÇô¾Í»á³ÉΪ±¾½ìÈÎÆÚÄÚµÄÁìµ¼Õß¡£¿ªÊ¼½ÓÊܿͻ§¶ËµÄдÇëÇó¡¢·¢ËÍÈÕÖ¾¸´ÖÆÓëÐÄÌøRPC¸øÆäËû½Úµã¡£

ÈÎÆÚ±àºÅ

ÏñÒé»áµÄÒéÔ±Ò»Ñù£¬Ã¿¸öÒéÔ±¶¼ÓÐÒ»¸öÈÎÆÚ£¬ÈÎÆÚ½áÊøºóÐèÒªÖØÐ·¢ÆðÑ¡¾Ù¡£RaftËã·¨Ò²ÀàËÆ¡£RaftËã·¨µÄÈÎÆÚ±àºÅÊÇÓÉÒ»¸ö×ÔÔöµÄÕûÊýÀàÐͱíʾ£¬Ëæ×ÅÑ¡¾ÙµÄ¾ÙÐжø¸Ä±ä£¬ÔÙÒ»¸öÁìµ¼ÕßµÄÈÎÆÚÄÚ£¬ÈÎÆÚ±àºÅ²»±ä¡£Æä°üº¬Èçϵĺ¬Ò壺

1¡¢ÈÎÆÚ±àºÅÊÇÓɺòÑ¡Õß²úÉúµÄ£¬Ã¿´ÎÁìµ¼ÕßÑ¡¾Ù¶¼»á×ÔÔöÈÎÆÚ±àºÅ¡£

2¡¢ÔÙÒ»¸öÁìµ¼ÕßµÄÈÎÆÚÄÚ£¬ÈÎÆÚ±àºÅµÄÖµ¶¼²»±ä£¬Ö±µ½Ä³¸ö¸úËæÕß»ñÈ¡ÐÄÌøÐÅÏ¢³¬Ê±£¬·¢ÆðÁìµ¼ÕßÑ¡¾Ù¡£

3¡¢Ä³¸ö½ÚµãÈç¹ûÊÕµ½±ÈÆäÈÎÆÚ±àºÅ´óµÄÈÎÆÚ±àºÅ£¬Ôò¸üÐÂÆäÈÎÆÚ±àºÅµ½¸ü´óµÄÖµ¡£

4¡¢Áìµ¼Õß»òÕߺòÑ¡ÕßÊÕµ½ÈÎÆÚ±àºÅ¸ü´óµÄÆäËû½ÚµãµÄÇëÇó£¬ÔòÁ¢¼´¸üÐÂΪ¸úËæÕß

5¡¢Èç¹ûij¸ö½ÚµãÊÕµ½µÄÇëÇóµÄÈÎÆÚ±àºÅ±ÈÆäС£¬Ôò¾Ü¾øÇëÇó¡£

6¡¢Áìµ¼ÕßÑ¡Ôñ¹ý³ÌÖУ¬Ä³¸ö½Úµã¶ÔÓÚij¸öÈÎÆÚ±àºÅ½ö¿ÉÒÔͶһÕÅѡƱ¡£

7¡¢Èç¹ûºòÑ¡ÕßÔÚÁìµ¼ÕßÑ¡¾ÙµÄ³¬Ê±Ê±¼äÄÚ£¬Î´»ñÈ¡µ½³¬¹ý°ëÊýµÄѡƱ£¬ÔòµÈ´ýËæ»úµÄ³¬Ê±Ê±¼ä£¬ÔÚ·¢ÆðÑ¡¾Ù¡£RaftË㷨ͨ¹ý2¸ö³¬Ê±Ê±¼ä£¬¼õС¶à¸ö½Úµã¹Ï·ÖѡƱµ¼ÖÂÁìµ¼ÕßÑ¡¾Ùʧ°ÜµÄÇé¿ö³öÏÖ¡£Êµ¼ÊÉÏͨ¹ýËæ»ú³¬Ê±Ê±¼ä£¬ºÜÉÙ³öÏÖѡƱ±»¹Ï·ÖµÄÇé¿ö¡£

8¡¢Áìµ¼ÕßÑ¡¾Ù¹ý³ÌÖУ¬ÈÕÖ¾ÍêÕû¶È¸ßµÄ½Úµã¾Ü¾øÍ¶Æ±¸øÈÕÖ¾Ïà¶Ô¾ÉµÄ½Úµã£¬±£Ö¤Ã¿´ÎÑ¡¾Ù³öÁìµ¼Õߺ󣬲»¶ªÒÑÓ¦ÓõÄÈÕÖ¾£¬×¢ÒâÕâÀïÊÇÒѾ­Ìá½»µÄÈÕÖ¾¡£

ÈÕÖ¾¸´ÖÆ

RaftÈÕÖ¾ÊÇÓÉÈÕÖ¾Ïî×é³É£¬Ã¿¸öÈÕÖ¾Ïî°üÀ¨Ö¸Áî¡¢Ë÷ÒýÓëÈÎÆÚ±àºÅ¡£

Ö¸ÁÊǿͻ§¶Ë·¢Ë͸øÁìµ¼ÕßµÄÒ»ÌõÌõÊý¾Ý¡£

Ë÷Òý£ºÒ²¾ÍÊÇÈÕÖ¾µÄΨһID£¬ËüÊÇÒ»¸öµ¥µ÷µÝÔöµÄÕûÊý¡£

ÈÎÆÚ±àºÅ£º´´½¨ÕâÌõÈÕÖ¾ÏîµÄÁìµ¼ÕßÈÎÆÚ±àºÅ¡£

RaftµÄÈÕÖ¾¸´Öƹý³Ì£¬ÆäʵÊǸöÓÅ»¯Á˵Ķþ½×¶ÎÌá½»Ëã·¨£¬ÈçÏÂͼËùʾ£º

1¡¢µ±Áìµ¼ÕßÊÕµ½À´×Ô¿Í»§¶ËµÄÇëÇó£¬Ìí¼ÓË÷ÒýÓëÈÎÆÚ±àºÅºó£¬Ð´Èë±¾µØÈÕÖ¾ÇÒͨ¹ýÈÕÖ¾¸´ÖÆRPC·¢Ë͸ø¸úËæÕß¡£

2¡¢¸úËæÕßÊÕµ½À´×ÔÁìµ¼ÕßÈÕÖ¾¸´ÖÆRPCÇëÇó£¬Ð´Èë±¾µØÈÕÖ¾³É¹¦¡£

3¡¢Ð´Èë±¾µØÈÕÖ¾³É¹¦ºó£¬»Ø¸´Áìµ¼ÕßÈÕ־дÈë³É¹¦¡£

4¡¢µ±Áìµ¼ÕßÊÕµ½³¬¹ý°ëÊýµÄ³É¹¦ÏìÓ¦£¬»áÓ¦Óñ¾µØÈÕÖ¾¡£

5¡¢»Ø¸´¿Í»§¶Ë£¬´¦Àí½á¹û¡£

´ÓÉÏÃæµÄÁ÷³ÌÖпÉÒÔ¿´³ö£¬RaftÁìµ¼ÕßÓ¦ÓÃÈÕÖ¾µÄʱºò£¬²¢Ã»Óз¢Ë͸úËæÕßÒ²Ó¦ÓÃÈÕÖ¾¡£ÆäʵÁìµ¼ÕßÔÚÐÄÌøÓëÈÕÖ¾¸´ÖÆRPCµÄÇëÇóÖÐЯ´øÉÏÁËÁìµ¼ÕßÒѾ­Ó¦ÓõÄÈÕÖ¾µÄÁìµ¼ÕßÈÎÆÚ±àºÅÓëË÷Òý¡£µ±¸úËæÕßÊÕµ½ÐÄÌøÓëÁìµ¼ÕßÑ¡¾ÙµÄÇëÇóʱ£¬»áÓ¦ÓÃÈÕÖ¾µ½ÏàÓ¦µÄÈÎÆÚ±àºÅÓëË÷Òý¡£

ÈÕÖ¾¸´ÖÆÒì³£

ÉÏÃæ·ÖÎöµÄ¶¼ÊÇÕý³£µÄ³¡¾°£¬µ«·Ö²¼Ê½ÏµÍ³ÍùÍùÓи÷ÖÖ¸÷ÑùµÄÎÊÌ⣬±ÈÈçÍøÂç·ÖÇø£¬½Úµã¹Ò»ú¡¢Áìµ¼ÕßÑ¡¾ÙµÈ£¬¶¼»áµ¼Ö¸úËæÕßÓëÁìµ¼ÕßµÄÈÕÖ¾²»Ò»Ö¡£ÈçÏÂͼ¾ÍÊÇÒ»×ܲ»Ò»Öµij¡¾°£º

ÄÇôµ±¸úËæÕßÊÕµ½Áìµ¼ÕßÇëÇóµÄÈÎÆÚ±àºÅÓëË÷Òý²»Ò»ÖÂʱ£¬¾Í»á²éÕÒÁìµ¼ÕßÓë¸úËæÕßµÄÈÎÆÚ±àºÅÓëË÷ÒýÏàͬµÄ×î´óµÄË÷ÒýÖµ£¬Áìµ¼Õß»áÇ¿ÖÆ¸úËæÕ߸²¸Ç²»Ò»ÖµÄÈÕÖ¾¡£Raftͨ¹ýÕâÖÖÇ¿ÖÆ¸úËæÕ߸²¸ÇÓëÁìµ¼Õß²»Ò»ÖµÄÈÕÖ¾£¬À´ÊµÏÖ¸÷½Úµã¼äÈÕÖ¾µÄÒ»ÖÂÐÔ¡£

µ¥½Úµã±ä¸ü

¼ÙÉèÎÒÃÇÒªÀ©³äÒ»¸ö3½ÚµãµÄ¼¯Èºµ½5½Úµã£¬Èç¹ûÎÒÃÇÒ»´ÎÐÔÀ©³ä2¸ö½Úµã£¬ÄÇôÔÚÈçϵÄÍøÂç·ÖÇøµÄÇé¿öÏ£¬¿ÉÄÜ»á³öÏÖ2¸öÁìµ¼Õ߽ڵ㡣

Èç¹ûÀ©³äµÄ2¸ö½ÚµãDÓëE£¬ÓëC½ÚµãÍøÂçÊÇͨµÄ£¬µ«ÊÇÓëA¡¢B½ÚµãÍøÂ粻ͨ¡£ÄÇô¾Í»áÐγÉÈçϵķÖÇø£º

´ÓͼÖпÉÒÔ¿´³ö£¬¼¯Èº·Ö³ÉÁË2¸ö¼¯ÈºAÓëB£¬C¡¢DÓëE¡£ÆäÖÐC¡¢DÓëE×é³ÉÁ˼¯ÈºµÄ³¬¹ý°ëÊýµÄ½Úµã¡£ÓÉÓÚC¡¢DÓëE»áµÈ´ýÁìµ¼Õß½ÚµãAµÄÐÄÌøRPC³¬Ê±£¬Îª´Ë»á´¥·¢Áìµ¼ÕßÑ¡¾Ù£¬´Ó¶øÑ¡³öC½Úµã×÷ΪÁìµ¼Õß¡£´Ó¶øµ¼Ö¼¯ÈºÓÐ2¸öÁìµ¼Õß¡£

Ϊ´ËRaft×÷ÕßÌá³öÁ˵¥½Úµã±ä¸ü£¬Ò»´ÎÖ»Ìí¼Ó»òÕßɾ³ýÒ»¸ö½Úµã£¬±ÜÃâ³öÏÖ¶à¸öÁìµ¼ÕßµÄÇé¿ö¡£ÆäÁ÷³ÌÈçÏ£º

1¡¢Ïò¼¯ÈºÖÐÌí¼Ó½ÚµãD£¬ÓÉÓÚ½ÚµãDÊÇмÓÈëµÄ½Úµã£¬»¹Ã»ÓÐÈÕÖ¾£¬Îª´ËÁìµ¼ÕßA»áÇ¿ÖÆ½ÚµãD¸´ÖÆ×Ô¼ºµÄÈÕÖ¾¡£

2¡¢´ýÈÕÖ¾¸´ÖÆÍêºó£¬Áìµ¼ÕßA´´½¨Ò»Ìõ°üº¬½ÚµãA¡¢B¡¢CÓëDµÄÈÕÖ¾Ïͬ²½¸øÆäÓà½Úµã²¢Ìá½»£¬ÒÔÍê³Éµ¥½Úµã±ä¸ü¡£

3¡¢°´ÀàËÆµÄ²½ÖèÌí¼Ó½ÚµãE¡£

 

 

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

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

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

Êý¾ÝÖÎÀí¡¢Êý¾Ý¼Ü¹¹¼°Êý¾Ý±ê×¼
MongoDBʵս¿Î³Ì
²¢·¢¡¢´óÈÝÁ¿¡¢¸ßÐÔÄÜÊý¾Ý¿âÉè¼ÆÓëÓÅ»¯
PostgreSQLÊý¾Ý¿âʵսÅàѵ
×îл¼Æ»®
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢ 6-12[ÏÃÃÅ]
È˹¤ÖÇÄÜ.»úÆ÷ѧϰTensorFlow 6-22[Ö±²¥]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 6-30[±±¾©]
ǶÈëʽÈí¼þ¼Ü¹¹-¸ß¼¶Êµ¼ù 7-9[±±¾©]
Óû§ÌåÑé¡¢Ò×ÓÃÐÔ²âÊÔÓëÆÀ¹À 7-25[Î÷°²]
ͼÊý¾Ý¿âÓë֪ʶͼÆ× 8-23[±±¾©]
 
×îÐÂÎÄÕÂ
InfluxDB¸ÅÄîºÍ»ù±¾²Ù×÷
InfluxDB TSM´æ´¢ÒýÇæÖ®Êý¾ÝдÈë
Éî¶ÈÂþ̸Êý¾Ýϵͳ¼Ü¹¹¡ª¡ªLambda architecture
Lambda¼Ü¹¹Êµ¼ù
InfluxDB TSM´æ´¢ÒýÇæÖ®Êý¾Ý¶ÁÈ¡
×îпγÌ
OracleÊý¾Ý¿âÐÔÄÜÓÅ»¯¡¢¼Ü¹¹Éè¼ÆºÍÔËÐÐά»¤
²¢·¢¡¢´óÈÝÁ¿¡¢¸ßÐÔÄÜÊý¾Ý¿âÉè¼ÆÓëÓÅ»¯
NoSQLÊý¾Ý¿â£¨Ô­Àí¡¢Ó¦Óá¢×î¼Ñʵ¼ù£©
ÆóÒµ¼¶Hadoop´óÊý¾Ý´¦Àí×î¼Ñʵ¼ù
OracleÊý¾Ý¿âÐÔÄÜÓÅ»¯×î¼Ñʵ¼ù
³É¹¦°¸Àý
ij½ðÈÚ¹«Ë¾ Mysql¼¯ÈºÓëÐÔÄÜÓÅ»¯
±±¾© ²¢·¢¡¢´óÈÝÁ¿¡¢¸ßÐÔÄÜÊý¾Ý¿âÉè¼ÆÓëÓÅ»¯
ÖªÃûijÐÅϢͨÐŹ«Ë¾ NoSQL»º´æÊý¾Ý¿â¼¼Êõ
±±¾© oracleÊý¾Ý¿âSQLÓÅ»¯
ÖйúÒÆ¶¯ IaaSÔÆÆ½Ì¨-Ö÷Á÷Êý¾Ý¿â¼°´æ´¢¼¼Êõ