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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓƵ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
KafkaµÄ³õ²½ÈÏʶ
 
  3895  次浏览      19
 2018-4-28 
 
±à¼­ÍƼö:

±¾ÎÄÀ´×ÔÓÚcsdn£¬KafkaÊÇ×î³õÓÉLinkedin¹«Ë¾¿ª·¢£¬ÊÇÒ»¸ö·Ö²¼Ê½¡¢Ö§³Ö·ÖÇøµÄ£¨partition£©¡¢¶à¸±±¾µÄ£¨replica£©£¬»ùÓÚzookeeperЭµ÷µÄ·Ö²¼Ê½ÏûϢϵͳ.

Ò»¡¢ Ç°ÑÔ

ʲôÊÇÏûϢϵͳ£¿

ÔçÆÚÁ½¸öÓ¦ÓóÌÐò¼ä½øÐÐÏûÏ¢´«µÝÐèÒª±£Ö¤Á½¸öÓ¦ÓóÌÐòͬʱÔÚÏߣ¬²¢ÇÒñîºÏ¶ÈºÜ¸ß¡£ÎªÁ˽â¾öÓ¦ÓóÌÐò²»ÔÚÏßµÄÇé¿öÏÂÒµÎñÕý³£ÔËת£¬¾Í²úÉúÁËÏûϢϵͳ£¬Ïû·Ñ·¢ËÍÕߣ¨Éú²úÕߣ©½«ÏûÏ¢·¢ËÍÖÁÏûϢϵͳ£¬ÏûÏ¢½ÓÊÜÕߣ¨Ïû·ÑÕߣ©´ÓÏûϢϵͳÖлñÈ¡ÏûÏ¢¡£

Ìáµ½ÏûϢϵͳ£¬²»µÃ²»ËµÒ»ÏÂJMS¼´JavaÏûÏ¢·þÎñ£¨Java Message Service£©Ó¦ÓóÌÐò½Ó¿Ú¡£ÊÇÒ»¸öJavaƽ̨ÖйØÓÚÃæÏòÏûÏ¢Öмä¼þµÄAPI¡£ÓÃÓÚÔÚÁ½¸öÓ¦ÓóÌÐòÖ®¼ä»ò·Ö²¼Ê½ÏµÍ³Öз¢ËÍÏûÏ¢£¬½øÐÐÒ첽ͨÐÅ¡£JavaÏûÏ¢·þÎñÊÇÒ»¸öÓë¾ßÌåƽ̨Î޹صÄAPI¡£

ͨ³£ÏûÏ¢´«µÝÓÐÁ½ÖÖÀàÐ͵ÄÏûϢģʽ¿ÉÓÃÒ»ÖÖÊǵã¶Ôµãqueue¶ÓÁÐģʽ(p2p)£¬ÁíÒ»ÖÖÊÇtopic·¢²¼-¶©ÔÄģʽ(public-subscribe)¡£

µã¶ÔµãÏûϢϵͳ

ÔÚµã¶ÔµãϵͳÖУ¬ÏûÏ¢±»±£ÁôÔÚ¶ÓÁÐÖС£ Ò»¸ö»ò¶à¸öÏû·ÑÕß¿ÉÒÔÏûºÄ¶ÓÁÐÖеÄÏûÏ¢£¬µ«ÊÇÌض¨ÏûÏ¢Ö»ÄÜÓÉ×î¶àÒ»¸öÏû·ÑÕßÏû·Ñ¡£Ò»µ©Ïû·ÑÕ߶ÁÈ¡¶ÓÁÐÖеÄÏûÏ¢£¬Ëü¾Í´Ó¸Ã¶ÓÁÐÖÐÏûʧ¡£¸ÃϵͳµÄµäÐÍʾÀýÊǶ©µ¥´¦Àíϵͳ£¬ÆäÖÐÿ¸ö¶©µ¥½«ÓÉÒ»¸ö¶©µ¥´¦ÀíÆ÷´¦Àí£¬µ«¶à¸ö¶©µ¥´¦ÀíÆ÷Ò²¿ÉÒÔͬʱ¹¤×÷¡£ÏÂͼÃèÊöÁ˽ṹ¡£

·¢²¼ - ¶©ÔÄÏûϢϵͳ

ÔÚ·¢²¼-¶©ÔÄϵͳÖУ¬ÏûÏ¢±»±£ÁôÔÚÖ÷ÌâÖС£Óëµã¶Ôµãϵͳ²»Í¬£¬Ïû·ÑÕß¿ÉÒÔ¶©ÔÄÒ»¸ö»ò¶à¸öÖ÷ÌⲢʹÓøÃÖ÷ÌâÖеÄËùÓÐÏûÏ¢¡£ ÔÚ·¢²¼ - ¶©ÔÄϵͳÖУ¬ÏûÏ¢Éú²úÕß³ÆΪ·¢²¼Õߣ¬ÏûϢʹÓÃÕß³ÆΪ¶©ÔÄÕß¡£Ò»¸öÏÖʵÉú»îµÄÀý×ÓÊÇDishµçÊÓ£¬Ëü·¢²¼²»Í¬µÄÇþµÀ£¬ÈçÔ˶¯£¬µçÓ°£¬ÒôÀֵȣ¬ÈκÎÈ˶¼¿ÉÒÔ¶©ÔÄ×Ô¼ºµÄƵµÀ¼¯£¬²¢»ñµÃËûÃǶ©ÔĵÄƵµÀʱ¿ÉÓá£

MQÏûÏ¢¶ÓÁжԱÈ

ÏÂÃæÕë¶ÔRabbitMQÓëkafka½øÐжԱÈ

Ó¦Óó¡¾°ÉÏ

RabbitMQ£º×ñÑ­AMQP(Advanced Message Queuing Protocol)ЭÒ飬ÓÉÄÚÔڸ߲¢·¢µÄerlanngÓïÑÔ¿ª·¢£¬ÓÃÔÚʵʱµÄ¶Ô¿É¿¿ÐÔÒªÇó±È½Ï¸ßµÄÏûÏ¢´«µÝÉÏ¡£

kafka£ºÊÇLinkedinÓÚ2010Äê12Ô·ݿªÔ´µÄÏûÏ¢·¢²¼¶©ÔÄϵͳ,ËüÖ÷ÒªÓÃÓÚ´¦Àí»îÔ¾µÄÁ÷ʽÊý¾Ý,´óÊý¾ÝÁ¿µÄÊý¾Ý´¦ÀíÉÏ¡£

ÔÚÍÌÍÂÁ¿ÉÏ

RabbitMQÔÚÍÌÍÂÁ¿·½ÃæÉÔÑ·ÓÚkafka£¬ËûÃǵijö·¢µã²»Ò»Ñù£¬rabbitMQÖ§³Ö¶ÔÏûÏ¢µÄ¿É¿¿µÄ´«µÝ£¬Ö§³ÖÊÂÎñ£¬²»Ö§³ÖÅúÁ¿µÄ²Ù×÷£»»ùÓÚ´æ´¢µÄ¿É¿¿ÐÔµÄÒªÇó´æ´¢¿ÉÒÔ²ÉÓÃÄÚ´æ»òÕßÓ²ÅÌ¡£

kafka¾ßÓиߵÄÍÌÍÂÁ¿£¬ÄÚ²¿²ÉÓÃÏûÏ¢µÄÅúÁ¿´¦Àí£¬Êý¾ÝµÄ´æ´¢ºÍ»ñÈ¡ÊDZ¾µØ´ÅÅÌ˳ÐòÅúÁ¿²Ù×÷£¬ÏûÏ¢´¦ÀíµÄЧÂʺܸߡ£

ÔÚ¼¯Èº¸ºÔؾùºâÉÏ

RabbitMQµÄ¸ºÔؾùºâÐèÒªµ¥¶ÀµÄloadbalancer½øÐÐÖ§³Ö¡£

kafka²ÉÓÃzookeeper¶Ô¼¯ÈºÖеÄbroker¡¢consumer½øÐÐЭµ÷¹ÜÀí¡£

ʲôÊÇKafka£¿

Apache KafkaÊÇÒ»¸ö·Ö²¼Ê½·¢²¼-¶©ÔÄÏûϢϵͳºÍÒ»¸öÇ¿´óµÄ¶ÓÁУ¬Êµ¼ÊÉϾÍÊÇJMSµÄÒ»¸ö±äÐΣ¬¿ÉÒÔ´¦Àí´óÁ¿µÄÊý¾Ý£¬²¢Ê¹ÄúÄܹ»½«ÏûÏ¢´ÓÒ»¸ö¶Ëµã´«µÝµ½ÁíÒ»¸ö¶Ëµã¡£KafkaÊʺÏÀëÏߺÍÔÚÏßÏûÏ¢Ïû·Ñ¡£KafkaÏûÏ¢±£ÁôÔÚ´ÅÅÌÉÏ£¬²¢ÔÚȺ¼¯ÄÚ¸´ÖÆÒÔ·ÀÖ¹Êý¾Ý¶ªÊ§¡£Kafka¹¹½¨ÔÚZooKeeperͬ²½·þÎñÖ®ÉÏ¡£

KafkaµÄÌØÐÔ

ÒÔÏÂÊÇKafkaµÄ¼¸¸öºÃ´¦

¸ßÍÌÍÂÁ¿¡¢µÍÑÓ³Ù£ºkafkaÿÃë¿ÉÒÔ´¦Àí¼¸Ê®ÍòÌõÏûÏ¢£¬ËüµÄÑÓ³Ù×îµÍÖ»Óм¸ºÁÃ룬ÿ¸ötopic¿ÉÒÔ·Ö¶à¸öpartition, consumer group ¶Ôpartition½øÐÐÏû·Ñ²Ù×÷¡£

¿ÉÀ©Õ¹ÐÔ£ºkafka¼¯ÈºÖ§³ÖÈÈÀ©Õ¹

³Ö¾ÃÐÔ¡¢¿É¿¿ÐÔ£ºÏûÏ¢±»³Ö¾Ã»¯µ½±¾µØ´ÅÅÌ£¬²¢ÇÒÖ§³ÖÊý¾Ý±¸·Ý·ÀÖ¹Êý¾Ý¶ªÊ§

ÈÝ´íÐÔ£ºÔÊÐí¼¯ÈºÖнڵãʧ°Ü£¨Èô¸±±¾ÊýÁ¿Îªn,ÔòÔÊÐín-1¸ö½Úµãʧ°Ü£©

¸ß²¢·¢£ºÖ§³ÖÊýǧ¸ö¿Í»§¶Ëͬʱ¶Áд

Ó¦Óó¡¾°

Kafka¿ÉÒÔÔÚÐí¶àÓÃÀýÖÐʹÓᣠÆäÖÐһЩÁгöÈçÏ£º

ÈÕÖ¾ÊÕ¼¯£ºÒ»¸ö¹«Ë¾¿ÉÒÔÓÃKafka¿ÉÒÔÊÕ¼¯¸÷ÖÖ·þÎñµÄlog£¬Í¨¹ýkafkaÒÔͳһ½Ó¿Ú·þÎñµÄ·½Ê½¿ª·Å¸ø¸÷ÖÖconsumer£¬ÀýÈçhadoop¡¢Hbase¡¢SolrµÈ¡£

ÏûϢϵͳ£º½âñîºÍÉú²úÕߺÍÏû·ÑÕß¡¢»º´æÏûÏ¢µÈ¡£

Óû§»î¶¯¸ú×Ù£ºKafka¾­³£±»ÓÃÀ´¼Ç¼webÓû§»òÕßappÓû§µÄ¸÷Öֻ£¬Èçä¯ÀÀÍøÒ³¡¢ËÑË÷¡¢µã»÷µÈ»î¶¯£¬ÕâЩ»î¶¯ÐÅÏ¢±»¸÷¸ö·þÎñÆ÷·¢²¼µ½kafka µÄtopicÖУ¬È»ºó¶©ÔÄÕßͨ¹ý¶©ÔÄÕâЩtopicÀ´×öʵʱµÄ¼à¿Ø·ÖÎö£¬»òÕß×°Ôص½hadoop¡¢Êý¾Ý²Ö¿âÖÐ×öÀëÏß·ÖÎöºÍÍÚ¾ò¡£

ÔËÓªÖ¸±ê£ºKafkaÒ²¾­³£ÓÃÀ´¼Ç¼ÔËÓª¼à¿ØÊý¾Ý¡£°üÀ¨ÊÕ¼¯¸÷ÖÖ·Ö²¼Ê½Ó¦ÓõÄÊý¾Ý£¬Éú²ú¸÷ÖÖ²Ù×÷µÄ¼¯Öз´À¡£¬±ÈÈ籨¾¯ºÍ±¨¸æ¡£

Á÷ʽ´¦Àí£º±ÈÈçspark streamingºÍstorm

ʼþÔ´

Kafka»ù±¾¸ÅÄî

KafkaÖз¢²¼¶©ÔĵĶÔÏóÊÇtopic¡£ÎÒÃÇ¿ÉÒÔΪÿÀàÊý¾Ý´´½¨Ò»¸ötopic£¬°ÑÏòtopic·¢²¼ÏûÏ¢µÄ¿Í»§¶Ë³Æ×÷producer£¬´Ótopic¶©ÔÄÏûÏ¢µÄ¿Í»§¶Ë³Æ×÷consumer¡£ProducersºÍconsumers¿ÉÒÔͬʱ´Ó¶à¸ötopic¶ÁдÊý¾Ý¡£Ò»¸ökafka¼¯ÈºÓÉÒ»¸ö»ò¶à¸öbroker·þÎñÆ÷×é³É£¬Ëü¸ºÔð³Ö¾Ã»¯ºÍ±¸·Ý¾ßÌåµÄkafkaÏûÏ¢¡£

Broker£¨¾­¼ÍÈË£©£ºKafka½Úµã£¬Ò»¸öKafka½Úµã¾ÍÊÇÒ»¸öbroker£¬¶à¸öbroker¿ÉÒÔ×é³ÉÒ»¸öKafka¼¯Èº¡£

Topic£¨Ö÷Ì⣩£ºÒ»ÀàÏûÏ¢£¬ÏûÏ¢´æ·ÅµÄĿ¼¼´Ö÷Ì⣬ÀýÈçpage viewÈÕÖ¾¡¢clickÈÕÖ¾µÈ¶¼¿ÉÒÔÒÔtopicµÄÐÎʽ´æÔÚ£¬Kafka¼¯ÈºÄܹ»Í¬Ê±¸ºÔð¶à¸ötopicµÄ·Ö·¢¡£

Partition£ºtopicÎïÀíÉϵķÖ×飬һ¸ötopic¿ÉÒÔ·ÖΪ¶à¸öpartition£¬Ã¿¸öpartitionÊÇÒ»¸öÓÐÐòµÄ¶ÓÁС£

Segment£ºpartitionÎïÀíÉÏÓɶà¸ösegment×é³É£¬Ã¿¸öSegment´æ×ÅmessageÐÅÏ¢¡£

offset£ºÒ»ÌõÏûÏ¢ÔÚÏûϢϵͳÖеÄÆ«ÒÆÁ¿¡£

Producer : Éú²úmessage·¢Ë͵½topic¡£

Consumer : ¶©ÔÄtopicÏû·Ñmessage, consumer×÷Ϊһ¸öÏß³ÌÀ´Ïû·Ñ¡£

ConsumerGroup£ºÒ»¸öConsumerGroup°üº¬¶à¸öconsumer,Õâ¸öÊÇÔ¤ÏÈÔÚÅäÖÃÎļþÖÐÅäÖúõġ£¸÷¸öconsumer£¨consumerỊ̈߳©¿ÉÒÔ×é³ÉÒ»¸ö×飨Consumer group£©£¬partitionÖеÄÿ¸ömessageÖ»Äܱ»×飨Consumer group£© ÖеÄÒ»¸öconsumer£¨consumer Ị̈߳©Ïû·Ñ£¬Èç¹ûÒ»¸ömessage¿ÉÒÔ±»¶à¸öconsumer£¨consumer Ị̈߳© Ïû·ÑµÄ»°£¬ÄÇôÕâЩconsumer±ØÐëÔÚ²»Í¬µÄ×é¡£Kafka²»Ö§³ÖÒ»¸öpartitionÖеÄmessageÓÉÁ½¸ö»òÁ½¸öÒÔÉϵÄconsumer threadÀ´´¦Àí£¬¼´±ãÊÇÀ´×Ô²»Í¬µÄconsumer groupµÄÒ²²»ÐС£Ëü²»ÄÜÏñAMQÄÇÑù¿ÉÒÔ¶à¸öBET×÷ΪconsumerÈ¥´¦Àímessage£¬ÕâÊÇÒòΪ¶à¸öBETÈ¥Ïû·ÑÒ»¸öQueueÖеÄÊý¾ÝµÄʱºò£¬ÓÉÓÚÒª±£Ö¤²»Äܶà¸öÏß³ÌÄÃͬһÌõmessage£¬ËùÒÔ¾ÍÐèÒªÐм¶±ð±¯¹ÛËø£¨for update£©,Õâ¾Íµ¼ÖÂÁËconsumeµÄÐÔÄÜϽµ£¬ÍÌÍÂÁ¿²»¹»¡£¶økafkaΪÁ˱£Ö¤ÍÌÍÂÁ¿£¬Ö»ÔÊÐíÒ»¸öconsumerÏß³ÌÈ¥·ÃÎÊÒ»¸öpartition¡£Èç¹û¾õµÃЧÂʲ»¸ßµÄʱºò£¬¿ÉÒÔ¼ÓpartitionµÄÊýÁ¿À´ºáÏòÀ©Õ¹£¬ÄÇôÔÙ¼ÓеÄconsumer threadÈ¥Ïû·Ñ¡£ÕâÑùûÓÐËø¾ºÕù£¬³ä·Ö·¢»ÓÁ˺áÏòµÄÀ©Õ¹ÐÔ£¬ÍÌÍÂÁ¿¼«¸ß¡£ÕâÒ²¾ÍÐγÉÁË·Ö²¼Ê½Ïû·ÑµÄ¸ÅÄî¡£

Éú²úÕߺÍÏû·ÑÕß

Õë¶ÔÉú²úÕߺÍÏû·ÑÕߣ¬ÐèҪעÒâÒÔϼ¸µã

·ÖÇøÔÚproducer¶Ë½øÐÐ

Ò»¸ö·ÖÇøÖ»»áÓÉÏû·ÑÕß×éÄÚµÄÒ»¸öconsumerÏû·Ñ£¬kafka»áͨ¹ý¸ºÔؾùºâ»úÖÆ×Ô¶¯·ÖÅä

offsetÓÉconsumer¶Ë½øÐÐά»¤£¬Ò»°ã½»¸øzookeeper½øÐÐά»¤

Ö»Äܱ£Ö¤Ò»¸ö·ÖÇøÄÚµÄÊý¾ÝÊÇÓÐÐòµÄ

¶þ¡¢ Apache Kafka - °²×°²½Öè

×¢£º°²×°kafkaÇ°ÐèÒªÌáÇ°°²×°JDKÓëzookeeper

Step 1: ÏÂÔØKafka²¢½âѹ

> tar -xzfkafka_2.9.2-0.8.1.1.tgz

> cdkafka_2.9.2-0.8.1.1

Step 2: ÅäÖû·¾³±äÁ¿£¨¿ÉÑ¡£©

vi/etc/profile

KAFKA_HOME=/opt/kafka_2.9.2-0.8.1.1

PATH=$PATH:$KAFKA_HOME/bin

Step 3: ÐÞ¸ÄÅäÖÃÎļþÖеÄÒÔÏÂÄÚÈÝ

cd /opt/kafka_2.9.2-0.8.1.1/config

viserver.properties

broker.id=0 //ΪÒÀ´ÎÔö³¤µÄ£º0¡¢1¡¢2¡¢3¡¢4£¬¼¯ÈºÖÐΨһid

log.dirs=/opt/kafka_2.9.2-0.8.1.1/logs //ÈÕÖ¾µØÖ·

zookeeper.connect=localhost:2181 //zookeeperServersÁÐ±í£¬¸÷½ÚµãÒÔ¶ººÅ·Ö¿ª



cd /opt/kafka_2.9.2-0.8.1.1/config

vi zookeeper.properties

dataDir=/usr/local/kafka/zookeeper

dataLogDir=/usr/local/kafka/log/zookeeper

Step 4: Æô¶¯µ¥½Úµã·þÎñ

ÔÚkafkaµÄbinÖдæÔںܶàshÎļþ£¬ÆäÖаüº¬¶ÔzookeeperµÄÆô¶¯ÓëÍ£Ö¹¡£Ê×ÏÈÆô¶¯zookeeperÔÙÆô¶¯kafkaµÄbroker¡£

./bin/zookeeper-server-start.shconfig/zookeeper.properties &

./bin/kafka-server-start.shconfig/server.properties &

Step 5: ´´½¨topic

./bin/kafka-topics.sh --create --zookeeper192.168.2.105:2181 --replication-factor 1 --partitions 1 --topic testlzy

ÁгöËùÓÐtopic

./bin/kafka-topics.sh --zookeeper 192.168.2.105:2181--list

Step 5: ´´½¨Éú²úÕß

./bin/kafka-console-producer.sh--broker-list 192.168.2.105:9093 --topic testlzy

Step 6: ´´½¨Ïû·ÑÕß

./bin/kafka-console-consumer.sh --zookeeperlocalhost:2181 --topic testlzy --from-beginning

´ËʱÈç¹ûÔÚÉú²úÕß¿ØÖÆ̨Öз¢²¼ÏûÏ¢£¬Ïû·ÑÕ߶ËÄܽÓÊÕµ½£¬¾ÍËã³É¹¦ÁË¡£

kafka³£ÓÃÃüÁî

ÒÔÏÂÊÇkafka³£ÓÃÃüÁîÐÐ×ܽ᣺

0. ²é¿´ÓÐÄÄЩÖ÷Ì⣺

./kafka-topics.sh --list --zookeeper192.168.0.201:2181

1. ²é¿´topicµÄÏêϸÐÅÏ¢

./kafka-topics.sh -zookeeper 127.0.0.1:2181-describe -topic testKJ1

2. ΪtopicÔö¼Ó¸±±¾

./kafka-reassign-partitions.sh -zookeeper127.0.0.1:2181 -reassignment-json-file json/partitions-to-move.json -execute

3. ´´½¨topic

./kafka-topics.sh --create --zookeeperlocalhost:2181 --replication-factor 1 --partitions 1 --topic testKJ1

4. ΪtopicÔö¼Ópartition

./bin/kafka-topics.sh ¨Czookeeper127.0.0.1:2181 ¨Calter ¨Cpartitions 20 ¨Ctopic testKJ1

5. kafkaÉú²úÕß¿Í»§¶ËÃüÁî

./kafka-console-producer.sh --broker-listlocalhost:9092 --topic testKJ1

6. kafkaÏû·ÑÕß¿Í»§¶ËÃüÁî

./kafka-console-consumer.sh -zookeeperlocalhost:2181 --from-beginning --topic testKJ1

7. kafka·þÎñÆô¶¯

./kafka-server-start.sh -daemon../config/server.properties

8. ÏÂÏßbroker

./kafka-run-class.shkafka.admin.ShutdownBroker --zookeeper 127.0.0.1:2181 --broker #brokerId#--num.retries 3 --retry.interval.ms 60

shutdown broker

9. ɾ³ýtopic

./kafka-run-class.shkafka.admin.DeleteTopicCommand --topic testKJ1 --zookeeper 127.0.0.1:2181

./kafka-topics.sh --zookeeperlocalhost:2181 --delete --topic testKJ1

10. ²é¿´consumer×éÄÚÏû·ÑµÄoffset

./kafka-run-class.shkafka.tools.ConsumerOffsetChecker --zookeeper localhost:2181 --group test--topic testKJ1

./kafka-consumer-offset-checker.sh --zookeeper192.168.0.201:2181 --group group1 --topic group1

Èý¡¢ Apache Kafka ¨C ºËÐÄÔ­Àí

¸ºÔؾùºâ

¸ºÔؾùºâµÄÁ½ÖÖ²ßÂÔ£¨Ïû·Ñ¶ËÅäÖã©

partition.assignment.strategy=range|round-robin

ÔÚkafkaÖÐpartition·Ö·¢ÏûÏ¢¸øÏû·ÑÕß²»ÊÇÒÑÏû·ÑΪÁ¦¶È½øÐзÖÅäµÄ£¬ÊÇÒÔÏû·ÑÕßÏß³ÌΪÁ¦¶È½øÐзÖÅäµÄ¡£

Range

kafkaÖеÄÿ¸ötopicµÄ·ÖÇøÊǶÀÁ¢½øÐзÖÅäµÄ£¬topic¼ä²»Êܵ½ÈκÎÓ°Ïì¡£

topicÖÐÏÈÊǶÔpartition½øÐÐÊý×ÖÅÅÐò£¬Ḭ̈߳´ÕÕ×ÖµäÅÅÐò¡£

½ÓÏÂÀ´Ó÷ÖÇøµÄÊýÁ¿³ýÒÔÏß³ÌÊýÁ¿¾ÍÊÇÿ¸öÏß³ÌÄܹ»·Öµ½µÄÏûÏ¢ÊýÁ¿

partition_per_thread= ·ÖÇøÊýÁ¿/Ïß³ÌÊýÁ¿

Èç¹ûÕû³ýÁË£¬ÄÇôÿ¸öÏß³ÌÒÀ´Î·ÖÅäpartition_per_thread¸ö·ÖÇø

Èç¹û²»Õû³ý£¬µÍλµÄ¼¸¸öthread»á¶àÏû·Ñ·ÖÇø

Èç¹û·ÖÇø¸öÊýÉÙÓÚÏß³ÌÊýÁ¿£¬¾Í»á³öÏÖÏ߳̿ÕÏеÄʱºò£¬ÒòΪkafka»á±£Ö¤Ò»¸ö·ÖÇøÖ»Äܱ»Ò»¸öÏû·ÑÕß½øÐÐÏû·Ñ¡£ËùÒÔ½¨ÒéÔÚÅäÖõÄʱºò·ÖÇøÊýÁ¿ºÍÏû·ÑÕßÏß³ÌÊýÁ¿ÏàµÈ×îºÃ¡£

Round-robin

ÔÚkafkaÖÐÒ»¸öÏû·ÑÕß×éÊÇ¿ÉÒÔ¶©ÔĶà¸ötopicµÄ¡£µ±¶©ÔÄÁ˶à¸ötopicºó£¬ËûÄÚ²¿»á°ÑËùÓÐtopic½øÐлìÂÒÒÔºóÔÙ°´ÕÕrange²ßÂÔ×ßÒ»±é£¬Ëû»á±£Ö¤Ã¿¸ötopicÔÚconsumerÖеÄÏß³ÌÊýÁ¿±ØÐëÏàµÈ¡£

±¸×¢

Ò»°ãÓ¦ÓÃrangeµÄ±È½Ï¶à£¬Èç¹ûconsumer×éÖÐÓиöÏß³ÌshutdownÁË£¬ÄÇôkafka»á×Ô¶¯µÄÖØнøÐиºÔؾùºâµÄ·ÖÅä¡£Õâ¸ö¸ºÔؾùºâÔö¼ÓÁËÏÂÓεÄÏû·ÑÄÜÁ¦¡£¶øÇҷdz£·½±ãµÄ½øÐÐÏû·ÑÕßµÄÀ©Õ¹¡£µ±È»kafkaÒ²¿ÉÒÔÈ¥³ýÕâÑùµÄ¸ºÔؾùºâ²ßÂÔ£¬Ä¬ÈÏÏû·Ñ¶Ë·ÖΪhigh levelµÄ¿Í»§¶Ë£¨ÆôÓøºÔؾùºâ»úÖÆ£©ºÍsimpleµÄ¿Í»§¶Ë£¨²»ÆôÓøºÔؾùºâ£¬ÐèÒª×Ô¼º¾ö¶¨Ïû·ÑÄĸö·ÖÇøµÄÏûÏ¢£©¡£

Ö÷´Ó¼°¸±±¾·Ö²¼

kafkaµÄÖ÷´ÓÖ÷ÒªÌṩÁË·ÖÇøÈÝ´íµÄÄÜÁ¦£¬¿ÉÒÔÅäÖÃÒ»¸öleaderºÍÈô¸Éfollower£¬leaderÊÇ´¦ÀíÏûÏ¢£¬¶øfollowerÖ»ÊÇleaderµÄÒ»¸ö±¸·Ý£¬Æ½³£µÄÁ¬½Ó¶¼ÊÇÁ¬ÔÚleaderÉϵġ£µ±leaderå´»úÒÔºó£¬kafka»á´ÓfollowerÖÐÑ¡¾Ùһ̨leaderÀ´½øÐзþÎñ¡£

¶ÔÓÚµÚR¸ö¸±±¾£¬ÏÈËæ»úÈ¡Ò»¸öbroker·Å·ÖÇø0£¬È»ºó˳Ðò·ÅÆäËû·ÖÇø¡£ÕâÑù±£Ö¤ÁËleaderºÍfollower¾ùÔȵķֲ¼ÔÚÁËÿ¸öbrokerÉÏ¡£

ͨ¹ý-topicÃüÁî¿ÉÒԲ鿴ָ¶¨topicµÄ·ÖÇøºÍ¸±±¾µÄ·Ö²¼Çé¿ö

topic£ºtopicÃû³Æ

partition£º·ÖÇøÃû³Æ

leader£º´Ë·ÖÇøµÄleaderÔÚÄĸöbrokerÉÏ

replicas£ºËùÓеĸ±±¾·Ö²¼ÔÚÄĸöbrokerÉÏ

isr£ºreplicasÖÐËùÓÐin-syncµÄ½Úµã

¶ÔÓÚin-sync

½Úµã±ØÐë¿ÉÒÔά»¤ºÍzookeeperµÄÁ¬½Ó£¬zookeeperͨ¹ýÐÄÌø»úÖƼì²éÿ¸ö½ÚµãµÄÁ¬½Ó¡£

Èç¹û½ÚµãÊǸöfollower¡£Ëû±ØÐëÄܼ°Ê±µÄͬ²½leaderµÄд²Ù×÷£¬ÑÓʱ²»ÄÜÌ«¾Ã¡£

ÉèÖ÷½Ê½

replica.lag.max.messages£ºÂäºóµÄÏûÏ¢ÊýÁ¿

replica.lag.time.max.ms£º¿¨×¡µÄʱ¼ä

kafkaÊÇͨ¹ýÕâÁ½¸ö²ÎÊýÈ¥ÅжÏÊDz»ÊÇÒ»¸öÓÐЧµÄ¸±±¾follower¡£µ±leaderå´»úÒÔºó£¬ÊÇ´ÓÕâЩÓÐЧ¸±±¾ÖнøÐÐÑ¡¾ÙµÄ¡£ÎÞЧµÄÊDz»²Î¼ÓÑ¡¾ÙµÄ¡£

kafkaµÄ³Ö¾Ã»¯

ÏûÏ¢¸ñʽ

kafkaµÄÏûÏ¢¸ñʽÈçͼ

Îļþϵͳ

kafka»á½«ÏûÏ¢×éÖ¯µ½Ó²ÅÌÉÏ£¬ÔÚbrokerµÄÊý¾ÝĿ¼ÖлáÓÐÒÔtopicÃû³Æ-·ÖÇøºÅÃüÃûµÄÎļþ¼Ð£¬

ÔÚÎļþ¼ÐÖдæÔڳɶԳöÏÖµÄÎļþ¡£kafka²»Êǽ«ËùÓÐÏûÏ¢·Åµ½Ò»¸ö´óÎļþÀ¶øÊǸù¾ÝÏûÏ¢µÄoffset½øÐÐÁ˷ֶΡ£Ã¿Ò»¸ö¶ÎÄڷŶàÉÙÏûÏ¢ÊÇ¿ÉÒÔÅäÖõġ£ÎļþÃû×Ö´ú±í´ËÎļþÖеĵÚÒ»¸öÊý¾ÝµÄoffset¡£indexΪË÷ÒýÎļþ£¬logΪÊý¾ÝÎļþ£¬´æ·ÅµÄÏûÏ¢¸ñʽ¼ûÉÏͼ¡£¶ÔÓÚindexÎļþά»¤µÄÊÇÒ»¸öÏ¡ÊèË÷Òý£¬ÓÉÏûÏ¢µÄ±àºÅÖ¸ÏòÎïÀíÆ«ÒÆ£¬ÔËÐÐʱ»á±»¼ÓÔص½ÄÚ´æ¡£

¹ýÆÚÊý¾ÝÇåÀí

kafka¼ÈȻ֧³ÖÁ˳־û¯£¬Ëû¶Ô´ÅÅÌ¿Õ¼äÊÇÓÐÒªÇóµÄ¡£¶ÔÓÚɾ³ý¹ýÆÚÊý¾ÝkafkaÌṩÁËÁ½ÖÖ²ßÂÔ

1¡¢Ä¬ÈϲßÂÔΪֱ½Óɾ³ý

l ³¬¹ýÖ¸¶¨µÄʱ¼äµÄÏûÏ¢£º

log.retention.hours=168

l ³¬¹ýÖ¸¶¨´óСºó£¬É¾³ý¾ÉµÄÏûÏ¢£º

log.retention.bytes=1073741824

2¡¢Ñ¹Ëõ£¨Ö»ÔÚÌض¨µÄÒµÎñ³¡¾°ÏÂÓÐÒâÒ壩

È«¾Ö£ºlog.cleaner.enable=true

ÔÚÌض¨µÄtopicÉÏ£ºlog.cleanup.policy=compact

±£Áôÿ¸ökey×îºóÒ»¸ö°æ±¾µÄÐÅÏ¢£¬Èô×îºóÒ»¸ö°æ±¾ÏûÏ¢ÄÚÈÝΪ¿Õ£¬Õâ¸ökey±»É¾³ý

   
3895 ´Îä¯ÀÀ       19
Ïà¹ØÎÄÕÂ

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

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

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