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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
Python²Ù×÷·Ö²¼Ê½Á÷´¦ÀíϵͳKafka
 
  5413  次浏览      28
 2018-1-9  
 
±à¼­ÍƼö:
À´Ô´ÓÚ΢ÐÅmagedu-Linux£¬±¾ÎÄÖ÷Òª½éÉÜÁËÒ»ÏÂkafkaµÄ»ù±¾¸ÅÄ²¢½áºÏһЩʵÑé°ïÖúÀí½âkafkaÖеÄһЩÄѵ㣬Èç¶à¸öconsumerµÄÈÝ´íÐÔ»úÖÆ£¬offset¹ÜÀí¡£

ʲôÊÇKafka

KafkaÊÇÒ»¸ö·Ö²¼Ê½Á÷´¦Àíϵͳ£¬Á÷´¦ÀíϵͳʹËü¿ÉÒÔÏñÏûÏ¢¶ÓÁÐÒ»Ñùpublish»òÕßsubscribeÏûÏ¢£¬·Ö²¼Ê½ÌṩÁËÈÝ´íÐÔ£¬²¢·¢´¦ÀíÏûÏ¢µÄ»úÖÆ¡£

KafkaµÄ»ù±¾¸ÅÄî

kafkaÔËÐÐÔÚ¼¯ÈºÉÏ£¬¼¯Èº°üº¬Ò»¸ö»ò¶à¸ö·þÎñÆ÷¡£kafka°ÑÏûÏ¢´æÔÚtopicÖУ¬Ã¿Ò»ÌõÏûÏ¢°üº¬¼üÖµ£¨key£©£¬Öµ£¨value£©ºÍʱ¼ä´Á£¨timestamp£©¡£

kafkaÓÐÒÔÏÂһЩ»ù±¾¸ÅÄ

Producer - ÏûÏ¢Éú²úÕߣ¬¾ÍÊÇÏòkafka broker·¢ÏûÏ¢µÄ¿Í»§¶Ë¡£

Consumer - ÏûÏ¢Ïû·ÑÕߣ¬ÊÇÏûÏ¢µÄʹÓ÷½£¬¸ºÔðÏû·ÑKafka·þÎñÆ÷ÉϵÄÏûÏ¢¡£

Topic - Ö÷Ì⣬ÓÉÓû§¶¨Òå²¢ÅäÖÃÔÚKafka·þÎñÆ÷£¬ÓÃÓÚ½¨Á¢ProducerºÍConsumerÖ®¼äµÄ¶©ÔĹØÏµ¡£Éú²úÕß·¢ËÍÏûÏ¢µ½Ö¸¶¨µÄTopicÏ£¬ÏûÏ¢Õß´ÓÕâ¸öTopicÏÂÏû·ÑÏûÏ¢¡£

Partition - ÏûÏ¢·ÖÇø£¬Ò»¸ötopic¿ÉÒÔ·ÖΪ¶à¸ö partition£¬Ã¿¸ö

partitionÊÇÒ»¸öÓÐÐòµÄ¶ÓÁС£partitionÖеÄÿÌõÏûÏ¢¶¼»á±»·ÖÅäÒ»¸öÓÐÐòµÄ

id£¨offset£©¡£

Broker - һ̨kafka·þÎñÆ÷¾ÍÊÇÒ»¸öbroker¡£Ò»¸ö¼¯ÈºÓɶà¸öbroker×é³É¡£Ò»¸öbroker¿ÉÒÔÈÝÄɶà¸ötopic¡£

Consumer Group - Ïû·ÑÕß·Ö×飬ÓÃÓÚ¹é×éͬÀàÏû·ÑÕß¡£Ã¿¸öconsumerÊôÓÚÒ»¸öÌØ¶¨µÄconsumer group£¬¶à¸öÏû·ÑÕß¿ÉÒÔ¹²Í¬ÏûÏ¢Ò»¸öTopicϵÄÏûÏ¢£¬Ã¿¸öÏû·ÑÕßÏû·ÑÆäÖеIJ¿·ÖÏûÏ¢£¬ÕâЩÏû·ÑÕß¾Í×é³ÉÁËÒ»¸ö·Ö×飬ӵÓÐͬһ¸ö·Ö×éÃû³Æ£¬Í¨³£Ò²±»³ÆÎªÏû·ÑÕß¼¯Èº¡£

Offset - ÏûÏ¢ÔÚpartitionÖÐµÄÆ«ÒÆÁ¿¡£Ã¿Ò»ÌõÏûÏ¢ÔÚpartition¶¼ÓÐΨһµÄÆ«ÒÆÁ¿£¬ÏûÏ¢Õß¿ÉÒÔÖ¸¶¨Æ«ÒÆÁ¿À´Ö¸¶¨ÒªÏû·ÑµÄÏûÏ¢¡£

Kafka·Ö²¼Ê½¼Ü¹¹

ÈçÉÏͼËùʾ£¬kafka½«topicÖеÄÏûÏ¢´æÔÚ²»Í¬µÄpartitionÖС£Èç¹û´æÔÚ¼üÖµ£¨key£©£¬ÏûÏ¢°´ÕÕ¼üÖµ£¨key£©×ö·ÖÀà´æÔÚ²»Í¬µÄpartiitionÖУ¬Èç¹û²»´æÔÚ¼üÖµ£¨key£©£¬ÏûÏ¢°´ÕÕÂÖѯ£¨Round Robin£©»úÖÆ´æÔÚ²»Í¬µÄpartitionÖС£Ä¬ÈÏÇé¿öÏ£¬¼üÖµ£¨key£©¾ö¶¨ÁËÒ»ÌõÏûÏ¢»á±»´æÔÚÄĸöpartitionÖС£

partitionÖеÄÏûÏ¢ÐòÁÐÊÇÓÐÐòµÄÏûÏ¢ÐòÁС£kafkaÔÚpartitionʹÓÃÆ«ÒÆÁ¿£¨offset£©À´Ö¸¶¨ÏûÏ¢µÄλÖá£Ò»¸ötopicµÄÒ»¸öpartitionÖ»Äܱ»Ò»¸öconsumer groupÖеÄÒ»¸öconsumerÏû·Ñ£¬¶à¸öconsumerÏû·Ñͬһ¸öpartitionÖеÄÊý¾ÝÊDz»ÔÊÐíµÄ£¬µ«ÊÇÒ»¸öconsumer¿ÉÒÔÏû·Ñ¶à¸öpartitionÖеÄÊý¾Ý¡£

kafka½«partitionµÄÊý¾Ý¸´ÖƵ½²»Í¬µÄbroker£¬ÌṩÁËpartitionÊý¾ÝµÄ±¸·Ý¡£Ã¿Ò»¸öpartition¶¼ÓÐÒ»¸öbroker×÷Ϊleader£¬Èô¸É¸öbroker×÷Ϊfollower¡£ËùÓеÄÊý¾Ý¶Áд¶¼Í¨¹ýleaderËùÔڵķþÎñÆ÷½øÐУ¬²¢ÇÒleaderÔÚ²»Í¬brokerÖ®¼ä¸´ÖÆÊý¾Ý¡£

ÉÏͼÖУ¬¶ÔÓÚPartition 0£¬broker 1ÊÇËüµÄleader£¬broker 2ºÍbroker 3ÊÇfollower¡£¶ÔÓÚPartition 1£¬broker 2ÊÇËüµÄleader£¬broker 1ºÍbroker 3ÊÇfollower¡£

ÔÚÉÏͼÖУ¬µ±ÓÐClient£¨Ò²¾ÍÊÇProducer£©ÒªÐ´ÈëÊý¾Ýµ½Partition 0ʱ£¬»áдÈëµ½leader Broker 1£¬Broker 1ÔÙ½«Êý¾Ý¸´ÖƵ½follower Broker 2ºÍBroker 3¡£

ÔÚÉÏͼÖУ¬ClientÏòPartition 1ÖÐдÈëÊý¾Ýʱ£¬»áдÈëµ½Broker 2£¬ÒòΪBroker 2ÊÇPartition 1µÄLeader£¬È»ºóBroker 2ÔÙ½«Êý¾Ý¸´ÖƵ½follower Broker 1ºÍBroker 3ÖС£

ÉÏͼÖеÄtopicÒ»¹²ÓÐ3¸öpartition£¬¶Ôÿ¸öpartitionµÄ¶Áд¶¼Óɲ»Í¬µÄbroker´¦Àí£¬Òò´Ë×ܵÄÍÌÍÂÁ¿µÃµ½ÁËÌáÉý¡£

ʵÑéÒ»£ºkafka-pythonʵÏÖÉú²úÕßÏû·ÑÕß

kafka-pythonÊÇÒ»¸öpythonµÄKafka¿Í»§¶Ë£¬¿ÉÒÔÓÃÀ´ÏòkafkaµÄtopic·¢ËÍÏûÏ¢¡¢Ïû·ÑÏûÏ¢¡£

Õâ¸öʵÑé»áʵÏÖÒ»¸öproducerºÍÒ»¸öconsumer£¬producerÏòkafka·¢ËÍÏûÏ¢£¬consumer´ÓtopicÖÐÏû·ÑÏûÏ¢¡£½á¹¹ÈçÏÂͼ

producer´úÂë

consumer´úÂë

½ÓÏÂÀ´´´½¨test topic

´ò¿ªÁ½¸ö´°¿ÚÖУ¬ÎÒÃÇÔÚwindow1ÖÐÔËÐÐproducer£¬ÈçÏÂ

ÔÚwindow2ÖÐÔËÐÐconsumer£¬ÈçÏÂ

¿ÉÒÔ¿´µ½window2ÖеÄconsumer³É¹¦µÄ¶Áµ½ÁËproducerдÈëµÄÊý¾Ý

ʵÑé¶þ£ºÏû·Ñ×éʵÏÖÈÝ´íÐÔ»úÖÆ

Õâ¸öʵÑ齫չʾÏû·Ñ×éµÄÈÝ´íÐÔµÄÌØµã¡£Õâ¸öʵÑéÖн«´´½¨Ò»¸öÓÐ2¸öpartitionµÄtopic£¬ºÍ2¸öconsumer£¬Õâ2¸öconsumer¹²Í¬Ïû·Ñͬһ¸ötopicÖеÄÊý¾Ý¡£½á¹¹ÈçÏÂËùʾ

producer²¿·Ö´úÂëºÍʵÑéÒ»Ïàͬ£¬ÕâÀï²»ÔÙÖØ¸´¡£consumerÐèÒªÖ¸¶¨ËùÊôµÄconsumer group£¬´úÂëÈçÏÂ

½ÓÏÂÀ´ÎÒÃÇ´´½¨topic£¬Ãû×Ötest£¬ÉèÖÃpartitionÊýÁ¿Îª2

´ò¿ªÈý¸ö´°¿Ú£¬Ò»¸ö´°¿ÚÔËÐÐproducer£¬»¹ÓÐÁ½¸ö´°¿ÚÔËÐÐconsumer¡£

ÔËÐÐconsumerµÄÁ½¸ö´°¿ÚµÄÊä³öÈçÏ£º

¿ÉÒÔ¿´µ½Á½¸öconsumerͬʱÔËÐеÄÇé¿öÏ£¬ËüÃÇ·Ö±ðÏû·Ñ²»Í¬partitionÖеÄÊý¾Ý¡£window1ÖеÄconsumerÏû·Ñpartition 0ÖеÄÊý¾Ý£¬window2ÖеÄconsumerÏû·Ñparition 1ÖеÄÊý¾Ý¡£

ÎÒÃdz¢ÊԹرÕwindow1ÖеÄconsumer£¬¿ÉÒÔ¿´µ½ÈçϽá¹û

¸Õ¿ªÊ¼window2ÖеÄconsumerÖ»Ïû·Ñpartition1ÖеÄÊý¾Ý£¬µ±window1ÖеÄconsumerÍ˳öºó£¬window2ÖеÄconsumerÖÐÒ²¿ªÊ¼Ïû·Ñpartition 0ÖеÄÊý¾ÝÁË¡£

ʵÑéÈý£ºoffset¹ÜÀí

kafkaÔÊÐíconsumer½«µ±Ç°Ïû·ÑµÄÏûÏ¢µÄoffsetÌá½»µ½kafkaÖУ¬ÕâÑùÈç¹ûconsumerÒòÒì³£Í˳öºó£¬ÏÂ´ÎÆô¶¯ÈÔÈ»¿ÉÒÔ´ÓÉϴμǼµÄoffset¿ªÊ¼Ïòºó¼ÌÐøÏû·ÑÏûÏ¢¡£

Õâ¸öʵÑéµÄ½á¹¹ºÍʵÑéÒ»µÄ½á¹¹ÊÇÒ»ÑùµÄ£¬Ê¹ÓÃÒ»¸öproducer£¬Ò»¸öconsumer£¬test topicµÄpartitionÊýÁ¿ÉèΪ1¡£

producerµÄ´úÂëºÍʵÑéÒ»ÖеÄÒ»Ñù£¬ÕâÀï²»ÔÙÖØ¸´¡£consumerµÄ´úÂëÉÔ×÷Ð޸ģ¬ÕâÀïconsumerÖдòÓ¡³öÏÂÒ»¸öÒª±»Ïû·ÑµÄÏûÏ¢µÄoffset¡£consumer´úÂëÈçÏÂ

ÔÚÒ»¸ö´°¿ÚÖÐÆô¶¯producer£¬ÔÚÁíÒ»¸ö´°¿Ú²¢ÇÒÆô¶¯consumer¡£consumerµÄÊä³öÈçÏÂ

¿ÉÒÔ³¢ÊÔÍ˳öconsumer£¬ÔÙÆô¶¯consumer¡£Ã¿Ò»´ÎÖØÐÂÆô¶¯£¬consumer¶¼ÊÇ´Óoffset=98µÄÏûÏ¢¿ªÊ¼Ïû·ÑµÄ¡£

ÐÞ¸ÄconsumerµÄ´úÂëÈçÏ£¬ÔÚconsumerÏû·ÑÿһÌõÏûÏ¢ºó½«offsetÌá½»»Økafka

Æô¶¯consumer

¿ÉÒÔ¿´µ½consumer´Óoffset=98µÄÏûÏ¢¿ªÊ¼Ïû·Ñ£¬µ½offset=829ʱ£¬ÎÒÃÇCtrl+CÍ˳öconsumer¡£

ÎÒÃÇÔÙ´ÎÆô¶¯consumer

¿ÉÒÔ¿´µ½ÖØÐÂÆô¶¯ºó£¬consumer´ÓÉÏÒ»´Î¼Ç¼µÄoffset¿ªÊ¼¼ÌÐøÏû·ÑÏûÏ¢¡£Ö®ºóÿһ´ÎconsumerÖØÐÂÆô¶¯£¬consumer¶¼»á´ÓÉÏÒ»´ÎÍ£Ö¹µÄµØ·½¼ÌÐø¿ªÊ¼Ïû·Ñ¡£

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

ÊÖ»úÈí¼þ²âÊÔÓÃÀýÉè¼ÆÊµ¼ù
ÊÖ»ú¿Í»§¶ËUI²âÊÔ·ÖÎö
iPhoneÏûÏ¢ÍÆËÍ»úÖÆÊµÏÖÓë̽ÌÖ
AndroidÊÖ»ú¿ª·¢£¨Ò»£©
Ïà¹ØÎĵµ

Android_UI¹Ù·½Éè¼Æ½Ì³Ì
ÊÖ»ú¿ª·¢Æ½Ì¨½éÉÜ
androidÅÄÕÕ¼°ÉÏ´«¹¦ÄÜ
Android½²ÒåÖÇÄÜÊÖ»ú¿ª·¢
Ïà¹Ø¿Î³Ì

Android¸ß¼¶Òƶ¯Ó¦ÓóÌÐò
Androidϵͳ¿ª·¢
AndroidÓ¦Óÿª·¢
ÊÖ»úÈí¼þ²âÊÔ