±à¼ÍƼö: |
±¾ÎÄÖ÷Òª½éÉÜÁË·Ö²¼Ê½¹²Ê¶Ëã·¨Ö®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¡£
|