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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
kafka¼Ü¹¹Ô­Àí
 
  2473  次浏览      28
 2019-12-3
 
±à¼­ÍƼö:
±¾ÎĽéÉÜΪʲôʹÓÃKafka,ÈçºÎÏûÏ¢´«µÝ±£Ö¤µÄÏà¹ØÄÚÈÝ£¬´«µÝ±£Ö¤ÓïÒåµÄÈý¸ö¼¶±ð,ͨ¹ýÒ»¸öʾÀý½øÐзÖÎöISR¼¯ºÏ£¬HWºÍLEOÊÇÈçºÎЭµ÷¹¤×÷µÄ¡£
±¾ÎÄÀ´×ÔÓÚ¼òÊ飬ÓÉ»ðÁú¹ûÈí¼þAlice±à¼­¡¢ÍƼö¡£

1 Kafka½éÉÜ

KafkaÊÇ×î³õÓÉLinkedin¹«Ë¾¿ª·¢£¬ÊÇÒ»¸ö·Ö²¼Ê½¡¢Ö§³Ö·ÖÇøµÄ£¨partition£©¡¢¶à¸±±¾µÄ£¨replica£©£¬»ùÓÚzookeeperЭµ÷µÄ·Ö²¼Ê½ÏûϢϵͳ£¬ËüµÄ×î´óµÄÌØÐÔ¾ÍÊÇ¿ÉÒÔʵʱµÄ´¦Àí´óÁ¿Êý¾ÝÒÔÂú×ã¸÷ÖÖÐèÇ󳡾°£º±ÈÈç»ùÓÚhadoopµÄÅú´¦Àíϵͳ¡¢µÍÑÓ³ÙµÄʵʱϵͳ¡¢storm/SparkÁ÷ʽ´¦ÀíÒýÇæ£¬web/nginxÈÕÖ¾¡¢·ÃÎÊÈÕÖ¾£¬ÏûÏ¢·þÎñµÈµÈ£¬ÓÃscalaÓïÑÔ±àд£¬LinkedinÓÚ2010Äê¹±Ï׸øÁËApache»ù½ð»á²¢³ÉΪ¶¥¼¶¿ªÔ´ ÏîÄ¿¡£

2 ΪʲôʹÓÃKafka

2.1 ½âñî

ÔÊÐíÄã¶ÀÁ¢µÄÀ©Õ¹»òÐÞ¸ÄÁ½±ßµÄ´¦Àí¹ý³Ì£¬Ö»ÒªÈ·±£ËüÃÇ×ñÊØÍ¬ÑùµÄ½Ó¿ÚÔ¼Êø¡£

2.2 ÈßÓà

ÏûÏ¢¶ÓÁаÑÊý¾Ý½øÐг־û¯Ö±µ½ËüÃÇÒѾ­±»ÍêÈ«´¦Àí£¬Í¨¹ýÕâÒ»·½Ê½¹æ±ÜÁËÊý¾Ý¶ªÊ§·çÏÕ¡£Ðí¶àÏûÏ¢¶ÓÁÐËù²ÉÓõÄ"²åÈë-»ñÈ¡-ɾ³ý"·¶Ê½ÖУ¬ÔÚ°ÑÒ»¸öÏûÏ¢´Ó¶ÓÁÐÖÐɾ³ý֮ǰ£¬ÐèÒªÄãµÄ´¦ÀíϵͳÃ÷È·µÄÖ¸³ö¸ÃÏûÏ¢ÒѾ­±»´¦ÀíÍê±Ï£¬´Ó¶øÈ·±£ÄãµÄÊý¾Ý±»°²È«µÄ±£´æÖ±µ½ÄãʹÓÃÍê±Ï¡£

2.3 À©Õ¹ÐÔ

ÒòΪÏûÏ¢¶ÓÁнâñîÁËÄãµÄ´¦Àí¹ý³Ì£¬ËùÒÔÔö´óÏûÏ¢Èë¶ÓºÍ´¦ÀíµÄƵÂÊÊǺÜÈÝÒ׵ģ¬Ö»ÒªÁíÍâÔö¼Ó´¦Àí¹ý³Ì¼´¿É¡£

2.4 Áé»îÐÔ & ·åÖµ´¦ÀíÄÜÁ¦

ÔÚ·ÃÎÊÁ¿¾çÔöµÄÇé¿öÏ£¬Ó¦ÓÃÈÔÈ»ÐèÒª¼ÌÐø·¢»Ó×÷Ó㬵«ÊÇÕâÑùµÄÍ»·¢Á÷Á¿²¢²»³£¼û¡£Èç¹ûΪÒÔÄÜ´¦ÀíÕâÀà·åÖµ·ÃÎÊΪ±ê×¼À´Í¶Èë×ÊÔ´ËæÊ±´ýÃüÎÞÒÉÊǾ޴óµÄÀË·Ñ¡£Ê¹ÓÃÏûÏ¢¶ÓÁÐÄܹ»Ê¹¹Ø¼ü×é¼þ¶¥×¡Í»·¢µÄ·ÃÎÊѹÁ¦£¬¶ø²»»áÒòΪͻ·¢µÄ³¬¸ººÉµÄÇëÇó¶øÍêÈ«±ÀÀ£¡£

2.5 ¿É»Ö¸´ÐÔ

ϵͳµÄÒ»²¿·Ö×é¼þʧЧʱ£¬²»»áÓ°Ïìµ½Õû¸öϵͳ¡£ÏûÏ¢¶ÓÁнµµÍÁ˽ø³Ì¼äµÄñîºÏ¶È£¬ËùÒÔ¼´Ê¹Ò»¸ö´¦ÀíÏûÏ¢µÄ½ø³Ì¹Òµô£¬¼ÓÈë¶ÓÁÐÖеÄÏûÏ¢ÈÔÈ»¿ÉÒÔÔÚϵͳ»Ö¸´ºó±»´¦Àí¡£

2.6 ˳Ðò±£Ö¤

ÔÚ´ó¶àʹÓó¡¾°Ï£¬Êý¾Ý´¦ÀíµÄ˳Ðò¶¼ºÜÖØÒª¡£´ó²¿·ÖÏûÏ¢¶ÓÁб¾À´¾ÍÊÇÅÅÐòµÄ£¬²¢ÇÒÄܱ£Ö¤Êý¾Ý»á°´ÕÕÌØ¶¨µÄ˳ÐòÀ´´¦Àí¡££¨Kafka ±£Ö¤Ò»¸ö Partition ÄÚµÄÏûÏ¢µÄÓÐÐòÐÔ£©

2.7 »º³å

ÓÐÖúÓÚ¿ØÖƺÍÓÅ»¯Êý¾ÝÁ÷¾­¹ýϵͳµÄËÙ¶È£¬½â¾öÉú²úÏûÏ¢ºÍÏû·ÑÏûÏ¢µÄ´¦ÀíËٶȲ»Ò»ÖµÄÇé¿ö¡£

2.8 Ò첽ͨÐÅ

ºÜ¶àʱºò£¬Óû§²»ÏëÒ²²»ÐèÒªÁ¢¼´´¦ÀíÏûÏ¢¡£ÏûÏ¢¶ÓÁÐÌṩÁËÒì²½´¦Àí»úÖÆ£¬ÔÊÐíÓû§°ÑÒ»¸öÏûÏ¢·ÅÈë¶ÓÁУ¬µ«²¢²»Á¢¼´´¦ÀíËü¡£ÏëÏò¶ÓÁÐÖзÅÈë¶àÉÙÏûÏ¢¾Í·Å¶àÉÙ£¬È»ºóÔÚÐèÒªµÄʱºòÔÙÈ¥´¦ÀíËüÃÇ¡£

3 Kafka¼Ü¹¹

3.1 Broker

kafka ¼¯ÈºÖаüº¬µÄ·þÎñÆ÷¡£Ò»¸öµ¥¶ÀµÄKafka server¾ÍÊÇÒ»¸öBroker¡£BrokerµÄÖ÷Òª¹¤×÷¾ÍÊǽÓÊÜÉú²úÕß·¢¹ýÀ´µÄÏûÏ¢£¬·ÖÅäoffset£¬Ö®ºó±£´æµ½´ÅÅÌÖУ¬Í¬Ê±£¬½ÓÊÕÏû·ÑÕß¡¢ÆäËûBorkerµÄÇëÇ󣬸ù¾ÝÇëÇóÀàÐͽøÐÐÏàÓ¦´¦Àí²¢·µ»ØÏìÓ¦¡£¶à¸öBroker¿ÉÒÔ×ö³ÉÒ»¸öCluster¶ÔÍâÌṩ·þÎñ£¬Ã¿¸öClusterµ±ÖлáÑ¡¾Ù³öÒ»¸öBrokerÀ´µ£ÈÎController£¬ControllerÊÇKafka¼¯ÈºµÄÖ¸»ÓÖÐÐÄ£¬¶øÆäËûBrokerÔòÌý´ÓControllerÖ¸»ÓʵÏÖÏàÓ¦µÄ¹¦ÄÜ¡£Controller¸ºÔð¹ÜÀí·ÖÇøµÄ״̬¡¢¹ÜÀíÿ¸ö·ÖÇøµÄ¸±±¾µÄ״̬¡¢¼àÌýZookeeperÖÐÊý¾ÝµÄ±ä»¯µÈ¹¤×÷¡£ControllerÒ²ÊÇÒ»Ö÷¶à´ÓµÄʵÏÖ£¬ËùÓеÄBroker¶¼»á¼àÌýController LeaderµÄ״̬£¬µ±Controller Leader³öÏÖ¹ÊÕÏʱÔòÖØÐÂÑ¡¾ÙеÄController Leader¡£

3.2 Producer

producer ·¢ËÍÏûÏ¢µ½ broker ʱ£¬»á¸ù¾Ý·ÖÇøË㷨ѡÔñ½«Æä´æ´¢µ½ÄÄÒ»¸ö partition¡£Æä·ÓÉ»úÖÆÎª£º

1 Ö¸¶¨ÁË patition£¬ÔòÖ±½ÓʹÓá£

2 δָ¶¨ patition µ«Ö¸¶¨ key£¬Í¨¹ý¶Ô key µÄ value ½øÐÐhash Ñ¡³öÒ»¸ö patition¡£

3 patition ºÍ key ¶¼Î´Ö¸¶¨£¬Ê¹ÓÃÂÖѯѡ³öÒ»¸ö patition¡£

Á÷³Ì˵Ã÷£º

1 producer ÏÈ´Ó zookeeper µÄ "/brokers/.../state" ½ÚµãÕÒµ½¸Ã partition µÄ leader¡£

2 producer ½«ÏûÏ¢·¢Ë͸ø¸Ã leader¡£

3 leader ½«ÏûϢдÈë±¾µØ log¡£

4 followers ´Ó leader pull ÏûÏ¢£¬Ð´Èë±¾µØ log ºó leader ·¢ËÍ ACK¡£

5 leader ÊÕµ½ËùÓÐ ISR ÖÐµÄ replica µÄ ACK ºó£¬Ôö¼Ó HW£¨high watermark£¬×îºó commit µÄ offset£© ²¢Ïò producer ·¢ËÍ ACK¡£

ÏÂÃæÀ´½éÉÜÏûÏ¢´«µÝµÄ±£Ö¤£¨Delivery guarantee semantic£©µÄÏà¹ØÄÚÈÝ£¬´«µÝ±£Ö¤ÓïÒåÓÐÒÔÏÂÈý¸ö¼¶±ð¡£

1 At most once£ºÏûÏ¢¿ÉÄܻᶪ£¬µ«¾ø²»»áÖØ¸´´«µÝ¡£

2 At least once£ºÏûÏ¢¾ø²»»á¶ª£¬µ«¿ÉÄÜ»áÖØ¸´´«µÝ¡£

3 Exactly once£ºÃ¿ÌõÏûÏ¢¶¼Ö»±»´«µÝÒ»´Î¡£

µ± producer Ïò broker ·¢ËÍÏûϢʱ£¬Ò»µ©ÕâÌõÏûÏ¢±» commit£¬ÓÉÓÚ replication µÄ´æÔÚ£¬Ëü¾Í²»»á¶ª¡£µ«ÊÇÈç¹û producer ·¢ËÍÊý¾Ý¸ø broker ºó£¬Óöµ½ÍøÂçÎÊÌâ¶øÔì³ÉͨÐÅÖжϣ¬ÄÇ Producer ¾ÍÎÞ·¨ÅжϸÃÌõÏûÏ¢ÊÇ·ñÒѾ­ commit¡£ËäÈ» Kafka ÎÞ·¨È·¶¨ÍøÂç¹ÊÕÏÆÚ¼ä·¢ÉúÁËʲô¡£ÎªÁËʵÏÖExactly onceÓïÒ壬ÕâÀïÌṩÁ½ÖÖ¿ÉÑ¡·½°¸£º

1 ÿ¸ö·ÖÇøÖ»ÓÐÒ»¸öÉú²úÕßдÈëÏûÏ¢£¬µ±³öÏÖÒì³£»ò³¬Ê±µÄÇé¿öʱ£¬Éú²úÕß¾ÍÒª²éѯ´Ë·ÖÇøµÄ×îºóÒ»¸öÏûÏ¢£¬ÓÃÀ´¾ö¶¨ºóÐø²Ù×÷µÄÏûÏ¢ÖØ´«»¹ÊǼÌÐø·¢ËÍ¡£

2 Ϊÿ¸öÏûÏ¢Ìí¼ÓÒ»¸öÈ«¾ÖΨһÖ÷¼ü£¬Éú²úÕß²»×öÆäËûÌØÊâ´¦Àí£¬°´ÕÕ֮ǰ·ÖÎöµÄ·½Ê½½øÐÐÖØ´«£¬ÓÉÏû·ÑÕß½øÐÐÈ¥ÖØ¡£

3.3 Topic&Log

ÿÌõ·¢²¼µ½ kafka ¼¯ÈºµÄÏûÏ¢ÊôÓÚµÄÀà±ð£¬¼´ kafka ÊÇÃæÏò TopicµÄ¡£Ã¿¸öTopic¿ÉÒÔ»®·Ö³É¶à¸ö·ÖÇø£¬Í¬Ò»¸öTopicϵIJ»Í¬·ÖÇø°üº¬µÄÏûÏ¢ÊDz»Í¬µÄ¡£Ã¿¸öÏûÏ¢ÔÚ±»Ìí¼Óµ½·ÖÇøÊ±£¬¶¼»á±»·ÖÅäµ½Ò»¸öoffset£¬ËüÊÇÏûÏ¢ÔÚ´Ë·ÖÇøÖеÄΨһ±àºÅ£¬Kafkaͨ¹ýoffset±£Ö¤ÏûÏ¢µÄ·ÖÇøÄÚµÄ˳Ðò£¬offsetµÄ˳ÐòÐÔ²»¿ä·ÖÇø£¬¼´KafkaÖ»±£Ö¤ÔÚͬһ¸ö·ÖÇøÄÚµÄÏûÏ¢ÊÇÓÐÐòµÄ¡£

ͬһTopicµÄ²»Í¬·ÖÇø»á·ÖÅäÔÚ²»Í¬µÄBrokerÉÏ¡£·ÖÇøÊÇKafkaˮƽÀ©Õ¹ÐԵĻù´¡£¬ÎÒÃÇ¿ÉÒÔͨ¹ýÔö¼Ó·þÎñÆ÷²¢ÔÚÆäÉÏ·ÖÅäPartitionµÄ·½Ê½À´Ôö¼ÓKafkaµÄ²¢Ðд¦ÀíÄÜÁ¦¡£

·ÖÇøÔÚÂß¼­É϶ÔÓ¦×ÅÒ»¸öLog£¬µ±Éú²úÕß½«ÏûϢдÈë·ÖÇøÊ±£¬Êµ¼ÊÉÏÊÇдÈëµ½ÁË·ÖÇø¶ÔÓ¦µÄLogÖС£LogÊÇÒ»¸öÂß¼­¸ÅÄ¿ÉÒÔ¶ÔÓ¦µ½´ÅÅÌÉϵÄÒ»¸öÎļþ¼Ð¡£LogÓжà¸öSegment×é³É£¬Ã¿¸öSegment¶ÔÓ¦Ò»¸öÈÕÖ¾ÎļþºÍË÷ÒýÎļþ¡£ÔÚÃæ¶Ôº£Á¿Êý¾Ýʱ£¬Îª±ÜÃâSegment³öÏÖ³¬´óÎļþ£¬Ã¿¸öÈÕÖ¾ÎļþµÄ´óСÊÇÓÐÏÞÖÆµÄ£¬µ±³¬³öÏÞÖÆºó»á´´½¨ÐµÄSegment¼ÌÐø¶ÔÍâÌṩ·þÎñ¡£ÕâÀïҪעÒ⣬ÒòΪKafka²ÉÓÃ˳ÐòIO£¬ËùÒÔÖ»Ïò×îеÄSegment×·¼ÓÊý¾Ý¡£ÎªÁËȨºâÎļþ´óС¡¢Ë÷ÒýËÙ¶È¡¢Õ¼ÓÃÄÚ´æ´óСµÈ¶à·½ÃæÒòËØ£¬Ë÷ÒýÎļþ²ÉÓÃÏ¡ÊèË÷ÒýµÄ·½Ê½£¬´óС²¢²»»áºÜ´ó£¬ÔÚÔËÐÐʱ»á½«ÆäÄÚÈÝÓ³Éäµ½Äڴ棬Ìá¸ßË÷ÒýËÙ¶È¡£

3.4 Partition

ÿһ¸öTopic¶¼¿ÉÒÔ»®·Ö³É¶à¸öPartition(ÿһ¸öTopic¶¼ÖÁÉÙÓÐÒ»¸öPartition),²»Í¬µÄPartition»á·ÖÅäÔÚ²»Í¬µÄBrokerÉÏÒÔ¶ÔKafka½øÐÐˮƽÀ©Õ¹´Ó¶øÔö¼ÓKafkaµÄ²¢Ðд¦ÀíÄÜÁ¦¡£Í¬Ò»¸öTopicϵIJ»Í¬Partition°üº¬µÄÏûÏ¢ÊDz»Í¬µÄ¡£Ã¿Ò»¸öÏûÏ¢ÔÚ±»Ìí¼Óµ½PartitionµÄʱºò,¶¼»á±»·ÖÅäÒ»¸öoffset,ËûÊÇÏûÏ¢ÔÚ´Ë·ÖÇøÖеÄΨһ±àºÅ,´ËÍâ,Kafkaͨ¹ýoffset±£Ö¤ÏûÏ¢ÔÚPartitionÖеÄ˳Ðò,offsetµÄ˳ÐòÐÔ²»¿çPartition,Ò²¾ÍÊÇ˵ÔÚKafkaµÄͬһ¸öPartitionÖеÄÏûÏ¢ÊÇÓÐÐòµÄ,²»Í¬PartitionµÄÏûÏ¢¿ÉÄܲ»ÊÇÓÐÐòµÄ¡£

3.5 Consumer

Ïû·ÑÕߣ¨Consumer£©µÄÖ÷Òª¹¤×÷ÊÇ´ÓTopicÖÐÀ­È¡ÏûÏ¢£¬²¢¶ÔÏûÏ¢½øÐÐÏû·Ñ¡£Ä³¸öÏûÏ¢Ïû·Ñµ½PartitionµÄÄĸöλÖã¨offset£©µÄÏà¹ØÐÅÏ¢£¬ÊÇConsumer×Ô¼ºÎ¬»¤µÄ¡£

ÕâÑùÉè¼Æ·Ç³£ÇÉÃî¡£±ÜÃâÁËKafka Server¶Ëά»¤Ïû·ÑÕßÏû·ÑλÖõĿªÏú£¬ÓÈÆäÊÇÔÚÏû·ÑÊýÁ¿½Ï¶àµÄÇé¿öÏ¡£ÁíÒ»·½Ã棬Èç¹ûÊÇÓÉKafka Server¶Ë¹ÜÀíÿ¸öConsumerÏû·Ñ״̬£¬Ò»µ©Kafka Server¶Ë³öÏÖÑÓʱ»òÊÇÏû·Ñ״̬¶ªÊ§£¬½«»áÓ°Ïì´óÁ¿µÄConsumer¡£Í¬Ê±£¬ÕâÒ»Éè¼ÆÒ²Ìá¸ßÁËConsumerµÄÁé»îÐÔ£¬Consumer¿ÉÒÔ°´ÕÕ×Ô¼ºÐèÒªµÄ˳ÐòºÍģʽÀ­È¡ÏûÏ¢½øÐÐÏû·Ñ¡£ÀýÈ磺Consumer¿ÉÒÔͨ¹ýÐÞ¸ÄÆäÏû·ÑÕßµÄλÖÃʵÏÖÕë¶ÔÄ³Ð©ÌØÊâkeyµÄÏûÏ¢½øÐз´¸´Ïû·Ñ£¬»òÊÇÌø¹ýijЩÏûÏ¢µÄÐèÇó¡£

3.6 Consumer group

high-level consumer API ÖУ¬Ã¿¸ö consumer ¶¼ÊôÓÚÒ»¸ö consumer group£¬Ã¿ÌõÏûÏ¢Ö»Äܱ» consumer group ÖеÄÒ»¸ö Consumer Ïû·Ñ£¬µ«¿ÉÒÔ±»¶à¸ö consumer group Ïû·Ñ¡£

3.7 Replica

Kafka¶ÔÏûÏ¢½øÐÐÁËÈßÓ౸·Ý,ÿ¸öPartition·ÖÇø¶¼¿ÉÒÔÓжà¸ö¸±±¾,ÿһ¸ö¸±±¾Öаüº¬µÄÏûÏ¢ÊÇÏàͬµÄ(µ«²»±£Ö¤Í¬Ò»Ê±¿ÌÏÂÍêÈ«Ïàͬ)¡£Ã¿¸ö·ÖÇøÖÁÉÙÓÐÒ»¸ö¸±±¾£¬µ±·ÖÇøÖ»ÓÐÒ»¸ö¸±±¾µÄʱºò£¬¾ÍÖ»ÓÐLeader¸±±¾£¬Ã»ÓÐ Follower¡£ÔÚÿ¸ö¸±±¾¼¯ºÏÖÐ,¶¼»áÑ¡¾Ù³öÒ»¸ö¸±±¾×÷ΪLeader¸±±¾,KafkaÔÚ²»Í¬µÄ³¡¾°Öлá²ÉÓò»Í¬µÄÑ¡¾Ù²ßÂÔ¡£KafkaÖÐËùÓеĶÁдÇëÇó¶¼ÓÉÑ¡¾Ù³öµÄLeader¸±±¾´¦Àí,ÆäËûµÄ¶¼×÷ΪFollower¸±±¾,Follower¸±±¾½ö½öÊÇ´ÓLeader¸±±¾ÖаÑÊý¾ÝÀ­È¡µ½±¾µØÖ®ºó£¬Í¬²½¸üе½×Ô¼ºµÄLogÖС£

3.8 ISR

ISR£¨In-Sync-Replica£©¼¯ºÏ±íʾµÄÊÇĿǰ¿ÉÓã¨alive£©ÇÒÏûÏ¢Á¿ÓëLeaderÏà²î²»¶àµÄ¸±±¾¼¯ºÏ£¬ÕâÊÇÕû¸ö¸±±¾¼¯ºÏµÄÒ»¸ö×Ó¼¯¡£ISR¼¯ºÏÖеĸ±±¾±ØÐëÂú×ãÏÂÃæÁ½¸öÌõ¼þ£º

£¨1£©¸±±¾ËùÔÚ½Úµã±ØÐëά³Ö×ÅÓëZooKeeperµÄÁ´½Ó¡£

£¨2£©¸±±¾×îºóÒ»ÌõÏûÏ¢µÄoffsetÓëLeader¸±±¾µÄ×îºóÒ»ÌõÏûÏ¢µÄoffsetÖ®¼äµÄ²îÖµ²»Äܳ¬³öÖ¸¶¨µÄãÐÖµ¡£

ÿ¸ö·ÖÇøÖеÄLeader¶¼»áά»¤´Ë·ÖÇøµÄISR¼¯ºÏ£¬Ð´ÇëÇóÊ×ÏÈÓÉLeader¸±±¾´¦Àí£¬Ö®ºóFollower¸±±¾¶¼»á´ÓLeaderÉÏÀ­È¡Ð´ÈëµÄÏûÏ¢£¬Õâ¸ö¹ý³Ì»áÓÐÒ»¶¨µÄÑÓ³Ù£¬µ¼ÖÂFollower¸±±¾Öб£´æµÄÏûÏ¢ÂÔÉÙÓÚLeader¸±±¾£¬Ö»ÒªÎ´³¬³öãÐÖµ¶¼ÊÇ¿ÉÒÔÈÝÈ̵ġ£Èç¹ûÒ»¸öFollower¸±±¾³öÏÖÒì³££¬±ÈÈ磺崻ú£¬·¢Éú³¤Ê±¼äGC¶øµ¼ÖÂKafka½©ËÀ»òÊÇÍøÂç¶Ï¿ªÁ¬½Óµ¼Ö³¤Ê±¼äûÓÐÀ­È¡ÏûÏ¢½øÐÐͬ²½£¬¾Í»ØÎ¥·´ÉÏÃæÁ½¸öÌõ¼þ£¬´Ó¶ø±»Leader¸±±¾Ìß³öISR¼¯ºÏ¡£µ±Follower¸±±¾´ÓÒì³£Öлָ´Ö®ºó£¬»á¼ÌÐøÓëLeader¸±±¾½øÐÐͬ²½£¬µ±Follower¸±±¾×·ÉÏ£¨¼´×îºóÒ»ÌõÏûÏ¢µÄoffsetµÄ²îֵСÓÚÖ¸¶¨ãÐÖµ£©Leader¸±±¾µÄʱºò£¬´ËFollower¸±±¾»á±»Leader¸±±¾ÖØÐ¼ÓÈëµ½ISRÖС£

3.9 HW&LEO

HW£¨High Watermark£©ºÍLEOÓëISR¼¯ºÏ½ôÃÜÏà¹Ø¡£HW±ê¼ÇÁËÒ»¸öÌØÊâµÄoffset£¬µ±Ïû·ÑÕß´¦ÀíÏûÏ¢µÄʱºò£¬Ö»ÄÜÀ­È¡µ½HW֮ǰµÄÏûÏ¢£¬HWÖ®ºóµÄÏûÏ¢¶ÔÏû·ÑÕßÀ´ËµÊDz»¿É¼ûµÄ¡£ÓëISR¼¯ºÏÀàËÆ£¬HWÒ²ÊÇÓÉLeader¸±±¾¹ÜÀíµÄ¡£µ±ISR¼¯ºÏÖÐÈ«²¿µÄFollower¸±±¾¶¼À­È¡HWÖ¸¶¨ÏûÏ¢½øÐÐͬ²½ºó£¬Leader¸±±¾»áµÝÔöHWµÄÖµ¡£Kafka¹Ù·½ÍøÕ¾½«HW֮ǰµÄÏûÏ¢µÄ״̬³ÆÎªcommit£¬Æäº¬ÒåÊÇÕâЩÏûÏ¢ÔÚ¶à¸ö¸±±¾ÖÐͬʱ´æÔÚ£¬¼´Ê¹Leader¸±±¾Ë𻵣¬Ò²²»»á³öÏÖÊý¾Ý¶ªÊ§¡£

LEO(Log End Offset)ÊÇËùÓеĸ±±¾¶¼»áÓеÄÒ»¸öoffset±ê¼Ç£¬ËüÖ¸Ïò×·¼Óµ½µ±Ç°¸±±¾µÄ×îºóÒ»¸öÏûÏ¢µÄoffset¡£µ±Éú²úÕßÏòLeader¸±±¾×·¼ÓÏûÏ¢µÄʱºò£¬Leader¸±±¾µÄLEO±ê¼Ç»áµÝÔö£»µ±Follower¸±±¾³É¹¦´ÓLeader¸±±¾À­È¡ÏûÏ¢²¢¸üе½±¾µØµÄʱºò£¬Follower¸±±¾µÄLEO¾Í»áÔö¼Ó¡£

ΪÁËÈöÁÕ߸üºÃµÄÀí½âHWºÍLEOÖ®¼äµÄ¹ØÏµ£¬ÏÂÃæÍ¨¹ýÒ»¸öʾÀý½øÐзÖÎöISR¼¯ºÏ£¬HWºÍLEOÊÇÈçºÎЭµ÷¹¤×÷µÄ¡£

1 PoducerÏò´ËPartitionÍÆËÍÏûÏ¢¡£

2 Leader¸±±¾½«ÏûÏ¢×·¼Óµ½LogÖУ¬²¢µÝÔöÆäLEO¡£

3 Follower¸±±¾´ÓLeader¸±±¾À­È¡ÏûÏ¢²¢½øÐÐͬ²½¡£

4 Follower¸±±¾½«À­È¡µ½µÄÏûÏ¢¸üе½±¾µØLogÖУ¬²¢µÝÔöÆäLEO¡£

5 µ±ISR¼¯ºÏÖÐËùÓи±±¾¶¼Íê³ÉÁ˶ÔoffsetÏûÏ¢µÄͬ²½£¬Leader¸±±¾»áµÝÔöHW¡£

3.10 ZooKeeper

kafka ͨ¹ý zookeeper À´´æ´¢¼¯ÈºµÄ meta ÐÅÏ¢¡£

 

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

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

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

Êý¾ÝÖÎÀí¡¢Êý¾Ý¼Ü¹¹¼°Êý¾Ý±ê×¼
MongoDBʵս¿Î³Ì
²¢·¢¡¢´óÈÝÁ¿¡¢¸ßÐÔÄÜÊý¾Ý¿âÉè¼ÆÓëÓÅ»¯
PostgreSQLÊý¾Ý¿âʵսÅàѵ