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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
kafka-·Ö²¼Ê½ÏûϢϵͳ
 
  3781  次浏览      27
 2018-1-12 
 
±à¼­ÍƼö:

±¾ÎÄÀ´×ÔÓÚcnblogs ,ÎÄÖнéÉÜÁËKafka¼Ü¹¹ÖÐÏ໥֮¼äµÄ¹ØÏµ£¬Ôõô·Ö²¼µÄ¡£

ÏûÏ¢Öмä¼þMessageQuene

½âñîÇÒ¿ÉÀ©Õ¹£ºÒµÎñ¸´ÔӶȵÄÌáÉý´øÀ´µÄÒ²ÊÇñîºÏ¶ÈµÄÌá¸ß£¬ÏûÏ¢¶ÓÁÐÔÚ´¦Àí¹ý³ÌÖмä²åÈëÁËÒ»¸öÒþº¬µÄ¡¢»ùÓÚÊý¾ÝµÄ½Ó¿Ú²ã£¬Á½±ßµÄ´¦Àí¹ý³Ì¶¼ÒªÊµÏÖÕâÒ»½Ó¿Ú¡£ÕâÔÊÐíÄã¶ÀÁ¢µÄÀ©Õ¹»òÐÞ¸ÄÁ½±ßµÄ´¦Àí¹ý³Ì£¬Ö»ÒªÈ·±£ËüÃÇ×ñÊØÍ¬ÑùµÄ½Ó¿ÚÔ¼Êø¡£

ÈßÓࣺÓÐЩҵÎñÔÚ´¦Àí¹ý³ÌÖÐÈç¹ûʧ°ÜÁË£¬Êý¾ÝÔÚδ½øÐг־û¯µÄʱºò¾ÍÒѾ­Ïûʧ£¬ÏûÏ¢¶ÓÁаÑÊý¾Ý³Ö¾Ã»¯Ö±µ½ËûÃDZ»´¦Àí£¬±ÜÃâÁËÊý¾ÝµÄ¶ªÊ§

´¦Àí²¢·¢£º´óÊý¾ÝÁ¿·ÃÎʵÄʱºòÎÒÃÇ¿ÉÒÔ½«ÏûÏ¢·ÅÈë¶ÓÁÐÖУ¬È»ºóÔÚ¶ÓÁÐÀïÃæ°´ÕÕϵͳµÄÍÌÍÂÄÜÁ¦À´½øÐÐÎȶ¨µÄ³éÈ¡Êý¾Ý²¢½øÐÐÒµÎñ´¦Àí¡£

¿É»Ö¸´£ºÒ»²¿·Öϵͳ³öÏÖÎÊÌ⣬¿ÉÄÜÓ°ÏìÕû¸ö³ÌÐòÎȶ¨£¬ÏûÏ¢¶ÓÁÐÓÉÓÚ½«Êý¾Ý³Ö¾Ã»¯£¬ËùÒÔÔÚ³öÏÖÎÊÌâµÄʱºò¿ÉÒÔÆðµ½Ò»¸ö±¸·ÝµÄ×÷Óã¬ÏµÍ³Îȶ¨Ö®ºó¿ÉÒÔ½øÐÐÊý¾ÝÖØÐÂÏû·Ñ¡£

ËÍ´ï±£Ö¤£º´ó¶àÊýÏûÏ¢¶ÓÁж¼ÓÐÒ»Ì××Ô¼ºµÄÏûÏ¢´¦Àí»úÖÆ£¬Ò»°ã·ÖΪÏûÏ¢´¦Àí¶à´Î£¬ÏûÏ¢ÖÁÉÙ±»´¦ÀíÒ»´ÎµÈÇé¿ö£¬ÕâʹµÃÎÒÃÇ´¦ÀíÒµÎñ¼õÉÙÁËÊý¾Ý¶ªÊ§Çé¿öµÄ·¢Éú¡£

˳Ðò´¦Àí£º°´ÕÕÒ»¶¨µÄ˳Ðò·¢ËÍÏûÏ¢£¬Ê¹µÃÏûÏ¢ÔÚ¶ÓÁÐÖÐÊÇÓÐÐò´æÔڵģ¬ËùÒÔÔÚÏû·ÑÊý¾ÝµÄʱºòÎÒÃÇÒ²ÊÇÓÐÐò´¦ÀíµÄ£¨ÏȽøÏȳö£©¡£

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

³£ÓÃMQ¶Ô±È

RedisMQ£ºRedisÊÇ»ùÓÚKey-ValueµÄNoSqlÊý¾Ý¿â£¬±¾ÉíÖ§³ÖMQ¶ÓÁвÙ×÷£¬ÊÇÒ»¸öÇáÁ¿¼¶µÄ¶ÓÁзþÎñ£¬ÔÚʹÓÃRedis×÷Ϊ»º´æµÄÏîÄ¿ÖУ¬¿ÉÒÔÓÅÏÈʹÓÃRedisMQ×÷ΪÏûÏ¢¶ÓÁнøÐÐÒµÎñ´¦Àí¡£Óŵ㣺ÇáÁ¿¼¶£¬ÈÝÒ׿ª·¢¡£È±µã£ºÊý¾Ý´óµÄʱºòÈë¶ÓËٶȽÏÂý

ActiveMQ£ºApacheµÄÒ»¸ö¿ªÔ´×ÓÏîÄ¿£¬Ö§³Ö¶àÖÖÓïÑÔÒÔ¼°ÍøÂçЭÒé¡£Óŵ㣺ÈÝÒ׿ª·¢£¬²¢ÇÒÓÐ×Ô´øÖØÁ¬»úÖÆ¡£È±µã£º´«ÈëÎļþ²»·½±ã£¬Êý¾Ý´óµÄʱºòЧÂÊÒ»°ã£¬Ïû·Ñʧ°ÜµÄÊý¾Ý½«»á¶ªÊ§¡£

Kafka£ºApacheµÄÒ»¸ö¿ªÔ´×ÓÏîÄ¿£¬¸ßÐÔÄÜ´óÍÌÍÂÁ¿²¢ÇÒÄܹ»Âú×ã¿çÓïÑÔÆ½Ì¨·Ö²¼Ê½¡£Óŵ㣺¿ìËٳ־û¯£¬´óÍÌÍÂÁ¿£¬Ö§³ÖhadoopÊý¾Ý²¢ÐмÓÔØ£¬¿ÉÒÔ½øÐÐÀëÏßÏûÏ¢´¦Àí¡£È±µã£º¿ª·¢À§ÄÑ£¬ÅäÖÃÎļþ¸´ÔÓ£¬¿ªÔ´´úÂë½ÏÉÙ¡£

KafkaÔªËØ½éÉÜ

broker£ºkafka´î½¨µÄ¼¯Èº·þÎñÆ÷³ÆÎªbroker£¬¼¯ÈºÖÐһ̨·þÎñÆ÷¿ÉÒÔ´îÔØ¶à¸öbroker¡£

Topic£ºÃ¿Ìõ·¢²¼µ½Kafka¼¯ÈºµÄÏûÏ¢¶¼ÓÐÒ»¸öÀà±ð£¬Õâ¸öÀà±ð±»³ÆÎªtopic¡£ÎÒÃÇ¿ÉÒÔÈÏΪͬһÖÖÀàÐ͵ÄÏûÏ¢´æµ½Í¬Ò»¸ötopicÏ£¬ÕâµãºÍMapµÄkeyÖµÓÐÏàËÆÖ®´¦¡£

Partiton£ºparitionÊÇÎïÀíÉϵĸÅÄÿ¸ötopic°üº¬Ò»¸ö»ò¶à¸öpartition£¬´´½¨topicµÄʱºò¿ÉÒÔÖ¸¶¨partitonµÄÊýÁ¿¡£Ã¿Ò»¸öpartition¶ÔÓ¦Ò»¸öÎļþ¼Ð¡£Îļþ¼ÐÀïÃæ´æ·ÅË÷ÒýÎļþÒÔ¼°Êý¾ÝÎļþ¡£

Producer£º¸ºÔð·¢²¼ÏûÏ¢µ½BrokerÖÐ

Consumer£ºÃ¿¸öÏû·ÑÕßÊôÓÚÌØ¶¨µÄÏû·ÑÕß×飬ÿ¸öÏû·ÑÕß×éÖ»ÄÜÏû·ÑÒ»¸öpartitionµÄÊý¾Ý£¬¶à¸ö×é¿ÉÒÔͬʱÏû·Ñͬһ¸öpartitionµÄÊý¾Ý¡£

KafkaµÄ¼Ü¹¹

Ò»¸öµäÐ͵Äkafka¼¯ÈºÖаüº¬Èô¸Éproducer£¬Èô¸Ébroker£¨KafkaÖ§³ÖˮƽÀ©Õ¹£¬Ò»°ãbrokerÊýÁ¿Ô½¶à£¬¼¯ÈºÍÌÍÂÂÊÔ½¸ß£©£¬ Èô¸Éconsumer group£¬ÒÔ¼°Ò»¸ö Zookeeper ¼¯Èº¡£Kafkaͨ¹ýZookeeper¹ÜÀí¼¯ÈºÅäÖã¬Ñ¡¾Ùleader£¬ÒÔ¼°ÔÚconsumer group·¢Éú±ä»¯Ê±½øÐÐrebalance¡£producerʹÓÃpushģʽ½«ÏûÏ¢·¢²¼µ½broker£¬consumerʹÓÃpullģʽ´Ó broker¶©ÔIJ¢Ïû·ÑÏûÏ¢¡£

Kafka´¦ÀíÏûÏ¢µÄ»úÖÆ

producer£ºProducerÏòBrokerÍÆËÍÏûÏ¢£¨push£©

consumer£ºconsumer´ÓbrokerÀ­È¡ÏûÏ¢£¨pull£©

pushģʽϺÜÄÑÊÊÓ¦²»Í¬Ïû·ÑËÙÂʵÄÏû·ÑÕß´¦ÀíÏûÏ¢£¬ÒòΪ·¢ËÍÏûÏ¢µÄËÙ¶ÈÊÇÓÉbroker¾ö¶¨µÄ¡£pushģʽµÄÄ¿µÄÊÇΪÁ˾¡¿ìµÄÏû·Ñ£¬µ«ÊÇÕâÑùÈÝÒ×Ôì³ÉconsumerÀ´²»¼°´¦ÀíÏûÏ¢¡£µäÐ͵ıíÏÖ¾ÍÊÇÍøÂç×èÈûºÍ¾Ü¾ø·þÎñ¡£

pullģʽ¿ÉÒÔ¸ù¾ÝÏû·ÑÕßÏû·ÑËÙÂʶø×¥È¡ÏûÏ¢£¬ÕâÑù±ÜÃâÁËÍøÂç×èÈûµÄÇé¿ö·¢Éú¡£

TopicÓëPartitionÈÏʶ¡ª¡ª¼òµ¥·Ö²¼

Partition·Ö²¼ÎÒÃÇÖ÷Òª·Ö³Éµ¥BrokerºÍ¶à¸öBroker£º

µ¥¸öBroker£º

´´½¨Ò»¸öpartitionΪ3£¬ReplicaΪ1£¬TopicÃû×ÖΪorderµÄtopic¡£ÎÒÃǵõ½µÄ·Ö²¼Ê½ÔÚÅäÖúõÄLOGÎļþ¼ÐÖÐÉú³ÉÈý¸ö·Ö±ðΪ£ºorder-0¡¢order-1¡¢order-2µÄÎļþ¼ÐÓÃÀ´´æ´¢PartitionϵÄÐÅÏ¢µÄ.indexÎļþ.logÎļþºÍ.timeindexÎļþ¡£

¶à¸öBroker£º

´´½¨Ò»¸öpartitionΪ3£¬ReplicaΪ1£¬TopicÃû×ÖΪorderµÄtopic¡£ÎÒÃÇÔÚBroker0ÖжÔÓ¦µÄLOGÎļþ¼ÐÖÐÖ»ÊÇ·¢ÏÖÁËorder-0µÄÎļþ¼Ð£¬ÔÚÆäËûBrokerÖзֱð·¢ÏÖÁËPartitionµÄÎļþ¼Ð¡£Èç¹ûBrokerÊý´óÓÚPartitionÊý£¬ÄÇôÓÐBrokerÖÐûÓжÔÓ¦µÄPartition£»Èç¹ûBrokerСÓÚPartitionÊý£¬BrokerÖÐ»á´æÔÚ¶à¸öPartition¡£

ÏÂÃæÒÔÒ»¸öKafka¼¯ÈºÖÐ4¸öBroker¾ÙÀý£¬´´½¨1¸ötopic°üº¬4¸öPartition£¬2¸ö Replication£º

µ±¼¯ÈºÖÐÐÂÔö2½Úµã£¬PartitionÔö¼Óµ½6¸öʱ·Ö²¼Çé¿ö£º

TopicÓëPartitionÈÏʶ¡ª¡ª·Ö²¼Âß¼­

¸±±¾·ÖÅäÂß¼­£º

ÔÚkafka¼¯ÈºÖУ¬Ã¿¸öBroker·ÖÅäPartitionµÄleader»ú»áÊǾùµÈµÄ

ÿ¸öBroker£¨°´ÕÕbrokeridÓÐÐò£©ÒÀ´Î·ÖÅäleaderµÄPartition£¬ÏÂÒ»¸öBrokerΪ¸±±¾£¬Èç´ËÑ­»·µü´ú·ÖÅ䣬¶à¸±±¾Ò²×ñÑ­´Ë¹æÔò¡£

¸±±¾·ÖÅäËã·¨£º

½«ËùÓеÄBrokerºÍ´ý·ÖÅäµÄPartition½øÐÐÅÅÐò

½«µÚi¸öPartition·ÖÅäµ½µÚ(i mod n)¸öBrokerÉÏ

½«µÚi¸öPartitionµÄµÚj¸ö¸±±¾·ÖÅäµ½µÚ((i + j) mod n)¸öBrokerÉÏ.

Partition¡ª¡ªLeaderÓëFollower

LeaderºÍFollower£º

opicµÄReplication²»ÊDZØÑ¡

Èç¹ûReplicationÖеÄLeaderå´»úÁË£¬ÄÇô¸±±¾Follower½«×÷ΪLeader FollowerµÄÊý¾ÝÊÇ´ÓLeaderÖÐÀ­È¡µÄ£¬¶ø²»ÊÇLeader·¢Ë͵Ä

ÅжϽڵãÊÇ·ñalive£ºÊ×ÏÈ½Úµã±ØÐë¿ÉÒÔά»¤ºÍzookeeperµÄÁ¬½Ó£¬zookeeperͨ¹ýÐÄÌø»úÖÆ¼ì²éÿ¸ö½ÚµãµÄÁ´½Ó£»Æä´ÎÊÇÈç¹ûÕâ¸ö½ÚµãÊÇfollower£¬±ØÐëÄܹ»Í¬²½leaderµÄд²Ù×÷£¬ÑÓʱ²»ÄÜÌ«¾Ã¡££¨·ûºÏÌõ¼þµÄ½ÚµãΪͬ²½ÖÐ״̬£¬Èç¹û³öÏÖÉÏÊöÎÊÌâµÄ½Úµã£¬leader½«»á°Ñ½ÚµãÒÆ³ý£¬Ê±¼äÓÉreplica.lag.time.max.ms¾ö¶¨£¬ÏûÏ¢ÓÉreplica.lag.max.messages¾ö¶¨£©

Èç¹ûÓи±±¾£¬ÄÇôµ±ËùÓи±±¾¶¼¼ÓÈëÈÕÖ¾ÖвÅËãÕâÌõÐÅÏ¢commited£¬Ö»ÓÐÏûÏ¢ÊÇcommited״̬µÄ²ÅÄܱ»Ïû·ÑÕßÏû·Ñ¡££¨Producer¿ÉÒÔ¸ù¾Ýacks²ÎÊýÀ´¾ö¶¨ÊÇ·ñµÈ´ýÏûÏ¢Ìύ֪ͨ·´À¡£©

KafkaÖ»Òª±£Ö¤ÓÐÒ»¸ö½ÚµãÊÇͬ²½Öеģ¬ÒѾ­commitedµÄÏûÏ¢¾Í²»»á¶ªÊ§¡£

Partition¡ª¡ªLeaderÑ¡¾Ù

·Ö²¼Ê½LeaderÑ¡¾Ù»úÖÆÓÐFollowerͶƱ£¬ÒÔ¼°FollowerÃüÖÐÂÊ»úÖÆÀ´µÈ£¬ÕâÁ½ÖÖ»úÖÆ¶¼ÊǸù¾Ý¸±±¾½ÚµãµÄ״̬À´¶¯Ì¬Ñ¡ÔñµÄ¡£¶økafka²¢²»Ê¹ÓÃÕâÁ½ÖÖ¡£

ËäÈ»kafkaʹÓÃzookeeper½øÐÐleaderÑ¡Ôñ£¬µ«ÊÇËü²ÉÓÃFastLeaderElectionµÄ·½Ê½ºÍ´«Í³·½Ê½ÓÐËù²»Í¬¡£

kafka×Ô¼ºÎ¬»¤Í¬²½×´Ì¬µÄ¸±±¾¼¯ºÏ£¨ISR£©£¬Õâ¸öÀïÃæµÄ½Úµã¶¼ÊǺÍLeaderÊý¾Ý±£³Ö¸ß¶ÈÒ»Öµģ¬ÈκÎÒ»ÌõÏûÏ¢±£Ö¤Ã¿¸ö½ÚµãµÄÏûÏ¢×·¼Óµ½ÈÕÖ¾ÖÐ²Å»á¸æËßLeaderÕâ¸öÏûÏ¢ÒѾ­commited£¬ËùÒÔÈκÎFollower½ÚµãÔÚLeaderå´µôÖ®ºò¶¼¿ÉÄܱ»Ñ¡ÔñΪLeader£¬²¢ÇÒÕâЩ½Úµã¶¼ÊÇͨ¹ýzookeeper¹ÜÀíά»¤¡£

Follower½ÚµãΪN£¬Èç¹ûN-1¸ö½Úµã¶¼å´£¬kafkaÒÀÈ»¿ÉÒÔÕý³£¹¤×÷£¬Èç¹ûijһ¸öå´µô½ÚµãÓÖÖØÐÂalive£¬ÓÉ»á±»ÖØÐ¼ÓÈëµ½ISRÖС£

Èç¹ûN¸ö½Úµã¶¼å´µôÁË£¬¾Í»áµÈ´ýISRÖÐÈκÎÒ»¸öÖØÐÂaliveµÄ½Úµã×÷ΪLeader£¬»òÕßÑ¡ÔñËùÓнڵãÖÐÖØÐÂaliveµÄ½Úµã×÷ΪLeader£¨Ã²ËÆÐ°汾kafkaÖпÉÒÔÅäÖÃLeaderÑ¡¾ÙµÄÕâÖÖÇé¿öµÄÑ¡Ôñ·½Ê½£©

Partition¡ª¡ªÎļþ´æ´¢·½Ê½

ÿ¸öpartion(Ŀ¼)Ï൱ÓÚÒ»¸ö¾ÞÐÍÎļþ±»Æ½¾ù·ÖÅäµ½¶à¸ö´óСÏàµÈsegment(¶Î)Êý¾ÝÎļþÖС£µ«Ã¿¸ö¶Îsegment fileÏûÏ¢ÊýÁ¿²»Ò»¶¨ÏàµÈ£¬ÕâÖÖÌØÐÔ·½±ãold segment file¿ìËÙ±»É¾³ý¡£

ÿ¸öpartitonÖ»ÐèÒªÖ§³Ö˳Ðò¶Áд¾ÍÐÐÁË£¬segmentÎļþÉúÃüÖÜÆÚÓÉ·þÎñ¶ËÅäÖòÎÊý¾ö¶¨¡£

´ÅÅÌÔÚ½øÐзÇÏßÐÔдÈëµÄЧÂʺܵͣ¬ÔÚÖªµÀ¶Áд˳ÐòµÄÇé¿öÏÂЧÂʺܸߣ¬ÕâÊÇkafkaЧÂʸߣ¬Âú×ã¸ßÍÌÍÂÁ¿µÄÌõ¼þ¡£

Partition¡ª¡ªÎļþ

¶ÎÂäÎļþÓÉÈý²¿·Ö×é³É£º.indexÎļþ¡¢.logÎļþÒÔ¼°.timeindexÎļþ¡££¨0.8°æ±¾Ö®Ç°µÄkafkaûÓÐtimeindexÎļþ£©

indexÎļþΪË÷ÒýÎļþ£¬ÃüÃû¹æÔòΪ´Ó0¿ªÊ¼µ½£¬ºóÐøµÄÓÉÉÏÒ»¸öÎļþµÄ×î´óµÄoffsetÆ«ÒÆÁ¿À´¿ªÍ·£¨19λÊý×Ö×Ö·û³¤¶È£©

.logÎļþΪÊý¾ÝÎļþ£¬´æ·Å¾ßÌåÏûÏ¢Êý¾Ý

.timeindexÎļþ£¬ÊÇkafkaµÄ¾ßÌåʱ¼äÈÕÖ¾

Èç¹ûÉèÖÃlogʧЧʱ¼ä±È½Ï¶Ì£¬¾Í»á³öÏÖÏÂÃæÕâÖÖ×´¿ö

Partition¡ª¡ªindexºÍlogµÄÆ¥Åä¹ØÏµ

Ë÷ÒýÎļþ´æ´¢´óÁ¿ÔªÊý¾Ý£¬Êý¾ÝÎļþ´æ´¢´óÁ¿ÏûÏ¢£¬Ë÷ÒýÎļþÖÐÔªÊý¾ÝÖ¸Ïò¶ÔÓ¦Êý¾ÝÎļþÖÐmessageµÄÎïÀíÆ«ÒÆµØÖ·¡£ÆäÖÐÒÔË÷ÒýÎļþÖÐ ÔªÊý¾Ý3,497ΪÀý£¬ÒÀ´ÎÔÚÊý¾ÝÎļþÖбíʾµÚ3¸ömessage(ÔÚÈ«¾Öpartiton±íʾµÚ368772¸ömessage)¡¢ÒÔ¼°¸ÃÏûÏ¢µÄÎïÀíÆ«ÒÆ µØÖ·Îª497¡£

Partition¡ª¡ªMessageµÄÎïÀí½á¹¹

Partition¡ª¡ªÍ¨¹ýOffset²éÕÒMessage

¶ÁÈ¡OffsetΪ368776µÄMessage£º

1.²éѯ¶ÎÂäÎļþ£º

¼ÙÉèpartitionÓÐÁ½¸öindexÎļþ£¬·Ö±ðΪ:0...0.indexÎļþºÍ0...383562.indexÎļþ£¬ÓÉÓÚÎÒÃǵڶþ¸öµÄÆ«ÒÆÁ¿³õʼֵΪ383562+1£¬¶øÒª²éѯµÄÎļþΪ368776£¬ËùÒÔÎÒÃDzéѯµÄMessageÔÚµÚÒ»¸ö0...0.logÖС£Ê¹ÓÃoffset **¶þ·Ö²éÕÒ**ÎļþÁÐ±í£¬¾Í¿ÉÒÔ¿ìËÙ¶¨Î»µ½¾ßÌåÎļþ¡£

2.¶ÎÂäÎļþË÷ÒýÓëMessageÎļþ½øÐÐÆ¥Å䣺

ͨ¹ýsegment file²éÕÒmessageͨ¹ýµÚÒ»²½¶¨Î»µ½segment file£¬µ±offset=368776ʱ£¬ÒÀ´Î¶¨Î»µ½0...000.indexµÄÔªÊý¾ÝÎïÀíλÖÃºÍ 0..000.logµÄÎïÀíÆ«ÒÆµØÖ·£¬È»ºóÔÙͨ¹ý0...0.log˳Ðò²éÕÒÖ±µ½ offset=368776Ϊֹ

Consumer¡ª¡ªHigh Level

ºÜ¶àʱºò£¬¿Í»§³ÌÐòÖ»ÊÇÏ£Íû´ÓKafka¶ÁÈ¡Êý¾Ý£¬²»Ì«¹ØÐÄÏûÏ¢offsetµÄ´¦Àí¡£Í¬Ê±Ò²Ï£ÍûÌṩһЩÓïÒ壬ÀýÈçͬһÌõÏûÏ¢Ö»±»Ä³Ò»¸öConsumerÏû·Ñ£¨µ¥²¥£©»ò±»ËùÓÐConsumerÏû·Ñ£¨¹ã²¥£©¡£Òò´Ë£¬Kafka Hight Level ConsumerÌṩÁËÒ»¸ö´ÓKafkaÏû·ÑÊý¾ÝµÄ¸ß²ã³éÏ󣬴ӶøÆÁ±ÎµôÆäÖеÄϸ½Ú²¢Ìṩ·á¸»µÄÓïÒå¡£

Consumer¡ª¡ªConsumer Group

ÿһ¸öconsumerʵÀý¶¼ÊôÓÚÒ»¸öconsumer group£¬Ã¿Ò»ÌõÏûÏ¢Ö»»á±»Í¬Ò»¸öconsumer groupÀïµÄÒ»¸öconsumerʵÀýÏû·Ñ¡££¨²»Í¬consumer group¿ÉÒÔͬʱÏû·ÑͬһÌõÏûÏ¢£©

Consumer¡ª¡ªRebalance

Kafka±£Ö¤Í¬Ò»Consumer GroupÖÐÖ»ÓÐÒ»¸öConsumer»áÏû·ÑijÌõÏûÏ¢£¬Êµ¼ÊÉÏ£¬Kafka±£Ö¤µÄÊÇÎȶ¨×´Ì¬ÏÂÿһ¸öConsumerʵÀýÖ»»áÏû·Ñijһ¸ö»ò¶à¸öÌØ¶¨PartitionµÄÊý¾Ý£¬¶øÄ³¸öPartitionµÄÊý¾ÝÖ»»á±»Ä³Ò»¸öÌØ¶¨µÄConsumerʵÀýËùÏû·Ñ¡£

Kafka¶ÔÏûÏ¢µÄ·ÖÅäÊÇÒÔPartitionΪµ¥Î»·ÖÅäµÄ¡£ÕâÑùÉè¼ÆµÄÁÓÊÆÊÇÎÞ·¨±£Ö¤Í¬Ò»¸öÏû·ÑÕß×éÀïµÄConsumer¾ùÔÈÏû·ÑÊý¾Ý£¬ÓÅÊÆÊÇÿ¸öConsumer²»Óö¼¸ú´óÁ¿µÄBrokerͨÐÅ£¬¼õÉÙͨÐÅ¿ªÏú£¬Í¬Ê±Ò²½µµÍÁË·ÖÅäÄѶȣ¬ÊµÏÖÒ²¸ü¼òµ¥¡£ÁíÍ⣬ÒòΪͬһ¸öPartitionÀïµÄÊý¾ÝÊÇÓÐÐòµÄ£¬ÕâÖÖÉè¼Æ¿ÉÒÔ±£Ö¤Ã¿¸öPartitionÀïµÄÊý¾Ý¿ÉÒÔ±»ÓÐÐòÏû·Ñ¡£

Èç¹ûijConsumer GroupÖÐConsumerÊýÁ¿ÉÙÓÚPartitionÊýÁ¿£¬ÔòÖÁÉÙÓÐÒ»¸öConsumer»áÏû·Ñ¶à¸öPartitionµÄÊý¾Ý£¬Èç¹ûConsumerµÄÊýÁ¿ÓëPartitionÊýÁ¿Ïàͬ£¬ÔòÕýºÃÒ»¸öConsumerÏû·ÑÒ»¸öPartitionµÄÊý¾Ý¡£¶øÈç¹ûConsumerµÄÊýÁ¿¶àÓÚPartitionµÄÊýÁ¿Ê±£¬»áÓв¿·ÖConsumerÎÞ·¨Ïû·Ñ¸ÃTopicÏÂÈκÎÒ»ÌõÏûÏ¢¡£

kafkarµÄRebalanceµÄËã·¨£º

½«Ä¿±êTopicϵÄËùÓÐPartirtionÅÅÐò£¬´æÓÚPT

¶ÔijConsumer GroupÏÂËùÓÐConsumerÅÅÐò£¬´æÓÚCG

µÚi¸öConsumer¼ÇΪCi

N=size(PT)/size(CG)£¬ÏòÉÏÈ¡Õû

½â³ýCi¶ÔÔ­À´·ÖÅäµÄPartitionµÄÏû·ÑȨ£¨i´Ó0¿ªÊ¼£©

½«µÚi?Nµ½£¨i+1£©?N?1¸öPartition·ÖÅ䏸Ci

·ÖÇøµÄËã·¨£º

·ÖÇøÊý=Tt/Max(Tp,Tc)

Tp:producerÍÌÍÂÁ¿ Tc:consumerÍÌÍÂÁ¿ TtÄ¿±êµÄÍÌÍÂÁ¿

Consumer¡ª¡ªLow Level

ʹÓÃLow Level£¨Simple Consumer£©Ô­ÒòÊÇÓû§Ï£Íû±ÈConsumerGroup¸üºÃµÄ¿ØÖÆÊý¾ÝµÄÏû·Ñ£º

ͬһÌõÏûÏ¢Ïû·Ñ¶à´Î

Ö»¶Áijһ¸ötopicϵĹ̶¨·ÖÇøÊý¾Ý

¹ÜÀíÊÂÎñ£¬Ä³Ò»ÌõÏûÏ¢½ö±»Ïû·ÑÒ»´Î

¶îÍ⹤×÷£º

±ØÐëÔÚÓ¦ÓóÌÐòÖиú×Ùoffset£¬´Ó¶øÈ·¶¨ÏÂÒ»ÌõÓ¦¸ÃÏû·ÑÄÄÌõÏûÏ¢

Ó¦ÓóÌÐòÐèҪͨ¹ý³ÌÐò»ñ֪ÿ¸öPartitionµÄLeaderÊÇË­

±ØÐë´¦ÀíLeaderµÄ±ä»¯

ÓÉÓÚ²Ù×÷±È½Ï¸´ÔÓ£¬ËùÒÔÎÒÃÇÔÚÂú×ãÐèÇóµÄͬʱѡÔñʹÓÃHigh Level Consumer

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

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

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

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