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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
×ܽá Kafka ±³ºóµÄÓÅÐãÉè¼Æ
 
×÷ÕߣººÎÓÀ¿µ
 
  1660  次浏览      28
2021-6-7 
 
±à¼­ÍƼö:
±¾ÎÄÖ÷Òª½éÉÜÁË

Ó¦Óó¡¾°¡¢Kafka ÍØÆËͼ£¨¶à¸±±¾»úÖÆ£©¡¢Kafka ºËÐÄ×é¼þ¡¢·þÎñÖÎÀí¡¢Kafka ΪʲôÕâô¿ìµÈÏà¹ØÄÚÈÝ¡£
±¾ÎÄÀ´×ÔÔÆ¼ÓÉçÇø £¬ÓÉ»ðÁú¹ûÈí¼þAnna±à¼­¡¢ÍƼö¡£

Ò»¡¢Ó¦Óó¡¾°

Òì²½½â¹¹£ºÔÚÉÏÏÂÓÎûÓÐÇ¿ÒÀÀµµÄÒµÎñ¹ØÏµ»òÕë¶Ôµ¥´ÎÇëÇó²»ÐèÒªÁ¢¿Ì´¦ÀíµÄÒµÎñ

ϵͳ»º³å£ºÓÐÀûÓÚ½â¾ö·þÎñϵͳµÄÍÌÍÂÁ¿²»Ò»ÖµÄÇé¿ö£¬ÓÈÆä¶Ô´¦ÀíËٶȽÏÂýµÄ·þÎñÀ´ËµÆðµ½»º³å×÷ÓÃ

Ïû·å×÷Ó㺶ÔÓÚ¶Ìʱ¼äżÏֵļ«¶ËÁ÷Á¿£¬¶Ôºó¶ËµÄ·þÎñ¿ÉÒÔÆô¶¯±£»¤×÷ÓÃ

Êý¾ÝÁ÷´¦Àí£º¼¯³É spark ×öʵʱÊý¾ÝÁ÷´¦Àí

¶þ¡¢Kafka ÍØÆËͼ£¨¶à¸±±¾»úÖÆ£©

ÓÉÉÏͼÎÒÃÇ¿ÉÒÔ·¢ÏÖ Kafka ÊÇ·Ö²¼Ê½£¬¶ÔÓÚÿһ¸ö·ÖÇø¶¼´æÔڶั±¾£¬Í¬Ê±Õû¸ö¼¯ÈºµÄ¹ÜÀí¶¼Í¨¹ý zookeeper ¹ÜÀí¡£

Èý¡¢Kafka ºËÐÄ×é¼þ

1. broker

Kafka ·þÎñÆ÷£¬¸ºÔðÏûÏ¢´æ´¢ºÍת·¢£»Ò»¸ö broker ¾Í´ú±íÒ»¸ö kafka ½Úµã¡£Ò»¸ö broker ¿ÉÒÔ°üº¬¶à¸ö topic¡£

2. topic

ÏûÏ¢Àà±ð£¬Kafka °´ÕÕ topic À´·ÖÀàÏûÏ¢¡£

3. partition

topic µÄ·ÖÇø£¬Ò»¸ö topic ¿ÉÒÔ°üº¬¶à¸ö partition£¬topic ÏûÏ¢±£´æÔÚ¸÷¸ö partition ÉÏ£»ÓÉÓÚÒ»¸ö topic Äܱ»·Öµ½¶à¸ö·ÖÇøÉÏ£¬¸ø kafka Ìṩ¸øÁ˲¢ÐеĴ¦ÀíÄÜÁ¦£¬ÕâÒ²ÕýÊÇ kafka ¸ßÍÌ͵ÄÔ­ÒòÖ®Ò»¡£

partition ÎïÀíÉÏÓɶà¸ö segment Îļþ×é³É£¬Ã¿¸ö segment ´óСÏàµÈ£¬Ë³Ðò¶Áд£¨ÕâÒ²ÊÇ kafka ±È½Ï¿ìµÄÔ­ÒòÖ®Ò»£¬²»ÐèÒªËæ»úд£©¡£Ã¿¸ö Segment Êý¾ÝÎļþÒԸöÎÖÐ×îСµÄ offset £¬ÎļþÀ©Õ¹ÃûΪ.log¡£µ±²éÕÒ offset µÄ Message µÄʱºò£¬Í¨¹ý¶þ·Ö²éÕÒ¿ìÕÒµ½ Message Ëù´¦ÓÚµÄ Segment ÖС£

4. offset

ÏûÏ¢ÔÚÈÕÖ¾ÖеÄλÖ㬿ÉÒÔÀí½âÊÇÏûÏ¢ÔÚ partition ÉÏµÄÆ«ÒÆÁ¿£¬Ò²ÊÇ´ú±í¸ÃÏûÏ¢µÄΨһÐòºÅ¡£

ͬʱҲÊÇÖ÷´ÓÖ®¼äµÄÐèҪͬ²½µÄÐÅÏ¢¡£

5. Producer

Éú²úÕߣ¬¸ºÔðÏò Kafka Broker ·¢ÏûÏ¢µÄ¿Í»§¶Ë¡£

6. Consumer

ÏûÏ¢ÏûÕߣ¬¸ºÔðÏû·Ñ Kafka Broker ÖеÄÏûÏ¢¡£

7. Consumer Group

Ïû·ÑÕß×飬ÿ¸ö Consumer ±ØÐëÊôÓÚÒ»¸ö group£»£¨×¢Ò⣺һ¸ö·ÖÇøÖ»ÄÜÓÉ×éÄÚÒ»¸öÏû·ÑÕßÏû·Ñ£¬Ïû·ÑÕß×éÖ®¼ä»¥²»Ó°Ïì¡££©

8. Zookeeper

¹ÜÀí kafka ¼¯Èº£¬¸ºÔð´æ´¢Á˼¯Èº broker¡¢topic¡¢partition µÈ meta Êý¾Ý´æ´¢£¬Í¬Ê±Ò²¸ºÔð broker ¹ÊÕÏ·¢ÏÖ£¬partition leader Ñ¡¾Ù£¬¸ºÔؾùºâµÈ¹¦ÄÜ¡£

ËÄ¡¢·þÎñÖÎÀí

¼ÈÈ» Kafka ÊÇ·Ö²¼Ê½µÄ·¢²¼/¶©ÔÄϵͳ£¬ÕâÑùÈç¹û×öµÄ¼¯ÈºÖ®¼äÊý¾Ýͬ²½ºÍÒ»ÖÂÐÔ£¬kafka ÊDz»Êǿ϶¨²»»á¶ªÏûÏ¢ÄØ£¿ÒÔ¼°å´»úµÄʱºòÈç¹û½øÐÐ Leader Ñ¡¾ÙÄØ£¿

1. Êý¾Ýͬ²½

ÔÚ Kafka ÖÐµÄ Partition ÓÐÒ»¸ö leader Óë¶à¸ö follower£¬producer Íùij¸ö Partition ÖÐдÈëÊý¾Ý£¬ÊÇÖ»»áÍù leader ÖÐдÈëÊý¾Ý£¬È»ºóÊý¾Ý²Å»á±»¸´ÖƽøÆäËûµÄ Replica ÖС£¶øÃ¿Ò»¸ö follower ¿ÉÒÔÀí½â³ÉÒ»¸öÏû·ÑÕߣ¬¶¨ÆÚÈ¥ leader È¥À­ÏûÏ¢¡£¶øÖ»ÓÐÊý¾Ýͬ²½Á˺ó£¬kafka ²Å»á¸øÉú²úÕß·µ»ØÒ»¸ö ACK ¸æÖªÏûÏ¢ÒѾ­´æ´¢Â䵨ÁË¡£

2. ISR

ÔÚ Kafka ÖУ¬ÎªÁ˱£Ö¤ÐÔÄÜ£¬Kafka ²»»á²ÉÓÃǿһÖÂÐԵķ½Ê½À´Í¬²½Ö÷´ÓµÄÊý¾Ý¡£¶øÊÇά»¤ÁËÒ»¸ö£ºin-sync Replica µÄÁÐ±í£¬Leader ²»ÐèÒªµÈ´ýËùÓÐ Follower ¶¼Íê³Éͬ²½£¬Ö»ÒªÔÚ ISR ÖÐµÄ Follower Íê³ÉÊý¾Ýͬ²½¾Í¿ÉÒÔ·¢ËÍ ACK ¸øÉú²úÕß¼´¿ÉÈÏΪÏûϢͬ²½Íê³É¡£Í¬Ê±Èç¹û·¢ÏÖ ISR ÀïÃæÄ³Ò»¸ö follower ÂäºóÌ«¶àµÄ»°£¬¾Í»á°ÑËüÌÞ³ý¡£

¾ßÌåÁ÷³ÌÈçÏ£º

ÉÏÊöµÄ×ö·¨²¢ÎÞ·¨±£Ö¤ Kafka Ò»¶¨²»¶ªÏûÏ¢¡£ËäÈ» Kafka ͨ¹ý¶à¸±±¾»úÖÆÖÐ×î´óÏ޶ȱ£Ö¤ÏûÏ¢²»»á¶ªÊ§£¬µ«ÊÇÈç¹ûÊý¾ÝÒѾ­Ð´Èëϵͳ page cache Öе«ÊÇ»¹Ã»À´µÃ¼°Ë¢Èë´ÅÅÌ£¬´ËʱͻȻ»úÆ÷å´»ú»òÕßµôµç£¬ÄÇÏûÏ¢×ÔÈ»¶øÈ»µØ¾Í»á¶ªÊ§¡£

3. Kafka ¹ÊÕϻָ´

Kafka ͨ¹ý Zookeeper Á¬×ø¼¯ÈºµÄ¹ÜÀí£¬ËùÒÔÕâÀïµÄÑ¡¾Ù»úÖÆ²ÉÓõÄÊÇZab£¨zookeeper ʹÓã©¡£

Éú²úÕß·¢ÉúÏûÏ¢¸ø leader £¬Õâ¸öʱºò leader Íê³ÉÊý¾Ý´æ´¢£¬Í»È»·¢Éú¹ÊÕÏ£¬Ã»Óиø producer ·µ»Ø ack£»

ͨ¹ý ZK Ñ¡¾Ù£¬ÆäÖÐÒ»¸ö follower ³ÉΪ leader £¬Õâ¸öʱºò producer ÖØÐÂÇëÇóÐ嵀 leader£¬²¢´æ´¢Êý¾Ý¡£

Îå¡¢Kafka ΪʲôÕâô¿ì

1. ˳Ðòд´ÅÅÌ

Kafka ²ÉÓÃÁË˳Ðòд´ÅÅÌ£¬¶øÓÉÓÚ˳Ðòд´ÅÅÌÏà¶ÔËæ»úд£¬¼õÉÙÁËѰµØÖ·µÄºÄ·Ñʱ¼ä¡££¨ÔÚ Kafka µÄÿһ¸ö·ÖÇøÀïÃæÏûÏ¢ÊÇÓÐÐòµÄ£©

2. Page Cache

Kafka ÔÚ OS ϵͳ·½ÃæÊ¹ÓÃÁË Page Cache ¶ø²»ÊÇÎÒÃÇÆ½³£ËùÓÃµÄ Buffer¡£Page Cache Æäʵ²»Ä°Éú£¬Ò²²»ÊÇʲôÐÂÏÊÊÂÎï¡£

ÎÒÃÇÔÚ linux Éϲ鿴ÄÚ´æµÄʱºò£¬¾­³£¿ÉÒÔ¿´µ½ buff/cache£¬Á½Õß¶¼ÊÇÓÃÀ´¼ÓËÙ IO ¶ÁдÓõ쬶ø cache ÊÇ×÷ÓÃÓÚ¶Á£¬Ò²¾ÍÊÇ˵£¬´ÅÅ̵ÄÄÚÈÝ¿ÉÒÔ¶Áµ½ cache ÀïÃæ£¬ÕâÑùÓ¦ÓóÌÐò¶Á´ÅÅ̾ͷdz£¿ì£»¶ø buff ÊÇ×÷ÓÃÓÚд£¬ÎÒÃÇ¿ª·¢Ð´´ÅÅ̶¼ÊÇ£¬Ò»°ãÈç¹ûдÈëÒ»¸ö buff ÀïÃæÔÙ flush ¾Í·Ç³£¿ì¡£¶ø kafka ÕýÊǰÑÕâÁ½Õß·¢»Óµ½Á˼«Ö£ºKafka ËäÈ»ÊÇ scala дµÄ£¬µ«ÊÇÒÀ¾ÉÔÚ Java µÄÐéÄâ»úÉÏÔËÐУ¬¾¡¹ÜÈç´Ë£¬kafka Ëü»¹ÊǾ¡Á¿±Ü¿ªÁË JVM µÄÏÞÖÆ£¬ËüÀûÓÃÁË Page cache À´´æ´¢£¬ÕâÑù¶ã¿ªÁËÊý¾ÝÔÚ JVM ÒòΪ GC ¶ø·¢ÉúµÄ STW¡£ÁíÒ»·½ÃæÒ²ÊÇ Page Cache ʹµÃËüʵÏÖÁËÁ㿽±´£¬¾ßÌåÏÂÃæ»á½²¡£

3. Á㿽±´

ÎÞÂÛÊÇÓÅÐãµÄ Netty »¹ÊÇÆäËûÓÅÐãµÄ Java ¿ò¼Ü£¬»ù±¾¶¼ÔÚÁ㿽±´¼õÉÙÁË CPU µÄÉÏÏÂÎÄÇл»ºÍ´ÅÅÌµÄ IO¡£µ±È» Kafka Ò²²»ÀýÍâ¡£Á㿽±´µÄ¸ÅÄî¾ßÌåÕâÀï²»×÷Ì«ÏêϸµÄ¸´Êö£¬´óÖµظø´ó¼Ò½²Ò»ÏÂÕâ¸ö¸ÅÄî¡£

´«Í³µÄÒ»´ÎÓ¦ÓóÌÇëÇóÊý¾ÝµÄ¹ý³Ì£º

ÕâÀï´óÖ¿ÉÒÔ·¢´«Í³µÄ·½Ê½·¢ÉúÁË4´Î¿½±´£¬2´Î DMA ºÍ2´Î CPU£¬¶ø CPU ·¢ÉúÁË4´ÎµÄÇл»¡££¨DMA ¼òµ¥Àí½â¾ÍÊÇ£¬ÔÚ½øÐÐ I/O É豸ºÍÄÚ´æµÄÊý¾Ý´«ÊäµÄʱºò£¬Êý¾Ý°áÔ˵Ť×÷È«²¿½»¸ø DMA ¿ØÖÆÆ÷£¬¶ø CPU ²»ÔÙ²ÎÓëÈκÎÓëÊý¾Ý°áÔËÏà¹ØµÄÊÂÇ飩

4. Á㿽±´µÄ·½Ê½

ͨ¹ýÓÅ»¯ÎÒÃÇ¿ÉÒÔ·¢ÏÖ£¬CPU Ö»·¢ÉúÁË2´ÎµÄÉÏÏÂÎÄÇл»ºÍ3´ÎÊý¾Ý¿½±´¡££¨linux ϵͳÌṩÁËϵͳʹʵ÷Óú¯Êý¡°sendfile()¡±£¬ÕâÑùϵͳµ÷Ó㬿ÉÒÔÖ±½Ó°ÑÄں˻º³åÇøÀïµÄÊý¾Ý¿½±´µ½ socket »º³åÇøÀ²»ÔÙ¿½±´µ½Óû§Ì¬£©

5. ·ÖÇø·Ö¶Î

ÎÒÃÇÉÏÃæÒ²½éÉܹý£¬kafka ²ÉÈ¡ÁË·ÖÇøµÄģʽ£¬¶øÃ¿Ò»¸ö·ÖÇøÓÖ¶ÔÓ¦µ½Ò»¸öÎïÀí·Ö¶Î£¬²éÕÒµÄʱºò¿ÉÒÔ¸ù¾Ý¶þ·Ö²éÕÒ¿ìËÙ¶¨Î»¡£ÕâÑù²»½öÌṩÁËÊý¾Ý¶ÁµÄ²éѯЧÂÊ£¬Ò²ÌṩÁ˲¢ÐвÙ×÷µÄ·½Ê½¡£

6. Êý¾ÝѹËõ

Kafka ¶ÔÊý¾ÝÌṩÁË£ºGzip ºÍ Snappy ѹËõЭÒéµÈѹËõЭÒ飬¶ÔÏûÏ¢½á¹¹Ìå½øÐÐÁËѹËõ£¬Ò»·½Ãæ¼õÉÙÁË´ø¿í£¬Ò²¼õÉÙÁËÊý¾Ý´«ÊäµÄÏûºÄ¡£

Áù¡¢Kafka °²×°

1. °²×°JDK

ÓÉÓÚʹÓÃѹËõ°ü»¹ÐèÒª×Ô¼ºÅäÖû·¾³±äÁ¿£¬ËùÒÔÕâÀïÍÆ¼öÖ±½ÓÓà yum °²×°£¬ÊìϤ²é¿´Ä¿Ç° Java µÄ°æ±¾£º

yum -y list Java*

°²×°ÄãÏëÒªµÄ°æ±¾£¬ÕâÀïÎÒÊÇ1.8

yum install java-1.8.0-openjdk-devel.x86_64

²é¿´ÊÇ·ñ°²×°³É¹¦

Java -version

2. °²×°Zookeeper

Ê×ÏÈÐèҪȥ¹ÙÍøÏÂÔØ°²×°°ü£¬È»ºó½âѹ

tar -zxvf zookeeper-3.4.9.tar.gz

Òª×öµÄ¾ÍÊǽ«Õâ¸öÎļþ¸´ÖÆÒ»·Ý£¬²¢ÃüÃûΪ£ºzoo.cfg£¬È»ºóÔÚ zoo.cfg ÖÐÐÞ¸Ä×Ô¼ºµÄÅäÖü´¿É

cp zoo_sample.cfg zoo.cfg
vim zoo.cfg

Ö÷ÒªÅäÖýâÊÍÈçÏ£º

# zookeeperÄÚ²¿µÄ»ù±¾µ¥Î»£¬µ¥Î»ÊǺÁÃ룬Õâ¸ö±íʾһ¸ötickTimeΪ2000ºÁÃ룬ÔÚzookeeperµÄÆäËûÅäÖÃÖУ¬¶¼ÊÇ»ùÓÚtickTimeÀ´×ö»»ËãµÄ
tickTime=2000
# ¼¯ÈºÖеÄfollower·þÎñÆ÷(F)Óëleader·þÎñÆ÷(L)Ö®¼ä ³õʼÁ¬½Ó ʱÄÜÈÝÈ̵Ä×î¶àÐÄÌøÊý£¨tickTimeµÄÊýÁ¿£©¡£
initLimit=10
#syncLimit£º¼¯ÈºÖеÄfollower·þÎñÆ÷(F)Óëleader·þÎñÆ÷(L)Ö®¼ä ÇëÇóºÍÓ¦´ð Ö®¼äÄÜÈÝÈ̵Ä×î¶àÐÄÌøÊý£¨tickTimeµÄÊýÁ¿£©
syncLimit=5
# Êý¾Ý´æ·ÅÎļþ¼Ð£¬zookeeperÔËÐйý³ÌÖÐÓÐÁ½¸öÊý¾ÝÐèÒª´æ´¢£¬Ò»¸öÊÇ¿ìÕÕÊý¾Ý£¨³Ö¾Ã»¯Êý¾Ý£©ÁíÒ»¸öÊÇÊÂÎñÈÕÖ¾
dataDir=/tmp/zookeeper
## ¿Í»§¶Ë·ÃÎʶ˿Ú
clientPort=2181

ÅäÖû·¾³±äÁ¿

vim ~/.bash_profile
export ZK=/usr/local/src/apache-zookeeper-3.7.0-bin
export PATH=$PATH:$ZK/bin
export PATH
// Æô¶¯
zkServer.sh start

ÏÂÃæÄÜ¿´Æô¶¯³É¹¦

3. °²×° Kafka

ÏÂÔØ Kafka

°²×° Kafka

tar -xzvf kafka_2.12-2.0.0.tgz

ÅäÖû·¾³±äÁ¿

export ZK=/usr/local/src/apache -zookeeper-3.7.0-bin
export PATH= $PATH:$ZK/bin
export KAFKA= /usr/local/src/kafka
export PATH= $PATH:$KAFKA/bin

Æô¶¯ Kafka


nohup kafka-server-start.sh ×Ô¼ºµÄÅäÖÃÎļþ·¾¶/server.properties &

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

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

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

Êý¾ÝÖÎÀí¡¢Êý¾Ý¼Ü¹¹¼°Êý¾Ý±ê×¼
MongoDBʵս¿Î³Ì
²¢·¢¡¢´óÈÝÁ¿¡¢¸ßÐÔÄÜÊý¾Ý¿âÉè¼ÆÓëÓÅ»¯
PostgreSQLÊý¾Ý¿âʵսÅàѵ
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]
 
×îÐÂÎÄÕÂ
´óÊý¾Ýƽ̨ϵÄÊý¾ÝÖÎÀí
ÈçºÎÉè¼ÆÊµÊ±Êý¾Ýƽ̨£¨¼¼Êõƪ£©
´óÊý¾Ý×ʲú¹ÜÀí×ÜÌå¿ò¼Ü¸ÅÊö
Kafka¼Ü¹¹ºÍÔ­Àí
ELK¶àÖּܹ¹¼°ÓÅÁÓ
×îпγÌ
´óÊý¾Ýƽ̨´î½¨Óë¸ßÐÔÄܼÆËã
´óÊý¾Ýƽ̨¼Ü¹¹ÓëÓ¦ÓÃʵս
´óÊý¾ÝϵͳÔËά
´óÊý¾Ý·ÖÎöÓë¹ÜÀí
Python¼°Êý¾Ý·ÖÎö
³É¹¦°¸Àý
ijͨÐÅÉ豸ÆóÒµ PythonÊý¾Ý·ÖÎöÓëÍÚ¾ò
Ä³ÒøÐÐ È˹¤ÖÇÄÜ+Python+´óÊý¾Ý
±±¾© Python¼°Êý¾Ý·ÖÎö
ÉñÁúÆû³µ ´óÊý¾Ý¼¼Êõƽ̨-Hadoop
ÖйúµçÐÅ ´óÊý¾Ýʱ´úÓëÏÖ´úÆóÒµµÄÊý¾Ý»¯ÔËӪʵ¼ù