SlideShare a Scribd company logo
1 of 103
Download to read offline
!"!!#"$
%&'
!"# $%$
!"#$%& '()*+
!"#$%&'
! "
(# )*+,
!# -.- /01 23456
7# -.- 68 9: ;<
$# -.- => 9: ;<
&'()
#$%& !
!
"#$ %&% '()*+, &-./0 1234567
'(' )* +, -./0
ü ?@ ABCD EFBGHIDJGKLMN OPQR SFT UV W XY Z[]^ _`aN SL b *cde fgh#
ü ?i jklmFnLM op jklmFnqr st
uv Z[]w xyz^ {|c} ~• €• ‚ƒ
„… 2i† ')6r ‡ˆ €• -.- ‰Š
‹Œ6 _`• Ž)• •‘h’
‹2“F •”U• xy4•} jklmFnw 9U+
–– —Z•˜M ™š+ Š›h’
()*+ ,- ./*+ ,-
01 234
(#( -.-w ‰Š
8
"#$ %&% '()*+, &-./0 1234567
'('1 23
ü -.-N œ jklmFn•l s‡až SFT^ ]la• •} % ŸL Z ]l¡ U ¢z• £¤V£Q ¥h#
-.-+ ¦§R F¨w OF.©G Z[]
5647 8(9:;
<=>? @9
AB C.D 01D4
EFGHI J2
KL /MHI NO PQ
R SO T,U V+W
(#( -.-w ‰Š
9
"#$ %&% '()*+, &-./0 1234567
(4567 89:
ü -.- ª«L SFT+ ¬-®N O¯nw t3• °±°²³°´µ¶·¸±¹¸°´µ¶·¸²º·» ¼½w ¾ ¿ÀÁÂà ÄE
ü ¾L SFT^ 5ªN ÅF Æ.rÇMÆ F} SFT^ +È+N ÅF ÆÉÊËÆ Fh
XY
Z[ ]
Z[ ^
Z[ _
`IaC b-c
] ^ _ d e
(#( -.-w ‰Š
:
"#$ %&% '()*+, &-./0 1234567
; '('< =+> ?+(@AB4 CDE<F
ü SFT UV W ¦v^ 9Ìa} ͈Îe |+a,Ï Äsa˜Mz Ð- +Ña1 ¿tQ% Åe ÆSFT OF.©GÒF©}
«Óh#
ü SFT OF.©Ge ͈¦F} Ð-Î Ô1 _`a6 Õ% Ö• ¼× £ aØ+ ZOÙ -.-^ Ú§aN ÅFh#
!" #$%
ü fO g5 T,U7 hi jkI V+lmn opqrs tuv
ü Z[ jkI wA xG5 T,U7 ;y Z[D z{:| T,U
7 }~ V+
&'(
ü T,U7 •€+D •0:P ‚| ZA ƒ)„D •0lmn
ü …†‡%ˆ‰3Š? k{ ‹,P Œƒ 2•? •€+D ŽI •ˆ:;
•ulmn
)*(
ü ‘’G“ ”•DC EFGHI –0 ‘‰:mn
ü —y)U5 ˜I< ™š7 ›œ )•A žŸ š ¡mn
+,-(
ü T,U5 ¢£7 ¤{ |‘uˆ5 ¥¦? ‘§mn
ü 01‘ ¨•:©ª4 «cP ˜I<D •0¬- ¡mn
(#! ÛSFT OF.©GLM -.-w Ü¡
$%$ *+, -./01
#$%& "
;
"#$ %&% '()*+, &-./0 1234567
'(' GH
!#( ‚ݧ -.- Þrß ;Ù
Zà ID^ á}až ;Ù45¿
â··ã¶äååæçèæç#çãçéâê#ëµìåíº´é涷絷
<=
"#$ %&% '()*+, &-./0 1234567
I$JI$K&LMNOPQPR
ü îïFð -.-LM SFT^ ÁXaN +- 68¦G 9:Fh#
ü ñòóôõLM E§aN öF÷ø ÄEah#
ü -.- ùúiTL îï• žú 9 ûv¡ U ¢h#
ü îïLN O¯nF ûvaNS O¯nw 9UN ü? (9«T 23%h#
® îïe ŠÎaN !+• ¼×
-.- ÉÊË ýN .rÇM+ -.- ÞrßL ŠÎ®• •• îïL þ4 SFT^ ÿ!¡ "
ß#J ©G $r <2¦qr îïe ŠÎaN Å
<
>
!#! -.- ß#J ©G $
<<
"#$ %&% '()*+, &-./0 1234567
I$JI$K&LMNOPQPR
$ bin/kafka-topics.sh 
--create 
--bootstrap-server localhost:9092 
--topic hello.kafka 
>
?
< €€éµêç·ê¸%nqr îïe ŠÎaN <&*©N Åe <2
ü ,- ./ 0123
> €€'ëë·¶·µç〶êµ(êµL Þrß)w ±)à ãëµ·^ ¦Nh#
? €€·ëã´éLN îï F*e 3Î%h#
<
!#! -.- ß#J ©G $
<>
"#$ %&% '()*+, &-./0 1234567
I$JI$K&LMNOPQPR
$ bin/kafka-topics.sh 
--create 
--bootstrap-server localhost:9092 
--partitions 3 
--replication-factor 1 
--config retention.ms=172800000 
--topic hello.kafka.2 
<
>
?
< €€ãçµ·´·´ë¹¶N O¯n 9U^ •ˆ%h#
ü ,- ./ 0456789&3
> €€µêã+´éç·´ë¹€èçé·ëµLN O¯ne xš¡ 9U^ ¦Nh# ³(• xša• •,# !N (9w xš8 E§»
? €€éë¹è´ì¶N |+¦G ;ˆ# µê·ê¹·´ë¹#-¶N îïw SFT^ Ä•aN 6“ ³(.!/"""""N !0»
!#! -.- ß#J ©G $
<?
"#$ %&% '()*+, &-./0 1234567
I$JI$K&LMNOPQPR
$ bin/kafka-topics.sh --bootstrap-server localhost:9092 –list
ü ,- #:; <=
!#! -.- ß#J ©G $
<!
"#$ %&% '()*+, &-./0 1234567
I$JI$K&LMNOPQPR
$ bin/kafka-topics.sh --bootstrap-server localhost:9092 --describe --topic hello.kafka.2
ü ,- >? <=
!#! -.- ß#J ©G $
<8
"#$ %&% '()*+, &-./0 1234567
I$JI$K&LMNOPQPR
$ bin/kafka-topics.sh --bootstrap-server localhost:9092 
--topic hello.kafka 
--alter 
--partitions 4
$ bin/kafka-configs.sh --bootstrap-server localhost:9092 
--entity-type topics 
--entity-name hello.kafka 
--alter --add-config retention.ms=86400000
ü ,- 9& @A
!#! -.- ß#J ©G $
<9
"#$ %&% '()*+, &-./0 1234567
I$JI$KOLSPLTUKM%LVWOU%QPR
$ bin/kafka-console-producer.sh --bootstrap-server localhost:9092 
--topic hello.kafka
>hello
>kafka
>0
>1
>2
>3
ü îïL 1N SFTN Ò23J³µêéëµ4»Ò©} «0, 52• [à 52• 6qr F7*È ¢h#
ü 52• [N ¿8w ¹º++r 68 ;ˆ®* Þrßr 9:Rh#
ü 12 BC
!#! -.- ß#J ©G $
<:
"#$ %&% '()*+, &-./0 1234567
I$JI$KOLSPLTUKM%LVWOU%QPR
ü æçèæç€é빶ë+ê€ãµë4ºéêµ#¶âr 9:®N 23J 6• ;<°€/e 6=qr ó>·êr ?@®}
ó>·êAµµç>õêµ´ç+´Bêµr CDQRh#
ü õ·µ´¹ìF ZE oFqrN CDQaž 9:¡ U Gh#
ü hÓ oFqr 9:a} Hh˜ -.- .rÇM jklmFne CI 9J4K %h#
@ABCDBCEFGHIGJKELMGNOFKM@I4
#P, =
#P, <
#P, >
#P, <=
!"! #$%
@
@
!"#
!"#
!"#
!"#
!#! -.- ß#J ©G $
<Q
"#$ %&% '()*+, &-./0 1234567
I$JI$KOLSPLTUKM%LVWOU%QPR
ü DEF BC 045678DEF G3
$ bin/kafka-console-producer.sh --bootstrap-server localhost:9092 
--topic hello.kafka 
--property "parse.key=true" 
--property "key.separator=:”
>key1:no1
>key2:no2
>key3:no3
>
<
< ã絶ê#æê>^ ·µºêr L˜ 23J^ 9:¡ " 52• [^ |+¡ U ¢h#
> 52• [Ã 52• 6e ÁXaN ÁX¿^ ÌM%h#
!#! -.- ß#J ©G $
<;
"#$ %&% '()*+, &-./0 1234567
I$JI$KOLSPLTUKM%LVWOU%QPR
ü 9:®N 23J 6• ;<°€/e 6=qr ó>·êr ?@Rh#
ü 52• [+ ¹º++G &NLN .rÇM+ O¯nqr 9:¡ " 23J YÙ PÕr ©_JrQqr 9:%h#¸
ü 52• [+ ûvaN &NLN [w 426e 3Îaž ûvaN O¯n £ % 9L ¡RRh#¸
ü Fr G4 52• [+ t0% &NLN t0% O¯nqr 9:Rh#
!#! -.- ß#J ©G $
>=
"#$ %&% '()*+, &-./0 1234567
I$JI$KOLSPLTUKM%LVWOU%QPR
® O¯n 9U+ S*ؘ Tr .rÇU®N 23J)• *V O¯nqr WXY
F9L 52• [+ O¯n "ZL )*[h˜ O¯ne S ]LN O¯n "Zqr “hN 5-F Gh#¸'0 O¯n
e |+a^©z F9L E§a_ 52• [w 0`Îe 5-a} Hh˜ ßia O¯bc^ ')*M _`4K %h#
!#! -.- ß#J ©G $
><
"#$ %&% '()*+, &-./0 1234567
I$JI$KOLSPLTUKOLSPWXU%QPR
$ bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 
--topic hello.kafka 
--from-beginning
ü €€'ëë·¶·µç〶êµ(êµL -.- ùúiT ˆ5
ü €€·ëã´éL îï F*
ü €€èµë-€'êì´¹¹´¹ì¸%ne d˜ îïL ¬-R +- ], SFT«T e•
!#! -.- ß#J ©G $
>>
"#$ %&% '()*+, &-./0 1234567
I$JI$KOLSPLTUKOLSPWXU%QPR
$ bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 
--topic hello.kafka 
--property print.key=true 
--property key.separator="-" 
--group hello-group 
--from-beginning
key1-no1
null-4
null-5
null-0
null-hello
null-kafka
key2-no2
key3-no3
ü SFTw 52• [à 52• 6e ÐGa} Hh˜ €€ãµëãêµ·>¸%ne E§a˜ Rh#
< 52• [^ ÐGa6 Õ4 ãµ´¹·#æê>^ ·µºêr ;ˆ¥h#
> 52• [ 6e ÁXa6 Õ4 æê>#¶êãçµç·ëµ^ ;ˆ¥h#
? €€ìµëºã¸%ne f4 ÉÊË ghe ŠÎ¥h#¸F ÉÊË ghe f4 +È“ îïw 52•N +È“ 52•L þ4 ß
ie %h#¸ßi ˆ5N jjé빶º-êµjëèè¶ê·¶ F*w ª« îïL ¬-Rh#
<
>
?
!#! -.- ß#J ©G $
>?
"#$ %&% '()*+, &-./0 1234567
I$JI$KOLSPLTUKOLSPWXU%QPR
ü 52• [^ 1• •• SFTN ¹º++ø 52• 6F kl 5F}Ï 52• [^ 1• SFTN 52• [à 6F kl 5Gh#
ü æçèæç€é빶ë+ê€ãµë4ºéêµ#¶âr 9:¥_ SFTw mM+ uv e•®N mMà h0h#
ü FN O¯n 9: "™L Š6N u=Fh#
ü æçèæç€é빶ë+ê€é빶º-êµ#¶â^ f4 îïw 52•^ +È+1 ®˜ îïw n O¯nqr«T t0% £ÿzr S
FT^ +È“h#
ü Fr G4 îïL 1• SFTÃ îïLM +È“ SFTw mM+ o©•1 ®N ÅFh#
@ABCDBCEFGHIGJKEFGHIORKM@I4
#P, =
#P, <
#P, >
#P, <=
!"! #$%
@
@
!"#
!"#
!"#
!"#
!#! -.- ß#J ©G $
>!
"#$ %&% '()*+, &-./0 1234567
I$JI$KOLSPWXU%KY%LWMPQPR
ü ŠÎR ÉÊË ghw liBN æçèæç€é빶º-êµ€ìµëºã¶#¶â <&*r ÐG¡ U ¢h#
$ bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --list
ü €€+´¶·¶N ÉÊË ghw liB^ ÐGaN %nFh#
$ bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 
--group hello-group 
--describe
!#! -.- ß#J ©G $
>8
"#$ %&% '()*+, &-./0 1234567
I$JI$KZU%NJN$[TUKM%LVWOU%QPR7OLSPWXU%QPR
ü æçèæç€(êµ´è´ç'+êr 23aN !9w iDpB^ E§a˜ õ·µ´¹ì oF 52• 6e 3J GF d}qe U ¢h#
$ bin/kafka-verifiable-producer.sh --bootstrap-server localhost:9092 
--max-messages 10 
--topic verify-test
ü 9:% SFTN æçèæç€(êµ´è´ç'+ê€é빶º-êµ#¶âr ÐG¡ U ¢h#
$ bin/kafka-verifiable-consumer.sh --bootstrap-server localhost:9092 
--topic verify-test 
--group-id test-group
!#! -.- ß#J ©G $
>9
"#$ %&% '()*+, &-./0 1234567
I$JI$KVUTU&UK%UOL%VPQPR
ü îïw SFT^ •r " E§
ü îïw SFT £ +- sàR SFT³+- {• t¿w s.u»«T vˆ 2–w s.uX• wš¡ U ¢h#
ü -.-LMN îïw O¯nL ¬-R vˆ SFT' wš¡ UN GhN –e <x4K %h#
vi delete-topic.json
{"partitions": [{"topic": "hello.kafka", "partition": 0, "offset": 50}], "version": 1}
$ bin/kafka-delete-records.sh --bootstrap-server localhost:9092 
--offset-json-file delete-topic.json
#¯°# XY5 ]± Z[D •0² T,U ³ ]BU d] ´`µ T,U¶P P·¸ •·
!#! -.- ß#J ©G $
$%$ 12 34 56
#$%& #
>Q
"#$ %&% '()*+, &-./0 1234567
'(' ]4^・_`a>・b.c
ü -.- ÞrßN -.- ù©FMBÃ SFT^ d}q6 Õ% E§aN dy
ü SFT^ Xz ¬-až -j+ JŠa^©z Í9a1 E§¡ U ¢z• zÃ{h#
ü M| (þrz 68 ‚}F ®•' 7þ F=w Þrß M|^ (9w ùúiTr ~*M _`%h#
ü -.- ùúiTr ~G Þrß)• .rÇM+ 5• SFT^ Í9a1 ¬-a} xšaN Ü¡e %h#
STU
&'( )*+
V-W =
V-W <
V-W >
!"! ,-./
7#( -.- Þrß・ùúiT・d[€
>;
"#$ %&% '()*+, &-./0 1234567
'(' ]4^ K =+> de7 ,f
ü .rÇMr«T SFT^ 9oqq˜ O¯nL SFT^ ¬-a} ÉÊË+ SFT^ ÿ!a˜ ¬-R SFT^ 9o%h#
ü .rÇMr«T 9oR SFTN O0 2i†L ¬-Rh#
$ ls /tmp/kafka-logs
drwxr-xr-x 6 macbookpro wheel 192 5 13 20:16 hello.kafka-0
drwxr-xr-x 6 macbookpro wheel 192 5 13 20:17 hello.kafka.2-0
drwxr-xr-x 6 macbookpro wheel 192 5 13 20:17 hello.kafka.2-1
drwxr-xr-x 6 macbookpro wheel 192 5 13 20:17 hello.kafka.2-2
$ ls /tmp/kafka-logs/hello.kafka-0
macbookpro /tmp/kafka-logs ls hello.kafka-0
00000000000000000000.index 00000000000000000000.timeindex
00000000000000000000.log leader-epoch-checkpoint
¹º»n¼"½ ¾D F5l ¿ÀX+D T,U7 •0lmn%XY ,ÁR Z[ ±Â5 ÃÄHI :k ¿ÀX+7 •ˆ
$¯¹¹ºnÅÆÇÅÆ XY5 ]± Z[D 6È:¸ T,U7 –“ š ¡mn
ü ¹º»É%•ƒPÊ •ËT,U7 •0
ü "̼¯ÍÉ%•ƒP5 ´`µ? “ÎÏl FÐ
ü #"ѯ"̼¯ÍÉ%•ƒPD ÒÓ² #"ѯ°#ÆÑÔÕ? Ö×HI “ÎÏl FБ ØÙ ¡mn
ü #"ѯ°#ÆÑÔÉ%˜I<‘ GÈl T,U7 Ú£:Û« ÜÝ:¸T •ulmn
<
>
<
>
7#( -.- Þrß・ùúiT・d[€
?=
"#$ %&% '()*+, &-./0 1234567
'(' ]4^ K =+> de7 ,f
ü -.-N 5 lØ SFT•FiL ¬-a• •q, ‚r ƒ25 l^ Áuaž E§a•z •Nh#
O02i†L ¬-a˜
„z FÊ+ JŠa• •eXY
-.-NH…F• ƒ2K^ E§až
†iD Fe• „z^ Ôž
F ™š^ 4‡¥h
…F• ƒ2N ²õLM O0 Fe•w
Îч=e Õ4 ')* ˆ•
5 l `ÜFh#
7#( -.- Þrß・ùúiT・d[€
?<
"#$ %&% '()*+, &-./0 1234567
'(' ]4^ K =+> gh7 ij
ü SFT xš³µêã+´éç·´ë¹»N -.-^ -j ‰§ 2i†³èçº+· ·ë+êµç¹éê ¶>¶·ê-»qr t3az• aN Št•Fh#
ü xšw FÄN ùúiTr ~G Þrß £ 0«L -j+ JŠa^©z SFT^ Ä‚a• •} Í9a1 E§a6 ÕkFh#
ü SFT xšN O¯n PÕr F7*‹h#
îïw O¯nw xš 9U+ 7G &N
+© Z[5 ´`µ? –“:; &Þ5 ´`µR ß,‘
«¸ •· +© Z[HIBU T,U7 ‘àám
#$% 0
12
#P, <
X)YZ
#$% 3
12
#P, <
X[-Z
#$% 4
12
#P, <
X[-Z
ü +©É `IaC ⸠b-cÊ ãä ¤Þ:¸ Z[
ü åIrÉ ¢£ T,U7 ‘P| ¡¸ Z[
7#( -.- Þrß・ùúiT・d[€
?>
"#$ %&% '()*+, &-./0 1234567
'(' ]4^ K =+> gh7 ij
ü Þrß+ h_®˜ Þrßw l^ O¯n• E§¡ U G6 "™L ŒrC O¯n £ aØ+ l^ O¯nF Rh#
ü SFT+ Ä‚®• •} ÉÊËØ .rÇM+ SFT^ d}qe U ¢h#
]-^ )Y #P,+ _`
Þrß "L -j+ JŠ% &N
#$% 0
12
#P, <
#$% 3
12
#P, <
X)YZ
#$% 4
12
#P, <
X[-Z
XabcdZ
e'
ü T,U‘ AB æç¬-4 è*:| V+ é4‘
³ê:më ¢£ ™š7 ^⸠_I ìF
ü íî FÐÊ ï, æç, A-«ë E¬¸ •·
¢£ ™š7 dHI ìF
7#( -.- Þrß・ùúiT・d[€
??
"#$ %&% '()*+, &-./0 1234567
'(' ]4^ – 8kl`mOLS&%LTTU%n
ü ùúiTw hU Þrß £ % þ+ ÉB•úw Ü¡e %h#¸
ü hÓ Þrß)w =Ž^ yDa} Þrß+ ùúiTLM /•N &N 4R ÞrßL ûvaN l^ O¯ne vXY%h#¸
ü '• ÉB•ú Ü¡e aN ÞrßL -j+ Š6˜ hÓ Þrß+ ÉB•ú Ü¡e %h#
7#( -.- Þrß・ùúiT・d[€
?!
"#$ %&% '()*+, &-./0 1234567
'(' ]4^ – =+> oh
ü -.-N ÉÊË+ SFT^ +È+^©z îïw SFTN wš®• •Nh#¸
ü ý%ϸÉÊËØ .rÇM+ SFT wš^ ÿ!¡ Uz Gh#¸
ü sC Þrß'F SFT^ wš¡ U ¢h#¸
ü SFT wšN O0 PÕr F7*•NS F PÕ^ •rg >g‘B³+ë츶êì-ê¹·»•©} «Óh#
ü ÞrßL +ëì#¶êì-ê¹·#'>·ê¶ ýN +ëì#¶êì-ê¹·#-¶ %nL 6F ;ˆ®˜ >g‘B O0F ’“h#
ü >g‘B O0F ’”1 ®N 686• (•ó§–Fh#
7#( -.- Þrß・ùúiT・d[€
?8
"#$ %&% '()*+, &-./0 1234567
'(' ]4^ – 89: p(q de
ü ÉÊË gh• îïF vˆ O¯nqr«T SFT^ +È+M ]la} F O¯nw *V 23JX• +È[N• ÐGa6 Õ
4 s.ue ßi%h#¸
ü ßi% s.u• jjé빶º-êµjëèè¶ê·¶ îïL ¬-%h#
7#( -.- Þrß・ùúiT・d[€
?9
"#$ %&% '()*+, &-./0 1234567
'(' ]4^ – rst+>mOLL%VNS$&L%n
ü ùúiTw hU Þrß £ % þN 3†AFTw Ü¡e U}%h#¸
ü 3†AFTN ÉÊË ghw =Ž^ yDa} O¯ne ÉÊËà —˜®z• XYaN Ü¡e %h#¸
ü ÉÊË+ ÉÊË ghLM /•˜ —˜®• •• O¯ne ˆ= t3aN ÉÊËr ¡Raž ™šGF SFT+ ]l®z• z
Ã{h#¸
ü F›1 O¯ne ÉÊËr v¡RaN øˆe •lœ•i³µê'ç+ç¹é껕©} «Óh#
7#( -.- Þrß・ùúiT・d[€
?:
"#$ %&% '()*+, &-./0 1234567
b.c
ü d[€N -.-w 5oSFT^ `laN SL E§Rh#
$ bin/zookeeper-shell.sh localhost:2181
Connecting to localhost:2181
Welcome to ZooKeeper!
ls /
[admin, brokers, cluster, config, consumers, controller, controller_epoch, isr_change_notification, latest_pro
ducer_id_block, log_dir_event_notification, zookeeper]
get /brokers/ids/0
{"listener_security_protocol_map":{"PLAINTEXT":"PLAINTEXT"},"endpoints":["PLAINTEXT://localhost:9092"],"jmx_po
rt":-1,"port":9092,"host":"localhost","version":4,"timestamp":"1620904358029"}
get /controller
{"version":1,"brokerid":0,"timestamp":"1620904358147"}
ls /brokers/topics
[hello.kafka, hello.kafka.2]
d[€L I„
<
>
<
>
?
!
8
ž¹ë4ê)e ÐG
? -.- ÞrßL þ% ˆ5^ ÐG
*V Þrß+ ÉB•úG•L þ% ˆ5^ +ÈŸh#
!
8 -.-L ¬-R îï)e ÐG
7#( -.- Þrß・ùúiT・d[€
?Q
"#$ %&% '()*+, &-./0 1234567
uvw ?xy
ü îï• -.-LM SFT^ ÁXa6 Õ4 E§aN PÕFh#¸
ü îï• (9 F=w O¯ne ?Äa} ¢h#¸
ü O¯nLN .rÇM+ 5• SFT)F )*+ ¬-®NS F SFT^ •23J³µêéëµ4»•©} «Óh#
12
= <
f8 f8
g< g>
= < > ?
f> f> f? f?
g< g> g< g>
#P, h=
#P, h<
i&j
klm T
klm n
`IaC
ðñò
.rÇM+ 9:% 23JN O¯nL ¬-Rh#
7#! îïø O¯n
?;
"#$ %&% '()*+, &-./0 1234567
uvw ?xy
ü O¯n• -.-w D]lw ¡xqr¢ ghqr ~G ÉÊË)F 23J^ Dr ]l¡ U ¢z• —˜Rh#¸
ü ÉÊËw ]l–F %ˆR =£LM —• 23J^ Dr ]laN +- Ö• ¼×• ÉÊËw 9U^ Sc im0 Z¤aN
ÅFh#¸
ü ÉÊË 9U^ S¥ø t2L O¯n 9U^ Sl˜ ]l–F ¦+aN §ø^ ¨ U ¢h#
O¯n 9UÃ ÉÊË 9U^ ScM ]l–e Sh
12
#P, = 567 0
12
#P, = 567 0
#P, < 567 3
b-c ^™ }~ V+W b-c _™ }~ V+W
7#! îïø O¯n
!=
"#$ %&% '()*+, &-./0 1234567
uv +z h{ |}
îï F*e ŠÎ¡ " š• ©• h,ø ªh#
ü Q ™¿« îï F*• •Ša• •Nh#
ü îï F*• ¬-® aس#» ýN ¬-® ¯³##»r ŠÎ° U Gh#
ü îï F*w ±FN !$²¿ ³'qr ŠÎ®*K %h#
ü îï F*• `* þ?™¿Ã t¿ "«T ² gl} ¬-®³#»Ï M^8³j»Ï aF´³€» µqr ŠÎ¡ U ¢h# F¶w ™¿
«F ·kR îï F*• ŠÎ ¸+ah#
ü -.- ª« rC `l ¹¦qr E§®N !9 îï³jjé빶º-êµjëèè¶ê·¶Ï¸jj·µç¹¶çé·´ë¹j¶·ç·ê»ø t0% F*qr
ŠÎ ¸+Ñah#
ü -.- ª«¦qr E§aN rC "™L îï F*L ¬-®³#»Ã M^8³j»+ t2L )*+˜ Í Rh# ŠÎ• ¡ U ¢•
' E§ 2 FÊ+ JŠ¡ U ¢6 "™L ¬-®³#»Ã M^8³j»+ )*“ îï F*e E§a˜ ºAñ»±»• 52•+ J
Š%h#
ü F³ ŠÎR îï F*w ¬-®³#»^ M^8³j»r 8¼½Ø M^8³j»^ ¬-®³#»r 8¾ &N „… îï F*ø t0ah
˜ ŠÎ¡ U Gh# ¿^ )*Ï ·ë#ã´é F*w îïF ŠÎ®* ¢h˜ ·ëjã´é F*w îïe ŠÎ¡ U Gh#
7#! îïø O¯n
!<
"#$ %&% '()*+, &-./0 1234567
1~ •€ uv +z •‚ ƒ„
îï 3<w †kÀø ¿2
ü Á@&•#Á€<•#ÁjklmFn€<•#Á52•€oF•
¿2»¸ãµ4#-çµæê·´¹ì€·êç-#¶-¶€ã+ç·èëµ-#öë¹
ü Á.rÄB€<•#ÁMÅi€<•#Á@&•#ÁFÆB€<•¸
¿2»¸éë--êµéê#ãç>-ê¹·#ãµ4#¹ë·´è´éç·´ë¹
ü Á@&•#ÁMÅi€<•#ÁDZñA€ZÈ•#Á52•€oF•¸¿2»¸
4ê(#ê-ç´+€¶ê¹4êµ#ôµç€(!7$#ê-ç´+€(ë€éº¶·ë-
ü Á-.-€ùúiT€<•#Á@&•#ÁMÅi€<•#Á52•€oF•¸
¿2»¸çɶ€æçèæç#+´(ê#-çµæê·´¹ì€ã+ç·èëµ-#öë¹
-.-N îï F* ?&e •Ša• •Nh
7#! îïø O¯n
!>
"#$ %&% '()*+, &-./0 1234567
…r†
ü 23JN ošiÊ.ϸ52• [ϸ52• 6ϸs.uqr Áή* ¢h#¸
ü 23JN Uˆ¡ U G} rg lËn 6“ ýN §–L ‚©M' wšRh#
ošiÊ.
ü ˜I< Ö× æó) ƒô, ìF
s.u
52• [ 52• 6
ü ]%,Š5 õ&
ü ,/D /M² ðñò5 ´`µö^%ÕHI •ˆ²mn
ü •ƒP Õ? ÷CøI V+:Û« •ƒP Õ5 ùú7 «ËûÖ k{
•u
ü •ƒP ü5 {ƒÕ? XøI Z[? PF:ý ²mn%þÿ%wAl •
ƒP üªë wA Z[D !-‘¸ ",m
ü •ƒP ü7 •u:P ‚¸më ðñò¸ Ö# ìF Z[$%D Žª
Z[D zK²m
ü ç&GHI V+ T,U‘ !- ¡m
ü •ƒP üÊ •ƒP ÕO ã~9¬- ˜I<I /M¬Ö '(D
wAl )*I •ã~97 š+{, lmn
7#7 23J
!?
"#$ %&% '()*+, &-./0 1234567
(456 ‡#ˆ
ü -.-LM SFT 23–• .rÇMFh#
ü -.-L Ìÿ% SFT^ ÌMa} Þrßw vˆ îïw O¯nL 9:%h#
ü .rÇMN O¯ne +•} ¢N -.- Þrßà CI f„%h#
7#$ -.- ù©FMB
!!
"#$ %&% '()*+, &-./0 1234567
(456 ‡#ˆ
public class SimpleProducer {
private final static Logger logger = LoggerFactory.getLogger(SimpleProducer.class);
private final static String TOPIC_NAME = "test";
private final static String BOOTSTRAP_SERVERS = "my-kafka:9092";
public static void main(String[] args) {
Properties configs = new Properties();
configs.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, BOOTSTRAP_SERVERS);
configs.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName());
configs.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName());
KafkaProducer<String, String> producer = new KafkaProducer<>(configs);
String messageValue = "testMessage";
ProducerRecord<String, String> record = new ProducerRecord<>(TOPIC_NAME, messageValue);
producer.send(record);
logger.info("{}", record);
producer.flush();
producer.close();
}
}
<
>
< `IaC‘ /M:|& :¸ XY
> -`- —y)U C.5 $º°#Ê ….
?
? •ƒP üÿ •ƒP Õ? ã~9:Ö kl ã~9 —/)
!
! •ƒP Õ
! -`- ˜I<I T,U7 ÐûÖ k{ .½º¼01¯½2¯1º½¼7 •ˆ
8 •ˆl .½º¼01¯½2¯1º½¼7 /M:Ö k{ °¯Ì¼7 Â3
°¯Ì¼ov¸ þ4G“ /M, ž5ª KL )*I h-C ˜I<D /Mlmn
9 ǹ0°$ov7 ¤{ `IaC ûB .6D ¡7 ðñò KL7 ˜I<I /Mlmn
8
9
:
: Ô½º¼01¯½ “)8)5 +()!? E/:ý ù9lmn
7#$ -.- ù©FMB
!8
"#$ %&% '()*+, &-./0 1234567
op
#P,
qrst&
.½º¼01¯½2¯1º½¼
klm T
klm n
.ƽ#"#"ºÌ¯½
°¯Ì¼ov
u$ = u$ <
12 8
u$ = u$ <
12 9
8::;<;=>?@A
:¯Ì¼¯½
-`-
—y)U
"$BC DEFGHI
(456 ‰Š ‹Œ
ü îïø 52• 6'e ;ˆaÍh#
ü ¶ê¹4³» 52•+ Èe®˜ *V O¯nqr 9:° ÅG• ˆ4‹h#
ü SFT^ 9:a6 9L *¾Î2FTL SFT^ |€r ÏZL} J:%h#
$%& '()*
+,
-./ 0123
456 78
'(9:; #,2# <=>
?@ '()=/ #,
ABCDEFGHIJDKLMNOGJDJDFCPGQ
01 0 RS*
T U VW
7#$ -.- ù©FMB
!9
"#$ %&% '()*+, &-./0 1234567
(456 bŠ •y
ü 'ëë·¶·µçã#¶êµ(굶ä .rÇM+ SFT^ 9:¡ þ= -.- ùúiTL „% Þrßw ÈiB F*ä·B
ü æê>#¶êµ´ç+´Bêµä¸23Jw 52• [^ CDQaN ùài^ •ˆ
ü (ç+ºê#¶êµ´ç+´Bêµä 23Jw 52• 6e CDQaN ùài^ •ˆ
ü çéæ¶ä¸.rÇM+ 9:% SFT+ Þrß)L ˆ=¦qr ¬-®gN• 9: ÎÐ ž«^ ÐG
ü 'ºèèêµ#-ê-ëµ>ä¸Þrßr 9:¡ SFT^ YÙr q6 Õ4 ;ˆ¡ |€ 5 lÑ# 686 77ÒÒ$$7!³7!ôó»
ü µê·µ´ê¶ä¸.rÇM+ Þrßr«T Lú^ q} Ó ] v9:e 2zaN ÔU^ •ˆ#¸686 !($./7Õ$.
ü 'ç·éâ#¶´Bêä¸YÙr 9:¡ 23J üþ §–# 686 (Õ7/$
ü +´¹ìêµ#-¶ä YÙ^ 9:a6 9X• 6hlN ü? 2“# 686• "
ü ãçµ·´·´ë¹êµ#é+綶ä¸23J^ O¯nL 9:¡ " ¦§aN O¯bc ùài
ü ê¹ç'+ê#´4ê-ãë·ê¹éêä¸Ö×Î .rÇMr t3¡• ž«^ ;ˆ# 686• èç+¶ê
ü ·µç¹¶çé·´ë¹ç+#´4ä¸.rÇM+ 23J^ 9:¡ " 23J^ BØÙn PÕr ~e• ž«^ ;ˆ
ÌU %n
ÌÚ %n
7#$ -.- ù©FMB
!:
"#$ %&% '()*+, &-./0 1234567
Ž•• .‘ <’ =+>‘ ,f“€ (456
public class ProducerWithKeyValue {
private final static Logger logger = LoggerFactory.getLogger(ProducerWithKeyValue.class);
private final static String TOPIC_NAME = "test";
private final static String BOOTSTRAP_SERVERS = "my-kafka:9092";
public static void main(String[] args) {
Properties configs = new Properties();
configs.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, BOOTSTRAP_SERVERS);
configs.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName());
configs.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName());
KafkaProducer<String, String> producer = new KafkaProducer<>(configs);
ProducerRecord<String, String> record = new ProducerRecord<>(TOPIC_NAME, "Pangyo", "23");
producer.send(record);
ProducerRecord<String, String> record = new ProducerRecord<>(TOPIC_NAME, "Busan", "21");
producer.send(record);
producer.flush();
producer.close();
}
}
7#$ -.- ù©FMB
!Q
"#$ %&% '()*+, &-./0 1234567
Ž•• .‘ <’ =+>‘ ,f“€ (456
12
= <
f< f<
g< g>
= < > ?
f> f> f> f>
g< g> g? g!
#P, h=
#P, h<
wAl •ƒP ü¸ wAl Z[D PF¬- GȲm
>
f<
g?
?
f!
g<
!
f!
g>
8
f!
g?
9
f<
g!
7#$ -.- ù©FMB
!;
"#$ %&% '()*+, &-./0 1234567
^a” ?x•–‘ <•€ (456
!"#$%&'&$())'*+,-"&.+/%012")0,3*(+0%0%,4.+'5
!+%6(0.'7%4($')0(0%&'8,99.+'$,99.+':'8,99.+;(&0,+<=9.08,99.+>*+,-"&.+/%012")0,3*(+0%0%,4.+=&$())?@
!+%6(0.'7%4($')0(0%&'A0+%49'BC*D2EFGHI':'J0.)0J@
!+%6(0.'7%4($')0(0%&'A0+%49'KCCBABLG*EAILMILA':'J3<NO(7O(PQRQSJ@
!"#$%&')0(0%&'6,%-'3(%4>A0+%49TU'(+9)?'5
*+,!.+0%.)'&,47%9)':'4.V'*+,!.+0%.)>?@
&,47%9)=!"0>*+,-"&.+2,47%9=KCCBABLG*EAILMILAE2CF;DWX'KCCBABLG*EAILMILA?@
&,47%9)=!"0>*+,-"&.+2,47%9=YIZEAILDG8D[ILE28GAAE2CF;DWX'A0+%49A.+%($%.+=&$())=9.0F(3.>??@
&,47%9)=!"0>*+,-"&.+2,47%9=MG8]IEAILDG8D[ILE28GAAE2CF;DWX'A0+%49A.+%($%.+=&$())=9.0F(3.>??@
&,47%9)=!"0>*+,-"&.+2,47%9=*GLBDBDCFILE28GAAE2CF;DWX'2")0,3*(+0%0%,4.+=&$())?@
Y(7O(*+,-"&.+^A0+%49X'A0+%49_'!+,-"&.+':'4.V'Y(7O(*+,-"&.+^_>&,47%9)?@
*+,-"&.+L.&,+-^A0+%49X'A0+%49_'+.&,+-':'4.V'*+,-"&.+L.&,+-^_>BC*D2EFGHIX'J*(49<,JX'JS`J?@
!+,-"&.+=).4->+.&,+-?@
!+,-"&.+=7$")1>?@
!+,-"&.+=&$,).>?@
a
a
<
<); Z[$% PF
<
7#$ -.- ù©FMB
8=
"#$ %&% '()*+, &-./0 1234567
^a” ?x•–‘ <•€ (456
public class CustomPartitioner implements Partitioner {
@Override
public int partition(String topic, Object key, byte[] keyBytes, Object value, byte[] valueBytes,
Cluster cluster) {
if (keyBytes == null) {
throw new InvalidRecordException("Need message key");
}
if (((String)key).equals("Pangyo"))
return 0;
List<PartitionInfo> partitions = cluster.partitionsForTopic(topic);
int numPartitions = partitions.size();
return Utils.toPositive(Utils.murmur2(keyBytes)) % numPartitions;
}
@Override
public void configure(Map<String, ?> configs) {}
@Override
public void close() {}
}
<
>
< •ƒP ü‘ .ÌÆ»<ºA •· Z[ ]±HI PF
> .ÆÌ»<º‘ ž= •ƒP ü5 ðñò¸ {ƒÕ? PF:; ¥F Z[D >?¬4@ ìF
7#$ -.- ù©FMB
8<
"#$ %&% '()*+, &-./0 1234567
]4^ —˜ ,f ™š‘ ›A“€ (456
public class ProducerWithAsyncCallback {
private final static String TOPIC_NAME = "test";
private final static String BOOTSTRAP_SERVERS = "my-kafka:9092";
public static void main(String[] args) {
Properties configs = new Properties();
configs.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, BOOTSTRAP_SERVERS);
configs.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName());
configs.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName());
KafkaProducer<String, String> producer = new KafkaProducer<>(configs);
ProducerRecord<String, String> record = new ProducerRecord<>(TOPIC_NAME, "Pangyo", "23");
producer.send(record, new ProducerCallback());
producer.flush();
producer.close();
}
}
!"#$%&'&$())'*+,-"&.+2($$#(&O'%3!$.3.40)'2($$#(&O'5
!+%6(0.'7%4($')0(0%&'8,99.+'$,99.+':'8,99.+;(&0,+<=9.08,99.+>*+,-"&.+2($$#(&O=&$())?@
bC6.++%-.
!"#$%&'6,%-',42,3!$.0%,4>L.&,+-H.0(-(0('+.&,+-H.0(-(0(X'Ic&.!0%,4'.?'5
%7'>.'d:'4"$$?
$,99.+=.++,+>.=9.0H.))(9.>?X'.?@
.$).
$,99.+=%47,>+.&,+-H.0(-(0(=0,A0+%49>??@
a
a
< ˜I<5 AB, ´ë .½º¼01¯½Cƹ¹DÆ1Å Â3
<
7#$ -.- ù©FMB
8>
"#$ %&% '()*+, &-./0 1234567
]4^ —˜ ,f ™š‘ ›A“€ (456
Åt6r ‡ø^ qN &N /Ó „zr ]l¡ U ¢•' 9:aN SFTwmM+ £ÿ% &N E§a˜ ÍRh#
ü Åt6r ‡ø^ 6hlN tÍ h,qr 5Û SFTw 9:F ÎÐa} ÜM 5• SFTw ‡ø+ ‚ƒ¡ &N
v9:qr G4 SFT mM+ Ü9° U ¢6 "™Fh#
ü gúÝr SFTw mM+ £ÿah˜ t6r 9: ‡ø^ qZK %h#
7#$ -.- ù©FMB
8?
"#$ %&% '()*+, &-./0 1234567
89: ‡#ˆ
public class SimpleConsumer {
private final static Logger logger = LoggerFactory.getLogger(SimpleConsumer.class);
private final static String TOPIC_NAME = "test";
private final static String BOOTSTRAP_SERVERS = "my-kafka:9092";
private final static String GROUP_ID = "test-group";
public static void main(String[] args) {
Properties configs = new Properties();
configs.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, BOOTSTRAP_SERVERS);
configs.put(ConsumerConfig.GROUP_ID_CONFIG, GROUP_ID);
configs.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class.getName());
configs.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class.getName());
KafkaConsumer<String, String> consumer = new KafkaConsumer<>(configs);
consumer.subscribe(Arrays.asList(TOPIC_NAME));
while (true) {
ConsumerRecords<String, String> records = consumer.poll(Duration.ofSeconds(1));
for (ConsumerRecord<String, String> record : records) {
logger.info("record:{}", record);
}
}
}
}
<
>
?
!
8
9
< XY ,Á? :#½"Ì»HI PF
> XY5 T,U7 ‘àE -`- —y)U5 ….ÿ%Ôº½#7 FG
? b-c HI ,Á? JKlmn b-c HI? ¤{ b-c5 xG? Lz
! `IaC‘ ã~9:; /Ml T,U7 •ã~9:Ö kl —/)7 PF
8 b-cDý XY? M:Ö k{ °0D°1½"D¯ov •Cò7 •u
9 b-c¸ Ôº¹¹ov •Cò7 Â3:; T,U7 ‘àÊC V+lmn
7#$ -.- ù©FMB
8!
"#$ %&% '()*+, &-./0 1234567
89: ‰Š ‹Œ
îïw O¯nqr«T SFT^ +È+6 Õ4 ÉÊË^ _`aN ¼×• D1 !+•+ ¢h#
ü (9 F=w ÉÊËr F7*‹ ÉÊË ghe _`aN Å
ü îïw vˆ O¯n' ÁÞaN ÉÊË^ _`aN Å
7#$ -.- ù©FMB
88
"#$ %&% '()*+, &-./0 1234567
89: ‰Š ‹Œ
#P, =
#P, <
#P, >
12
vwx =
567 JK
b-c ^™I ,N-§ b-c HI, d™5 Z[D M
ü ÉÊË ghqr ~G ÉÊË)• îïw (9 F= O¯n)L ¡R®* SFT^ +ÈW U ¢h#
7#$ -.- ù©FMB
89
"#$ %&% '()*+, &-./0 1234567
89: ‰Š ‹Œ
b-c _™ÿ b-c d™“ •·
ü ÉÊË ghqr ~G ÉÊË+ îïe ÁÞ4M SFT^ +ÈW "Ï (9w O¯n• üþ (9w ÉÊËL ¡R +Ñah#
ü (9 ÉÊËN žú 9w O¯nL ¡R° U ¢h#
ü Fú% vßqr ÉÊË ghw ÉÊË 9UN +È+}¿ aN îïw O¯n 9U5h ª½Ø 3ZK %h#
#P, =
#P, <
#P, >
12
vwx =
567 JK
vwx <
#P, =
#P, <
#P, >
12
vwx =
567 JK
vwx <
vwx >
7#$ -.- ù©FMB
8:
"#$ %&% '()*+, &-./0 1234567
89: ‰Š ‹Œ
b-c ^™‘ O| ¡¸ €P
ü ¿^ )*Ï 79w O¯ne +‹ îïe §ø¦qr ]la6 Õ4MN 79 Faw ÉÊËr F7*‹ ÉÊË ghqr _`
4K %h#
ü '• 79w ÉÊËr F7*‹ ÉÊË ghqr 79w O¯ne +‹ îïLM SFT^ +È+6 Õ4 ¡Ra˜ (9w ÉÊ
ËN O¯ne ¡Rq• àa} Äá =Žr â1 Rh#
#P, =
#P, <
#P, >
12
vwx =
567 JK
vwx <
vwx >
vwx ?
7#$ -.- ù©FMB
8Q
"#$ %&% '()*+, &-./0 1234567
89: œ•1 žŸ
wÖ IãHI Qž‘¸ D,/q 1=+•, b-c HIHI GÈ Iã? z+:; J2
ü ÉÊË gh• hÓ ÉÊË ghø ãl®N vße +•} ¢h#
ü ¿^ )*Ï _` M|w dÿ l?iG ä);ϸ5 l ˆ5^ UVaN SFT OF.©Ge Áå%h} +ˆ
ü ‚2“ l?i^ 2“mqr ÐGa6 Õ4M SFT^ æ©içMÙL ¬-a} FÃ t2L þ§– ¦v^ Õ4 aèL ¦v
¡ ÅFh#
)ys z{
|}s~•$ €e
•‚ €e
+() šR D,/q
|}s~ •$
•‚
)ys z{
&-ĥ
+() šR
D,/q
#P, =
#P, <
#P, >
XY
vwx =
Sª)TCL
b-c HI
vwx =
vwx <
vwx >
:U GÈ
b-c HI
|}s~ •$
•‚
X?Y=/ YZ [  2]^ _`^ ab2>
cd YZ^ e^fT U VW
ghi jk=/ lm=/n
_`o p5qr stu
vwv xyz{
vwv xy
7#$ -.- ù©FMB
8;
"#$ %&% '()*+, &-./0 1234567
89: ϥ1 e
ü ÉÊË ghw ÉÊËL -j+ JŠa˜ *é1 °XY¸
ü ÉÊË ghqr F7*‹ ÉÊË) £ 0« ÉÊËL -j+ JŠa˜Ï¸-j+ JŠ% ÉÊËL ¡RR O¯n• -j+ JŠ
a• •• ÉÊËL ?ÄêF ë*“h#¸
ü Fú% øˆe •lœ•U³µê+ç+ç¹é´¹ì»•F©} «Óh#
b-c 01 ¨• ƒ +VWÏ ¨•
+VWÏO sý X ‘P ŠYDC A-Zmn
^nb-c‘ [‘¬¸ ŠY
_nb-c‘ £¬¸ ŠY
#P, =
#P, <
#P, >
12
vwx =
567 JK
vwx <
vwx >
#P, =
#P, <
#P, >
12
vwx =
567 JK
vwx <
vwx >
7#$ -.- ù©FMB
9=
"#$ %&% '()*+, &-./0 1234567
89: Ÿ¡¢i
ü lœ•U• ħa•' ¿d 0*ØMN Í Rh#¸
ü lœ•UF JŠ¡ " O¯nw ?Äêe ÉÊËr v¡RaN øˆLM 4R ÉÊË ghw ÉÊË)F îïw SFT^ ìe
U G6 "™Fh#¸
ü gh ˆ¿³ìµëºã¸éëëµ4´¹ç·ëµ»N lœ•Ue Jt2[N Ü¡e aNS ÉÊË ghw ÉÊË+ |+®1 wš° " í
•%h#¸
ü -.- Þrß £ % þ+ gh ˆ¿w Ü¡e U}%h#
ü ÉÊËN -.-w Þrßr«T SFT^ *†X• +È[N• ßie f4 6•%h# ³Þrß îïä jjé빶º-êµjëèè¶ê·¶»
b-c¸ V+ @9l ðñò5 ´`µ? <]lm
vwx =
567 JK
3 4 L M N
OPI
12
#$%
LGJJXZ
FGRR23XZ
7#$ -.- ù©FMB
9<
"#$ %&% '()*+, &-./0 1234567
p(q ^£
ü s.u ßi• ÉÊË jklmFnLM <2¦Ï¸Å<2¦qr U}¡ U ¢h#¸
ü Ö# ¾O Ôº¹¹ov%•Cò‘ š+^ ' AF ô_`m ´`µ? <]lmn
ü ,aý AF ô_`m &wHI <]¬¸ "? tbƒG c´`µ <]c,ª
| Bdmn%
ü , ¾O Æ0#ºn1ºÑÑ"#n"Ì#¯½eƹnÑ°D ìF² Õ ,Š, Pf? '
H ƒg¶P hO ðñò7 ´`µ? <]lmn%
ü :Pi Ôº¹¹ov%•Cò Â3 ,j +VWÏ â¸ b-c k£ ù9 ƒ b-
c‘ V+:¸ T,U‘ ³¢ ⸠æç^ š ¡¸ ‘‰ˆ, ¡¸ lml
LÃ7 ‘P| ¡mn
ü bƒG ´`µ? <]:œë Ôº¹¹ov%•Cò Â3 ,jD 1ºÑÑ"#:<Ì1ov%•
Cò7 Â3:ë ²mn%
ü 1ºÑÑ"#:<Ì1ov%•Cò¸ Ôº¹¹ov%•Cò7 ¤{ n”² ðñò5 ‘0 `P
o ´`µ? Ö×HI <]? š+lmn%
ü 1ºÑÑ"#:<Ì1ov%•Cò¸ ˜I<D <] êp? :| <], FŠGHI V
+¬q¸P AB:Ö¶P Öm+¸T ,¸ b-c5 V+WD 23? rsmn%
ü T,U V+ ƒôD t{ <] êp t ABD ƒô, ´/ uvmë wA ƒô
M T,U V+W, w-!Ö '(,mn%
ü ,7 {x:Ö k{ 1ºÑÑ"#y°<Ì1ov%•Cò7 •u:; <] êp? /M:
| AB, ´Ö /¶P T,U V+7 š+ š ¡mn%
ü :Pi twÖ <]O <] êp, çz{? •· |È V+ ³“ T,U5 ÷
C7 Ð0:P ‚H} T,U5 ³¢ V+‘ ¨• š ¡mn
Å<2¦ s.u ßi <2¦ s.u ßi
7#$ -.- ù©FMB
9>
"#$ %&% '()*+, &-./0 1234567
89: ¤š ¥|
ü ÉÊËN ãë++³»¸5MJ^ f4 23J)e =@q•' ãë++³»¸5MJ^ ÈeaN 2–L ùúiTLM SFT^ +ÈsN
Å• Zîh#¸
ü ÉÊË jklmFne ‚}a1 ®˜ ª«LM °ê·éâ굸Giïi+ ŠÎ®* ãë++³»¸5MJ^ Èea6 9L ³l 23J
)e ª« ¾r +ÈŸh#¸
ü F¨L E§¿+ <2¦qr ãë++³»¸5MJ^ Èea˜ ÉÊËN ª« ¾L ¢N 23J)e =@qZ ]l^ U}%h#
b-c ûB LÃ
„K3F4KM
FGRLJK3KN„K3F4KI
…GHIORKM†KFGMNI
LGJJXZ
567 DEFGHI
-`-
—y)U
7#$ -.- ù©FMB
9?
"#$ %&% '()*+, &-./0 1234567
89: bŠ •y
ü 'ëë·¶·µçã#¶êµ(굶ä .rÇM+ SFT^ 9:¡ þ= -.- ùúiTL „% Þrßw ÈiB F*ä·B
ü æê>#4ê¶êµ´ç+´Bêµä¸23Jw 52• [^ ÜCDQaN ùài^ •ˆ
ü (ç+ºê#4ê¶êµ´ç+´Bêµä 23Jw 52• 6e ÜCDQaN ùài^ •ˆ
ü ìµëºã#´4ä¸ÉÊË gh ZF†^ •ˆ%h#¸
ü 纷ë#ëèè¶ê·#µê¶ê·ä¸ÉÊË ghF vˆ O¯ne ìe " ¬-R ÉÊË s.uF GN &N *V s.u«T ìe•
ÌÚaN %nFh#¸F³ ÉÊË s.uF ¢h˜ F %n6• ð2Rh#¸³+綷궷ϸêçµ+´ê¶·Ï¸¹ë¹ê»¸
ü 纷ë#éë--´·#´¹·êµ(ç+#-¶ä¸¿t ßi0 &N s.u ßi “ãe •ˆ%h#¸686• Ò"""³ÒŒ»Fh#
ü -çñ#ãë++#µêéëµ4¶ä¸ãë++³»¸5MJ^ f4 =@®N 23J 9U^ •ˆ%h#¸686• Ò""Fh#
ü ¶ê¶¶´ë¹#·´-ê뺷#-¶ä¸ÉÊË+ Þrßà s‡F ™6N üþ 2“Fh#¸686• (""""³("Œ»Fh#
ü âêçµ·'êç·#´¹·êµ(ç+#-¶ä¸aBÅB^ 9:aN 2“ “ãFh#¸686• 7"""³7Œ»Fh#
ü -çñ#ãë++#´¹·êµ(ç+#-¶ä¸ãë++³»¸5MJ^ ÈeaN “ãw üþ 2“e •ˆ%h#¸686• 7"""""³ÒX»Fh#
ü ´¶ë+ç·´ë¹#+ê(ê+ä¸BØÙn .rÇM+ 23J^ BØÙn PÕr 5Û &N E§%h#¸686• µêç4jº¹éë--´·ê4
ÌU %n
ÌÚ %n
7#$ -.- ù©FMB
9!
"#$ %&% '()*+, &-./0 1234567
89: ¦§ p(q ^£
!"#$%&'&$())'2,4)"3.+/%01A<4&2,33%0'5
!+%6(0.'7%4($')0(0%&'8,99.+'$,99.+':'8,99.+;(&0,+<=9.08,99.+>2,4)"3.+/%01A<4&2,33%0=&$())?@
!+%6(0.'7%4($')0(0%&'A0+%49'BC*D2EFGHI':'J0.)0J@
!+%6(0.'7%4($')0(0%&'A0+%49'KCCBABLG*EAILMILA':'J3<NO(7O(PQRQSJ@
!+%6(0.'7%4($')0(0%&'A0+%49'WLC]*EDe':'J0.)0N9+,"!J@
!"#$%&')0(0%&'6,%-'3(%4>A0+%49TU'(+9)?'5
*+,!.+0%.)'&,47%9)':'4.V'*+,!.+0%.)>?@
&,47%9)=!"0>2,4)"3.+2,47%9=KCCBABLG*EAILMILAE2CF;DWX'KCCBABLG*EAILMILA?@
&,47%9)=!"0>2,4)"3.+2,47%9=WLC]*EDeE2CF;DWX'WLC]*EDe?@
&,47%9)=!"0>2,4)"3.+2,47%9=YIZEeIAILDG8D[ILE28GAAE2CF;DWX'A0+%49e.).+%($%.+=&$())=9.0F(3.>??@
&,47%9)=!"0>2,4)"3.+2,47%9=MG8]IEeIAILDG8D[ILE28GAAE2CF;DWX'A0+%49e.).+%($%.+=&$())=9.0F(3.>??@
&,47%9)=!"0>2,4)"3.+2,47%9=IFGK8IEG]BCE2CHHDBE2CF;DWX'7($).?@
Y(7O(2,4)"3.+^A0+%49X'A0+%49_'&,4)"3.+':'4.V'Y(7O(2,4)"3.+^_>&,47%9)?@
&,4)"3.+=)"#)&+%#.>G++(<)=()8%)0>BC*D2EFGHI??@
V1%$.'>0+".?'5
2,4)"3.+L.&,+-)^A0+%49X'A0+%49_'+.&,+-)':'&,4)"3.+=!,$$>e"+(0%,4=,7A.&,4-)>f??@
7,+'>2,4)"3.+L.&,+-^A0+%49X'A0+%49_'+.&,+-'P'+.&,+-)?'5
$,99.+=%47,>J+.&,+-P5aJX'+.&,+-?@
a
&,4)"3.+=&,33%0A<4&>?@
a
a
a
ü ãë++³»¸5MJ+ ÈeR F¨L éë--´·õ>¹é³» 5MJ^ Èeaž ßie <2¦qr U}¡ U ¢h#
ü Þrßr«T ÉÊË s.u ßiF òÀ®g,e q6X• ÉÊËN SFT^ ^ ]la• •} 6hl6 "™L SFT ]l
–F ¦hN vßF ¢h#
7#$ -.- ù©FMB
98
"#$ %&% '()*+, &-./0 1234567
89: ¨¦§ p(q ^£
public class ConsumerWithASyncCommit {
private final static Logger logger = LoggerFactory.getLogger(ConsumerWithASyncCommit.class);
private final static String TOPIC_NAME = "test";
private final static String BOOTSTRAP_SERVERS = "my-kafka:9092";
private final static String GROUP_ID = "test-group";
public static void main(String[] args) {
Properties configs = new Properties();
configs.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, BOOTSTRAP_SERVERS);
configs.put(ConsumerConfig.GROUP_ID_CONFIG, GROUP_ID);
configs.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class.getName());
configs.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class.getName());
configs.put(ConsumerConfig.ENABLE_AUTO_COMMIT_CONFIG, false);
KafkaConsumer<String, String> consumer = new KafkaConsumer<>(configs);
consumer.subscribe(Arrays.asList(TOPIC_NAME));
while (true) {
ConsumerRecords<String, String> records = consumer.poll(Duration.ofSeconds(1));
for (ConsumerRecord<String, String> record : records) {
logger.info("record:{}", record);
}
consumer.commitAsync(new OffsetCommitCallback() {
public void onComplete(Map<TopicPartition, OffsetAndMetadata> offsets, Exception e) {
if (e != null)
System.err.println("Commit failed");
else
System.out.println("Commit succeeded");
if (e != null)
logger.error("Commit failed for offsets {}", offsets, e);
}
});
}
}
}
7#$ -.- ù©FMB
99
"#$ %&% '()*+, &-./0 1234567
89:1 ©,E ª«
ü ˆ=¦qr óÀ®• •• ÉÊËN >n ošZ¤F JŠ¡ "X• ÉÊË ghL â1 Rh#¸
ü Fr G4 ‚šrN óÀ®g•' ^N t3e a• •N ÉÊË+ ûva6 "™L O¯nw SFTN ? ®• àa} ÉÊ
Ë ôF S*Ø1 Rh#¸
ü ÉÊË ôF S*ؘ SFT ]l •sF JŠa1 Rh#
try {
while (true) {
ConsumerRecords<String, String> records =
consumer.poll(Duration.ofSeconds(1));
for (ConsumerRecord<String, String> record : records) {
logger.info("{}", record);
}
}
} catch (WakeupException e) {
logger.warn("Wakeup consumer");
} finally {
consumer.close();
}
static class ShutdownThread extends Thread {
public void run() {
logger.info("Shutdown hook");
consumer.wakeup();
}
}
7#$ -.- ù©FMB
$%$ 78 34 56
#$%& $
9Q
"#$ %&% '()*+, &-./0 1234567
uvw ?xy
‹îï• -.-w 23ø õFh’
‹-.-^ E§aN Å• îïe ')˜M 23Rh’
‹îïe wša˜ SFTN wš®} OF.©G• £PRh’
‹îïL þ4 ö F4a} ;ˆe öaN ÅF -.-^ f% SFT Ú§z^ ÔFN ±Fh’
$#( îïø O¯n
9;
"#$ %&% '()*+, &-./0 1234567
C— ?xy ‹¬
‹îïw O¯n 9UN -.-w ÎÑø `÷F ¢hÆ
îï ŠÎ 2 O¯n 9U }cEø
ü SFT ]l–
ü 52• [ E§ ž«
ü ÞrßϸÉÊË `‡z
‹O¯n• -.-w D]lw ¡xFh’
O¯nw 9U+ —Z•˜ —ZùU• (ä( —ú®N ÉÊËw 9U+ S*Ø6 "™Fh#
$#( îïø O¯n
:=
"#$ %&% '()*+, &-./0 1234567
C— ?xy ‹¬
SFT ]l „z^ ûlN ¼×• !+•h#¸
(# ÉÊËw ]l–e SlN Å
€ M|w EÑe ûlN im0 ü
€ ìé ýþ
!# ÉÊË^ |+4M D]l–e SlN Å
€ SFT ]l–e SlN +- Ђ% ¼×Fh#
€ .rÇM+ 5ªN SFT+ ŒR (Ï"""23JF} ÉÊË+ ]l¡ U ¢N SFT+ ŒR (""23J©˜
ü?% Ìÿ% O¯n 9UN ("9Fh#
`IaC
/M T,UW
b-c
T,U V+W
Z[ ™š
. ñ
QR 567 SH/ TFUH "$BCV WXY SH/WZ [Z 567 ]H ^_`abSH/ TF cdH e^fZg
!"! 567h iej k Xl $mn `opq rs tuvh wH_ xy Zzf {|n pY }v ~Zg
$#( îïø O¯n
:<
"#$ %&% '()*+, &-./0 1234567
Ž•• . -®• ¯°-±
ü 52• [^ E§kø t2L SFT ]l mM^ •ÿK aN &NL þ4 }c4K %h#¸
ü 52• [ E§ ž«N SFT ]l mMÃ !I% s`F ¢h#¸
ü .rÇM+ 68 O¯bc^ E§aN &N^ +ˆa¿#¸
ü 52• [^ E§a˜ .rÇM+ îïqr SFT^ 5Û " 52• [^ 42 ?@až 52• [^ O¯nL —˜2"h#
ü '• O¯n 9U+ o©•˜ F³ —˜R O¯nø 52• [w —˜F #•} 9$ hÓ O¯nL SFT+ ¡RRh#
Z[ ™š‘ ~ªPÖ ,/R ,j •ƒP üÊ Z[5 >? ’9n%Z[, _™A ' •ƒP ü °¯º0¹O ]±ÿ%•¯•0¸ ^± Z[
HI M¬qmn%Z[, d™A '¸ °¯º0¹ÿ%•¯•0 X ™5 •ƒP ü €X _± Z[HI M¬qmn
-`- —y)U
#P, =
#P, <
XY
&-ĥ
!"#$%&'()*+,
!"-$-&()*.,
-`- —y)U
#P, =
#P, <
XY
&-ĥ
!"#$%&'()*+,
!"-$-&()*., #P, >
$#( îïø O¯n
:>
"#$ %&% '()*+, &-./0 1234567
Ž•• . -®• ¯°-±
ü 52• [^ E§a} ÉÊËLM 52• ]l mM+ 5-®*K %h˜ üþ% O¯nw ?Q+ JŠa• •N ¼‡qr _
`4K %h#¸
ü 52• [%r ]l mM^ 5-a6 Õ4MN O¯n 9U^ .rÇM+ 9:aN SFTÑ5h ^ &&a1 y} ŠÎaN
ÅF Öh#
ü ¬•'qr }c4K ¡ –• Þrßà ÉÊËw `‡zFh#¸
ü -.-LM O¯n• œ Þrßw O0 2i†e E§a6 "™L O¯nF S*ØN '( ÞrßLM I)aN O0 9U+
—Z‹h#¸
ü g•S _`yšLMN .r>iR « U ¢N O0 üþ 9U^ š%a} ¢h#¸
ü gúÝr -.- Þrß+ I)aN O0 9U^ ͈¦qr Ä•a6 Õ4MN œ ÞrßR O¯n 9U^ îTI4K %h#
$#( îïø O¯n
:?
"#$ %&% '()*+, &-./0 1234567
uv —Ÿ —²mOTU$SWMQMLTNO³n
ü îïw SFTN 2“ ýN §–L ‚© wš …*e ¦§¡ U ¢h#¸SFT^ sàtÍ wša• •q˜ ¬-? E§–F •
„¦qr S*Ø1 Rh#
ü é+ê繺ã#ãë+´é> %ne E§až SFT^ wš¡ U ¢N !+• wš ˆ+e šÐ%h#
ü 4ê+ê·ê³wš»ä¸SFTw ò9 wš
ü éë-ãçé·³,å»ä¸t0 52• [w +- sàR SFT^ wšaN Å
$#( îïø O¯n
:!
"#$ %&% '()*+, &-./0 1234567
uv oh —²mVUTU&UMLTNO³n
ü îïe _`a˜ 0=¦qr þ«Xw îïw é+ê繺ã#ãë+´é>^ 4ê+ê·êr ;ˆ%h#¸
ü îïw SFT^ wš¡ "N >g‘B PÕr wš^ ‹}ah#¸
ü >g‘BN îïw SFT^ ¬-aN <2¦G O0 2i† PÕFh#¸
ü >g‘BN O¯n¬h %9r ŠÎ®, >g‘Bw O0 F*• s.u £ +- 3• 6F Rh#¸
ü >g‘BN žú Âœqr Ø-NS ¶êì-ê¹·#'>·ê¶ %nqr (9w >g‘B D6^ ;ˆ¡ U ¢h#¸
ü ¶êì-ê¹·#'>·ê¶ D65h ßù &N 6ûL ¦va_ >g‘B O0e ’} Tr_ >g‘B^ «*M SFT^ ¬-%h#
ü SFT^ ¬-a6 Õ4 E§ £G >g‘B^ .¯Þ >g‘B©} %h#
$#( îïø O¯n
:8
"#$ %&% '()*+, &-./0 1234567
uv oh —²mVUTU&UMLTNO³n
ü wš ˆ+F ‚}®N 2–• 2“ ýN §–F 6{F Rh#¸
ü µê·ê¹·´ë¹#-¶N îïw SFT^ Ä•aN 6“e !lŒr ;ˆ¡ U ¢h#¸
ü -.-N 0ˆ d6¬h >g‘B O0w ¬•' Uˆ 2“ø µê·ê¹·´ë¹#-¶^ Å/aNSϸ>g‘B O0w ¬•' Uˆ
2“F µê·ê¹·´ë¹#-¶^ ë*+˜ >g‘BN wšRh#¸
ü µê·ê¹·´ë¹#'>·ê¶N îïw üþ SFT D6^ š*%h#¸
ü µê·ê¹·´ë¹#'>·ê¶^ ë*“ >g‘B O0)• wšRh#¸
ü wšR SFTN xÁ¡ U Gh#
-`- —y)U
XY
Z[
= <
#$%&' -$-&
>= <>
]]n¹º»
= <
#$%&' -$-&
>= <>
=
#$%&'
>=
]_n¹º» ]en¹º»
i&j
klm T
klm n
€[˜
•H‚q
$#( îïø O¯n
:9
"#$ %&% '()*+, &-./0 1234567
uv ´µ —²mOLXM$O&MLTNO³n
ü ,å ˆ+• .¯Þ >g‘B^ š¶% ØË• >g‘B)L %4M SFT^ ]l%h#¸
ü SFTw ,å 23 2–• -´¹#é+êç¹ç'+ê#4´µ·>#µç·´ë %n6e ‚Óh#¸
ü -´¹#é+êç¹ç'+ê#4´µ·>#µç·´ë %n6• .¯Þ >g‘B^ š¶% >g‘BL âZ ¢N SFTw ö0 `Üw 23J 9
UÃ 0J `Üw 23J 9Uw Å1e 2%h#¸
ü ö0 `Ü• Þrßw ,å ˆ+L w4 ,åF òÀR 23J^ 2%h#¸
ü ö0 `Üw 23J)• •ù³é+êç¹»¸rg•©} «0} ,åF òÀ36 "™L ö0 `ÜLN £xR 52• [+ Gh#
ü 0J `Üw 23J)• •^¯³4´µ·>»¸rg•©} «0} ,åF ®6 9 23J^F ¢qÝr £xR 52• [^ +‹ 23
J)F ¢h#
XY ÜÝD Žd T,U5 ’9n%‘0 8ƒ5
•ƒP ü ðñòi „Ö| «cP¸ Ú£lmn
= < > ? ! 8 9
f< f> f? f? f< f> f<
g< g< g< g< g> g> g?
•€ •
OPI
i&j
klm T
klm n
? 8 9
f? f> f<
g> g> g<
•€ H‚
OPI
i&j
klm T
klm n
$#( îïø O¯n
::
"#$ %&% '()*+, &-./0 1234567
uv ´µ —²mOLXM$O&MLTNO³n
ü •^¯ Å1³4´µ·>¸µç·´ë»•• ^¯ `Üw 52• 9U^ ,å þ= >g‘BL âZ¢N SFTw 4 23J U³^¯ `Ü
52• 9U 5¸ù `Ü 52• 9U»r Ø6 Å1e 2%h#¸
ü '• ù7 `ÜL 79w 23J+ ¢} ^¯ `ÜL 23J+ 79 ¢h˜ ^¯ Å1• "#ÒFh#
ü îïw ,å• -´¹#é+êç¹ç'+ê#4´µ·>#µç·´ë6L ‚© U}Rh#¸
ü '• -´¹#é+êç¹ç'+ê#4´µ·>#µç·´ë %n6e "#Òr ;ˆ¡ &NL ^¯ Å1F "#Ò+ ë*+, ,åF U}Rh#¸
ü -´¹#é+êç¹ç'+ê#4´µ·>#µç·´ë6e "#²Ã ªF D1 ;ˆa˜ %Z ,åe ¡ " —• SFT+ 8*)Ýr ,å §ø+
Dh#¸
ü -´¹#é+êç¹ç'+ê#4´µ·>#µç·´ë^ "#(ø ªF 31 ;ˆa˜ ,åF ^ ¿d 0*Ø6 "™L 9„4M 52• [w ü„
SFT' Ä•¡ U ¢h#¸
ü a•' ,åF ¿d JŠaN '( ÞrßL «:e 8 U ¢h#
…Aÿ%†ò 2•5 ðñò7 ‡ƒl Z[
= < > ? ! 8 9
f< f> f? f? f< f> f<
g< g< g< g< g> g> g?
OPI
i&j
klm T
klm n
†ò 2•
…A 2• €[˜ •H‚q
$#( îïø O¯n
:Q
"#$ %&% '()*+, &-./0 1234567
ˆ¶·mˆSK¶³SOK·UMTNO$Pn
ü ±õñ• l^ O¯nø ŒrC O¯nF L UD+ R =Ž^ 2%h#¸
ü xš 9U+ !G îïe +ˆ45¿#¸
ü F îïLN l^ O¯n (9Ã ŒrC O¯nF (9+ ûv¡ ÅFh#¸
ü l^ O¯nL "«T 7w s.uF ¢h} +ˆ¡ "ϸŒrC O¯nL t6Q+ òÀ®c˜ "«T 7X• s.uF ûv4K
%h#¸
ü l^ O¯nø ŒrC O¯nF t6QR =ŽLMN l^ ýN ŒrC O¯nF ÕÙaN ÞrßL -j+ JŠa^©z SF
T^ Í9a1 E§¡ U ¢h#
…:2O +© Z[R åIr Z[5 ´`µ, wAl Š*7 ˆlmn
XY
?
>
+© Z[
<
=
˜I< ‰]
XY
?
>
åIr Z[
<
=
˜I< ‰^
…:2
o…ÌŠ:<Ì1Š2¯Ô¹"1Æ°v
$#( îïø O¯n
:;
"#$ %&% '()*+, &-./0 1234567
ˆ¶·mˆSK¶³SOK·UMTNO$Pn
ü ±õñ• l^ O¯nø ŒrC O¯nF L UD+ R =Ž^ 2%h#¸
ü ±õñF©N §*+ ØŸ FÄN ŒrC O¯nF l^ O¯nqr«T SFT^ xšaN SL 2“F ;l6 "™Fh#¸
ü .rÇM+ vˆ O¯nL SFT^ ¬-aN 3ü• l^ O¯ne f4 ]l%h#¸
ü F" l^ O¯nL Tr_ 23J+ |+®* s.uF ¦+a˜ ŒrC O¯nF ÕÙN ÞrßN l^ O¯nw SFT^
xš%h#¸
ü l^ O¯nL SFT+ ¦vR F¨ ŒrC O¯nF xšaN 2“< "™L l^ O¯nø ŒrC O¯n “L s.u <F
+ JŠ%h#¸
ü F• <F^ îTIa6 Õ4 l^ O¯n• µêã+´éç#+çìÏ·´-ê#-çñ#-¶6'(w d6^ +•} ŒrC O¯nF SF
T^ xšaN• ÐG%h#¸
ü '• ŒrC O¯nF µêã+´éç#+çìÏ·´-ê#-çñ#-¶65h ^ = 2“ tÍ SFT^ +È+• •Nh˜ 4R ŒrC O¯
nL ™š+ Š= Åqr >Pa} ±õñghLM š¶%h#
åIr Z[, kLl ˜I<¸ +© Z[5 T,U7 ¢£lmn
XY
+© Z[
˜I< ‰]
`IaC
XY
åIr Z[
˜I< ‰^
`IaC
$#( îïø O¯n
Q=
"#$ %&% '()*+, &-./0 1234567
ˆ¶·mˆSK¶³SOK·UMTNO$Pn
ü ±õñr ~G l^ O¯nø ŒrC O¯n• O¯nL ûvaN SFT+ L t0a6 "™L ŒrC O¯n• l^ O¯n
qr Tr Ìe° ¿ãe +‹h#
ü 0« SFT Ä‚F JŠa^©z MÅi^ £Pa• •} •„¦qr îïe E§a} Hh˜ ±õñF ZE ŒrC O¯ne
l^r Ìeaz• ;ˆ¡ U ¢h#
ü º¹é+êç¹#µêç4êµ#ê+êé·´ë¹#ê¹ç'+ê %ne èç+¶êr ;ˆ¡ &N ±õñF ZE ŒrC O¯ne l^ O¯nqr Ìea
• •Nh#¸
ü F &NLN l^ O¯nF ûvaN Þrß+ h2 23° "X• 6hh#¸
ü FÅ• îïe E§aN MÅi+ £P?e 2%h#¸
ü -j+ JŠ% Þrß+ h2 ‚}° "X•N 4R îï• E§¡ U Gh#¸
ü þ„ SFTw Ä‚• JŠa• •Nh#
0Ì1¹¯ÆÌn½¯Æ¼¯½n¯¹¯1#"ºÌn¯ÌÆD¹¯, Çƹ°¯“ •·D¸ +©I
J3 åIr Z[, ‹HŒI +© Z[, ¡¸ ˜I<‘ mƒ
ç+^ '¶P Ömvmn
XY
?
>
+© Z[
<
=
˜I< ‰]
XY
>
åIr Z[
<
=
˜I< ‰^
…:2
$#( îïø O¯n
Q<
"#$ %&% '()*+, &-./0 1234567
ˆ¶·mˆSK¶³SOK·UMTNO$Pn
ü º¹é+êç¹#µêç4êµ#ê+êé·´ë¹#ê¹ç'+êe ·µºêr ;ˆaN &NLN ±õñF ZE ŒrC O¯nϸ@ t6Q+ ®• ••
ŒrC O¯nz l^r Ìe° U ¢h#¸
ü l^ O¯nF ûvaN ÞrßLM -j+ JŠa} t6Q®• •• ŒrC O¯nF l^r Ìe®˜ l^ O¯nqr«T
t6Q+ ®• •• 0« SFTN Ä‚° U ¢h#¸
ü 0« SFT+ Ä‚®N þ„ îïe E§aN MÅiw £P• JŠa• •Nh#
0Ì1¹¯ÆÌn½¯Æ¼¯½n¯¹¯1#"ºÌn¯ÌÆD¹¯, #½0¯“ •·D¸ …:2, ž= åIr Z[
4 +©I J3^ š ¡mn%01‘ ¨•l ˜I< ‰]5 ´`µ d5 ðñò¸ æç²mn
$#( îïø O¯n
Q>
"#$ %&% '()*+, &-./0 1234567
'(' (456
ü .rÇMN -.-L SFT^ ¬-aN A P9Fh#
ü -.- ùúiTN 7þ F=w Þrßr F7*È ¢*M 0« ÞrßL FÊ+ Š6^©z SFTw Ä‚e 'e U ¢h#
$#! -.- .rÇM
Q?
"#$ %&% '()*+, &-./0 1234567
$OIP •y
çéæ¶B"
ü çéæ¶^ "qr ;ˆaN Å• .rÇM+ l^ O¯nqr SFT^ 9:¥e " l^ O¯nqr SFT+ ¬-®gN• Ð
Ga• •NhN 2Fh#¸
ü l^ O¯n• SFT+ ¬-R F¨L SFT+ C ZD s.uL ¬-®gN• lïaNSϸçéæ¶+ "qr ;ˆ®* ¢h˜
.rÇMN l^ O¯nL SFT+ ¬-®gN• ž«L þ% EF 6e q• •Nh#¸
ü g›6 "™L .rÇM+ SFT^ 5• F¨L F SFT+ C ZD s.uL ¬-®gN• ÐG¡ U Gh#
Æ1Å°•]“ •· `IaC5 wŽÿ%+© Z[D T,U‘
GȬP ‚©ª4 ˆ•HI •jlmn
ü `IaCD¸ T,U5 /M, çz{? ' ȃ47 š ¡4@ ½¯#½"¯°%¾?
ìF š ¡¸Tÿ%Æ1Å°‘ ]A ' `IaC¸ /M? :& `& •0¬qi? ‘
F:| mi T,U7 /M:Ö '(D T,U /M, çzl •·7 ‘ š ‹mn%
ü ŽªC ½¯#½"¯°‘ _,ŠHI ìF¬- ¡©ª4 ȃ47 :P ‚Ö '(D ½¯#½"
¯°%¾ÕO è5’:mn
ü Æ1Å°7 ]HI ìF{? •·ÿ%`IaCÊ ˜I< •,5 pqrs ´ú« ˜I<
5 ,- “HI “{ T,U‘ æ笩ª4 `IaC¸ +© Z[HIBU AB
Õ? ”P ‚Ö '(D PéGHI mi T,UI Еmn%
ü HaÖ '(D T,U5 /M é4¸ Æ1Å°7 ^%⸠ƹ¹I {? •·Ðm –— ˜
™mn%T,U‘ AB æç, ¨•:©ª4 /M é4‘ ³êl •·D¸ , ¾Õ
? •u:ë šmn
XY
+© Z[
˜I< ‰]
`IaC
XY
åIr Z[
˜I< ‰^
$#! -.- .rÇM
Q!
"#$ %&% '()*+, &-./0 1234567
$OIP •y
çéæ¶B(
ü çéæ¶^ (r ;ˆ¡ &N .rÇMN 5• SFT+ l^ O¯nL' ˆ=¦qr ¦v®gN• ÐG%h#¸
ü '• l^ O¯nL ˆ=¦qr ¦v®• •‘h˜ l^ O¯nL ¦v° "X• v2z¡ U ¢h#¸
ü gúØ l^ O¯nL ¦v®g,e 5-a^©z SFTN Ä‚° U ¢h#¸
ü GHa˜ xš 9U^ !F=qr _`¡ &N l^ O¯nL ¦v+ òÀ®* ¢*z ŒrC O¯nLN ZC SFT+ t6
Q®• •e U ¢NSϸŒrC O¯nF SFT^ xša6 C9L l^ O¯nF ¢N ÞrßL -j+ JŠa˜ t6Q®•
à% 0« SFT+ Ä‚° U ¢6 "™Fh#
Æ1Å°•^“ •· `IaC5 wŽÿ%+© Z[D T,U‘
•0¬qHë ˆ•HI •jlmn
ü Æ1Å°7 ^I ìF:ë +© Z[D T,U‘ GÈ^ '¶P Ömv › AB Õ?
”Ö '(D Æ1Å°7 ]HI ìF:¸ "D t{ /M é4‘ œ+mn
XY
+© Z[
˜I< ‰]
`IaC
XY
åIr Z[
˜I< ‰^
$#! -.- .rÇM
Q8
"#$ %&% '()*+, &-./0 1234567
$OIP •y
çéæ¶Bç++¸ýN çéæ¶B€(
ü çéæ¶^ ç++¸ýN €(r ;ˆ¡ &N .rÇMN 5• SFT+ l^ O¯nø ŒrC O¯nL L ˆ=¦qr ¦v®gN
• ÐG%h#¸
ü l^ O¯nI' Zî© ŒrC O¯nX• SFT+ ¦v®gN• ÐGa6 "™L "ýN (¸%n5hz „z+ Vlh#¸
ü gJLz ¸Áa} ŒrC O¯nL SFT+ ˆ= ¦v®gN• 6hl6 "™L 0« ÞrßL -j+ JŠa^©z .rÇ
MN Í9a1 SFT^ 9:a} ¬-¡ U ¢,e 5-¡ U ¢h#
ü Æ1Å°7 ƹ¹I ìF •· XY jkI ìF ‘‰l Ñ"Ìn"Ì°<Ì1n½¯Ô¹"1Æ° ¾
ÕD Žª T,U5 EFˆ, ~ª§mn%
ü ƹ¹%¾ÕO €• +© Z[R åIr Z[5 GÈ7 ˆ:¸ "O ž5| …:2
D ÒÓ² Z[!? ˆ:¸ ",Ö '(,mn%
ü Ñ"Ìn"Ì°<Ì1n½¯Ô¹"1Æ° ¾O `IaC‘ +© Z[R åIr Z[D T,
U‘ GȬq¸P –“:Ö kl 8( …:2%HI5 Z[ ™š,mn%
ü ž7 !ë Ñ"Ìn"Ì°<Ì1n½¯Ô¹"1Æ°5 ¾Õ, ^,ªë …:2%³ 8( ^™ ,Š5
Z[D T,U‘ GȬqi? –“:¸ ",mn%
ü , •· Æ1Å°7 ^I {? 'Ê wAl wŽ? :¸Tÿ%Ÿ :ë …:2%³ ‘0 V
i GÈ‘ @9¬¸ Z[O +© Z[,Ö '(,mn
Æ1Å°•Æ¹¹“ •· `IaC5 wŽ
XY
+© Z[
˜I< ‰]
`IaC
XY
åIr Z[
˜I< ‰^
$#! -.- .rÇM
Q9
"#$ %&% '()*+, &-./0 1234567
$OIP •y
çéæ¶Bç++¸ýN çéæ¶B€(
ü Ñ"Ìn"Ì°<Ì1n½¯Ô¹"1Æ°5 ¾Õ? _I ìF{? 'BU Æ1Å°7 ƹ¹I ìF:¸ 5
’‘ ¡mn%
ü , •· …:25 _™ ,Š5 Z[D T,U‘ FŠ GȬqi? –“lm¸ ˆ,mn%
ü …:25 _™ ,Š5 Z[D GȬqi? –“lm¸ ˆO G-4 +© Z[R ^™
5 åIr Z[D T,U‘ FŠGHI GȬqi? Ð0lmn
Æ1Å°•Æ¹¹ÿ%Ñ"Ìn"Ì°<Ì1n½¯Ô¹"1Æ°•^“ •· `IaC5 w
Žn%Æ1Å°7 ^I {? 'Ê wA:mn
XY
+© Z[
˜I< ‰]
`IaC
XY
åIr Z[
˜I< ‰^
…:2
$#! -.- .rÇM
Q:
"#$ %&% '()*+, &-./0 1234567
$OIP •y
ü -´¹#´¹¶>¹é#µêã+´éç¶^ ;ˆ¡ "N xš 9Uz kl }c4K %h#¸
ü GHa˜ _`aN -.-w Þrß 9U+ -´¹#´¹¶>¹é#µêã+´éç¶w %n65h 3• &NLN .rÇMN ^N SFT^
9:¡ U G6 "™Fh#¸
ü xš 9U^ 7qr ;ˆa} -´¹#´¹¶>¹é#µêã+´éç¶^ 7qr ;ˆaN &N^ ¿r ) U ¢h#¸
ü Þrß 7þ £ (þL FÊ+ JŠaž t3a• àaN =£F Š6˜ .rÇMN SFT^ 4R îïL ^N 9:¡ U Gh#
ü GHa˜ ü?%w xš®*K aN O¯n 9U+ 7GS ŒrC O¯nF ÕÙ¡ Þrßw 9U+ «Ka6 "™Fh#¸
ü F &NLN »ë·L¹ëºìâñêã+´éç¶Lñéêã·´ë¹ ýN »ë·L¹ëºìâñêã+´éç¶Aè·êµAããê¹4Lñéêã·´ë¹F JŠaž
^N îïqr SFo^ 9:¡ U Gh#
ü -´¹#´¹¶>¹é#µêã+´éç¶ %ne ;ˆ¡ " |+r dw4K ¡ –• Mþr Þrß 9Uà t0% t¿r ;ˆa˜ Í Rh
N ÅFh#¸
ü Þrß 7þr ùúiT^ _`a˜M -´¹#´¹¶>¹é¶#µêã+´éç¶ %ne 7qr ;ˆaN &N^ ¿r ) U ¢h#¸
ü F• =£LM -.- ùúiTw |9 üg2FJà ª• =£F JŠa˜ ÷rßN •I h_ ošF Š6NSϸÞrß+ (
9©z £P®˜ .rÇMN SFT^ |+¡ U Gh#¸
ü gúÝr îï% -´¹#´¹¶>¹é#µêã+´éç¶ %n6• Þrß 9U ³'qr ;ˆ4M _`4K %h#
$#! -.- .rÇM
QQ
"#$ %&% '()*+, &-./0 1234567
$OIP •y
ü =§@&LMN 0=¦qr Þrß^ 7þ F=qr ~* ùúiT^ _`aNSϸF –e }caž .rÇM+ SFT^ +-
͈¦qr 5ªc˜ îïw xš 9UN 7ϸ-´¹#´¹¶>¹é#µêã+´éç¶^ !r ;ˆa} .rÇMN çéæ¶^ ç++r ;ˆaN
Åe |N%h#
Æ1Å°•Æ¹¹ÿ%½¯Ô¹"1Æ#"ºÌnÇÆ1#º½•dÿ%Ñ"Ìn"Ì°<Ì1n½¯Ô¹"1Æ°•d“ •· ˜I< ³
^ø‘ |0«ë ©¸ XYD T,U7 С š ‹mn
XY
+© Z[
˜I< ‰]
`IaC
XY
åIr Z[
˜I< ‰^
…:2
XY
åIr Z[
˜I< ‰_
$#! -.- .rÇM
Q;
"#$ %&% '()*+, &-./0 1234567
¸¹º (456
ü Ö×ÎFð žú Z sze U}a^©z t0% ‡ø^ ØoªN Åe 2%h#¸
ü Fú% w³LM Ö×Î .rÇMN t0% SFT^ žú Z 9:a^©z -.- ùúiTL P % Z' ¬-?e w³%h#
ü 68 .rÇMw t3 ¼½• ¦*z %Z 9o³ç·¸+ê綷¸ë¹éê¸4ê+´(êµ>»e •Š%h#¸
ü ¦*z %Z 9oFð .rÇM+ ùúiTL SFT^ 9:až ¬-¡ " ¦*z % Z F= SFT^ ¦v¡ U ¢} SF
T+ Ä‚®• •,e 2%h#¸
ü h'ϸL Z F= ¦v¡ +ÑÎF ¢qÝr SFTw £xF JŠ¡ U ¢h#
ü .rÇM+ 5ªN SFTw £x ¦v^ '6 Õ4 "#((#"¸F¨ |9«TN .rÇMLM ê¹ç'+ê#´4ê-ãë·ê¹éê%ne
E§až ˆÐ” %Z 9o³êñçé·+>¸ë¹éê¸4ê+´(êµ>»e •Š%h#¸
ü ê¹ç'+ê#´4ê-ãë·ê¹éê%nw 686• èç+¶êF, ˆÐ” %Z 9oe Õ4MN ·µºêr %n6e ;ˆ4M Ö×Î .r
ÇMr t3az• ')˜ Rh#¸
ü Ö×Î .rÇMN 68 .rÇMà ol SFT^ Þrßr 9o¡ " .rÇM )±ò³)µë4ºé굸º¹´íºê¸±ò»Ã 2Oi ë
|^ kl 9o%h#¸
ü gú˜ ÞrßN .rÇMw )±òÃ 2Oi ë|^ ÐGaž t0% 52•w ¦v ÿ!F s^©z P % Z' SFT^ ¦
vkqr¢ .rÇMw SFTN ˆÐ” %Z ÞrßL ¦v®z• t3%h#
$#! -.- .rÇM
;=
"#$ %&% '()*+, &-./0 1234567
¸¹º (456
`IaCÊ ˜I< •,5 pqrs 01I T,U¸ l ± ,Š /~^ š ¡mn ¢“ˆ `IaCI wŽ •· pqrs 01‘ ¨•:©ª4 ˜I<D wAl
•ƒP¸ GÈ:P ‚¸mn%¢“ˆ `IaC‘ /M:¸ T,UD .…£Ê ƒ¤)
¥.‘ ¡¸Tÿ%˜I<¸ .…£Ê ƒ¤) ¥.I ³¢? ¦s:Ö '(,mn
jÿ%¢“ˆ `IaC¸ wAl •DCi F–§ l± /~? Ð0lmn%;ÖC ¨:¸ wAl •,© .…£5 •bªÖ7 ˆlmn%im ¢“ˆ `IaCI w
Ž:¸ `IaC 1=+•,D ,-‘ ¨•:; ù9¬| 1=+•,? ȃŽ:ë .…£‘ ~ª§mn
`IaC Z[
«^ ˜I<
°¯Ì¼ov
`IaC Z[
«^ ˜I<
Æ1Å°
`IaC Z[
«^ «^ ˜I<
°¯Ì¼ov
`IaC Z[
«^ ˜I<
Æ1Å°
«^
`IaC Z[
«^o°¯¬•]v ˜I<
°¯Ì¼ov
`IaC Z[
«^o°¯¬•]v ˜I<
Æ1Å°
`IaC Z[
«^o°¯¬•]v ˜I<
°¯Ì¼ov
`IaC Z[
«^o°¯¬•]v ˜I<
Æ1Å°
$#! -.- .rÇM
;<
"#$ %&% '()*+, &-./0 1234567
'(' 89: – »x a…† 89:
ü -.-N ]l–e Sl6 Õ4 O¯nø ÉÊË 9U^ ScM _`¡ U ¢h#¸
ü O¯ne žú 9r _`aN &N SFT^ D]la6 Õ4M O¯n 9UÃ ÉÊË 9U^ t0a1 P|N ÅF +- Ö
• ¼×Fh#¸
ü îïw O¯n• (9 F=qr F7*È ¢q, (9w O¯n• (9 ÉÊË+ ¡R®* SFT^ ]l¡ U ¢h#¸
ü O¯n 9U+ ¹9©˜ t0 ÉÊË ghqr ~G ÉÊË i2J^ üþ ¹9 _`¡ U ¢h#¸
ü gúÝr ¹9w i2J^ +‹ (9w .r>i^ _`a½Ø (9w i2J^ +‹ .r>M^ ¹9 _`aN ¼×z ¢h#
d™5 `I•CI wŽ:¸ b-c HI yÿ%^™ `I•)Ê d™ )ðòI wŽ:¸ b-c HI
ü b-c7 -[ )ðòI ®u:¸ ¯°O sý X ‘PI «±mn
ü ² ±³¸ b-c )ðò¸ ^™i ç+:| T,U7 V+7 ØM:¸ r
s )ðò7 ;y ™ ç+:¸ ¯´“ -[ rs )ðò /µ,mn%
ü X ±³¸ b-c “)8)DC Ôº¹¹ov%•Cò7 Â3:¸ )ðò7 ;y
™ ¶rC •u:¸ b-c -[ )ðò /µ,m.
XY
Z[ ]
Z[ ^
Z[ _
b-c )ðò ]
`I•)
b-c )ðò ^
`I•)
b-c )ðò _
`I•)
b-c HI y
b-c )ðò ]
`I•)
b-c HI ·
b-c )ðò ^
b-c )ðò _
$#7 -.- ÉÊË
;>
"#$ %&% '()*+, &-./0 1234567
'(' 89: »x ¼j a…† ,½
ü Þrßr«T 9oq• 23J)e Dr ]l%h˜ (9w ÉÊË i2Jr q• SFT)e ^Q ‡=R „zr ]l¡ U
¢h#¸
ü R¯ i2J^ E§a˜ œ6 hÓ 23J)w SFT ]l^ t2L ‚}¡ U ¢6 "™L ]l 2“e u¬” 80 U ¢h#
n¢L(HI V+7 @9:¸ ƒôo¸^vÐm }~V+I @9:¸ ƒôo¸_v, © Gý uvmn
ƒô
ðñò
y
·
C
¸^
Ǻ½%n¢L(HI V+:¸ •·
ƒô
ðñò
y
·
C
¸_
}~V+:¸ •·
$#7 -.- ÉÊË
;?
"#$ %&% '()*+, &-./0 1234567
'(' 89: »x a…† ,½
ü aØw O¯n• t0 ÉÊË £ üþ (þX• ¡RRh#¸
ü gl} aØw ÉÊËN žú O¯nL ¡R° U ¢h#¸
ü F• vße +- ö SlN ¼×• (9w jklmFnL ÁÞa}¿ aN îïw O¯n 9U'( ÉÊË i2J 9U^ S
cM _`aN ÅFh#¸
ü ÉÊË i2J^ ScM _`a˜ œ i2JL œ O¯nF ¡R®,ϸO¯nw 23J)e D]l¡ U ¢h#
Z[ ™ši¹ b-c )ðò7 J2:¸ 1=+•,
;ÖC ª5{, gO Lº:|& :¸ XY5 Z[ ™ši¹i b-c )ðò7 J2:¸ ",mn%
b-c )ðò‘ ™šÐm fžPë M Z[ ™š‘ ©¸ ‹HŒI Z[D M¬P »l b-c )ðò¸ T,U7 V+7 :P ‚ý ²mn
XY
Z[ ]
Z[ ^
Z[ _
1=+•,
b-c )ðò
b-c )ðò
b-c )ðò
$#7 -.- ÉÊË
;!
"#$ %&% '()*+, &-./0 1234567
89: ¾
ü aØw O¯n• t0 ÉÊË £ üþ (þX• ¡RRh#¸
ü ÉÊË ô³TA•»• îïw ü„ s.u³T²•€L»ò€²°°õL<»ø ÉÊË s.u³ä;ññL»<€²°°õL<»¸“w <Fh#¸
ü .rÇMN 9„4M Tr_ SFT^ O¯nL ¬-a} ÉÊËN ¿„F ]l¡ U ¢N '( SFT^ +È“h#¸
ü ÉÊË ô• ÉÊË+ ˆ= t3aN• ž«^ ÐG¡ U ¢6 "™L ÉÊË jklmFne _`%h˜ ÌU¦qr îTI
4K aN •®Fh#
b-c ¼O ‘0 8Þ ´`µR b-c ´`µ ô5 ß,,mn%
½‡¾Š¿À£Š‡ÁÁ:¿¸vO eÿ%CÂ22¿À¸Š‡ÁÁ:¿¸O _ÿ%½y¾O _,mn
Z[ ] ^ _ d e
`IaC
b-c
$#7 -.- ÉÊË
;8
"#$ %&% '()*+, &-./0 1234567
89: ¾
b-c ¼O b-c HIR XYÿ%Z[ÃI •ˆ²mn%^™5 XY
D d™5 Z[, ¡| ^™5 b-c HI, XY? Lº:; T,
U7 ‘à‘ë b-c ¼O Ä d™‘ ²mn
Z[ d™I Lˆ² XYD b-c‘ M¬ë b-c ¼O Ä d™‘
²mn%;ÖC €• Z[5 b-c ¼O _I wA:mn
`IaC‘ Ðû¸ T,Ug, b-c5 T,U V+WÐm smë b-c ¼
O ›-Zmn%nøI `IaC‘ Ðû¸ T,U g, b-c5 T,U V+W
Ðm GHë b-c ¼O w-!| 8ÅÕO ]HI PQ, ‹i? ˆlmn
`IaC5 T,U /MW, b-c5 T,U V+WÐm fHë
b-c ¼O Æé{C ›-Zm
`IaC5 T,U /MWÐm b-c5 T,U V+W, fHë
b-c ¼O ]HI Ç-§m
Z[ ‰] ] ^ _ d
`IaC
b-c
Z[ ‰^ ] ^ _
Z[ ‰_ ] ^ _ d e È É
Z[ ] ^ _ d e
`IaC
od ½¯1º½¼°†°¯1ºÌ¼v
È É
b-c
o^ ½¯1º½¼°†°¯1ºÌ¼v
Z[ ] ^ _ d e
`IaC
od ½¯1º½¼°†°¯1ºÌ¼v
b-c
o^ ½¯1º½¼°†°¯1ºÌ¼v
$#7 -.- ÉÊË
;9
"#$ %&% '()*+, &-./0 1234567
89: ¾
(# -.- <&*^ E§až ÉÊË ô ÂU
æçèæç€é빶º-êµ€ìµëºã¶#¶â <&*^ E§a˜ ÉÊË ôe ·k% vˆ ÉÊË ghw =Ž^ ÐG¡ U ¢h#
$ bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 
--group my-group --describe
!# ÉÊË -ê·µ´é¶³»¸5MJ^ E§až ÉÊË ô ÂU
7# ¶« îTI $e E§až ÉÊË ô ÂU
|rNN IDJGLM 9Jaž s´?ir Ð9% ÉÊË ô yD $r ñLõ<¸A)±^ f4 ÉÊË gh%r ÉÊË ôe
ÐG¡ U ¢h#
$#7 -.- ÉÊË
;:
"#$ %&% '()*+, &-./0 1234567
a(¿ '('
ü i.I -.-N -.-^ i.I .2šCDLM §ø¦qr E§¡ U ¢z• ')*‹ ©FÞúlh#
ü 6û -.- ù©FMB ©FÞúl^ àúaž 'n i.I -.- ©FÞúlN -.- ù©FMBLM E§aN žú +•
ƒïe ³l šÐ%h#
$#$ i.I -.-
;Q
"#$ %&% '()*+, &-./0 1234567
§À '(' ÁÂÃ
$#$ i.I -.-
spring:
kafka:
producer:
bootstrap-servers: my-kafka:9092
acks: all
ü i.I -.-LM .rÇM^ E§¡ &NLN ÌU %nF Gh#
ü '• %ne ;ˆa• •q˜ 'ëë·¶·µç〶êµ(굶N +ëéç+â붷ä²"²!ϸæê>€¶êµ´ç+´BêµÃ (ç+ºê€¶êµ´ç+´BêµN
õ·µ´¹ìõêµ´ç+´Bêµr ¿t;ˆ®* ‚}Rh#
;;
"#$ %&% '()*+, &-./0 1234567
a(¿ '(' (456
$#$ i.I -.-
@SpringBootApplication
public class SpringProducerApplication implements CommandLineRunner {
private static String TOPIC_NAME = "test";
@Autowired
private KafkaTemplate<Integer, String> template;
public static void main(String[] args) {
SpringApplication application = new SpringApplication(SpringProducerApplication.class);
application.run(args);
}
@Override
public void run(String... args) {
for (int i = 0; i < 10; i++) {
template.send(TOPIC_NAME, "test" + i);
}
System.exit(0);
}
}
<
Vçèæç<ê-ã+ç·êe WAº·ëÉ´µê4r dFqZM E§%h# Aãã+éç·´ë¹#>ç-+L ÌM% %n6• ¿tqr dFRh#
>
?
<
> ¶ê¹4³» 5MJ^ E§až îï F*ø 52• 6e 1* 9:%h#
? .rÇMr SFT 9:F òÀ®˜ óÀ%h#
<==
"#$ %&% '()*+, &-./0 1234567
§À Ÿa– ÁÂÃ
$#$ i.I -.-
ü 68 lic ÉöFcN 68 lic ÉöFc Xîl^ f4 ŠÎR lic ÉöFc^ E§%h#
ü 68 lic ÉöFc^ E§¡ "N çãã+´éç·´ë¹#>ç-+L ÉÊËà lic %ne 1} E§¡ U ¢h#
)!+%49P
O(7O(P
&,4)"3.+P
#,,0)0+(!N).+6.+)P'3<NO(7O(PQRQS
<=<
"#$ %&% '()*+, &-./0 1234567
a(¿ '(' 89:
$#$ i.I -.-
68¦G lic ÌMFh# îïø gh ZF†
^ •ˆ%h#
<
bA!+%49K,,0G!!$%&(0%,4
!"#$%&'&$())'A!+%492,4)"3.+G!!$%&(0%,4'5
!"#$%&')0(0%&'6,%-'3(%4>A0+%49TU'(+9)?'5
A!+%49G!!$%&(0%,4'(!!$%&(0%,4':'4.V'A!+%49G!!$%&(0%,4>A!+%492,4)"3.+G!!$%&(0%,4=&$())?@
(!!$%&(0%,4=+"4>(+9)?@
a
bY(7O(8%)0.4.+>0,!%&)':'J0.)0JX' 9+,"!D-':'J0.)0N9+,"!NRRJ?
!"#$%&'6,%-'+.&,+-8%)0.4.+>2,4)"3.+L.&,+-^A0+%49XA0+%49_'+.&,+-?'5
$,99.+=%47,>+.&,+-=0,A0+%49>??@
a
bY(7O(8%)0.4.+>0,!%&)':'J0.)0JX 9+,"!D-':'J0.)0N9+,"!NRfJ?
!"#$%&'6,%-')%49$.B,!%&8%)0.4.+>A0+%49'3.))(9.M($".?'5
$,99.+=%47,>3.))(9.M($".?@
a
bY(7O(8%)0.4.+>0,!%&)':'J0.)0JX 9+,"!D-':'J0.)0N9+,"!NRSJX'!+,!.+0%.)':'5
J3(c=!,$$=%40.+6($=3)PgRRRRJX
J("0,=,77).0=+.).0P.(+$%.)0J
a?
!"#$%&'6,%-')%49$.B,!%&/%01*+,!.+0%.)8%)0.4.+>A0+%49'3.))(9.M($".?'5
$,99.+=%47,>3.))(9.M($".?@
a
bY(7O(8%)0.4.+>0,!%&)':'J0.)0JX 9+,"!D-':'J0.)0N9+,"!NR`JX &,4&"++.4&<':'J`J?
!"#$%&'6,%-'&,4&"++.40B,!%&8%)0.4.+>A0+%49'3.))(9.M($".?'5
$,99.+=%47,>3.))(9.M($".?@
a
bY(7O(8%)0.4.+>0,!%&*(+0%0%,4)':
5
bB,!%&*(+0%0%,4>0,!%&':'J0.)0RfJX'!(+0%0%,4)':'5JRJX'JfJa?X
bB,!%&*(+0%0%,4>0,!%&':'J0.)0RSJX'!(+0%0%,4C77).0)':'b*(+0%0%,4C77).0>!(+0%0%,4':'JRJX'%4%0%($C77).0':'J`J??
aX
9+,"!D-':'J0.)0N9+,"!NRhJ?
!"#$%&'6,%-'$%)0.4A!.&%7%&*(+0%0%,4>2,4)"3.+L.&,+-^A0+%49X'A0+%49_'+.&,+-?'5
$,99.+=%47,>+.&,+-=0,A0+%49>??@
a
a
<
>
?
!
8
52• 6e O©³Tr qN licFh#
>
9% licL -.- ÉÊË %n6e «ža}
Hh˜ ãµëãêµ·´ê¶ %ne E§a˜ Rh#
?
!9 F=w -.- ÉÊË i2J^ ‚}a} H
h˜ éë¹éºµµê¹é>¸%ne E§a˜ Rh#
¿^ )*Ï O¯nF ("9G îïe ÁÞ¡ "
éë¹éºµµê¹é>^ ("qr ;ˆ¡ U ¢h# F
›1 a˜ ("9 O¯nL ("9w ÉÊË i2J
+ œœ ¡R®* D]l–F S*Óh#
!
vˆ îïw vˆ O¯n' ÁÞa} Hh˜
·ëã´é)çµ·´·´ë¹¶ O©³T^ E§%h#
8
<=>
"#$ %&% '()*+, &-./0 1234567
bA!+%49K,,0G!!$%&(0%,4
!"#$%&'&$())'A!+%492,4)"3.+G!!$%&(0%,4'5
!"#$%&')0(0%&'8,99.+'$,99.+':'8,99.+;(&0,+<=9.08,99.+>A!+%492,4)"3.+G!!$%&(0%,4=&$())?@
!"#$%&')0(0%&'6,%-'3(%4>A0+%49TU'(+9)?'5
A!+%49G!!$%&(0%,4'(!!$%&(0%,4':'4.V'A!+%49G!!$%&(0%,4>A!+%492,4)"3.+G!!$%&(0%,4=&$())?@
(!!$%&(0%,4=+"4>(+9)?@
a
bY(7O(8%)0.4.+>0,!%&)':'J0.)0JX 9+,"!D-':'J0.)0N9+,"!NRfJ?
!"#$%&'6,%-'#(0&18%)0.4.+>2,4)"3.+L.&,+-)^A0+%49X'A0+%49_'+.&,+-)?'5
+.&,+-)=7,+I(&1>+.&,+-'N_'$,99.+=%47,>+.&,+-=0,A0+%49>???@
a
bY(7O(8%)0.4.+>0,!%&)':'J0.)0JX 9+,"!D-':'J0.)0N9+,"!NRSJ?
!"#$%&'6,%-'#(0&18%)0.4.+>8%)0^A0+%49_'$%)0?'5
$%)0=7,+I(&1>+.&,+-M($".'N_'$,99.+=%47,>+.&,+-M($".??@
a
bY(7O(8%)0.4.+>0,!%&)':'J0.)0JX 9+,"!D-':'J0.)0N9+,"!NR`JX &,4&"++.4&<':'J`J?
!"#$%&'6,%-'&,4&"++.40K(0&18%)0.4.+>2,4)"3.+L.&,+-)^A0+%49X'A0+%49_'+.&,+-)?'5
+.&,+-)=7,+I(&1>+.&,+-'N_'$,99.+=%47,>+.&,+-=0,A0+%49>???@
a
a
ÄH Ÿa–
$#$ i.I -.-
ÉÊË 23Jw ~,e O©³Tr qNh
<
<
>
?
52• 6)e T´¶· ¿ÀÁÂr qZM ]l%h#
>
!9 F=w ÉÊË i2Jr YÙ lic^ _`
¡ &NLN éë¹éºµµê¹é>¸%ne kl ÌM
až E§a˜ Rh#
?
!"
/ 0- 1 2345+ 6789 :;< =$>?@
A 23B 0-" CDE FG H+4IJK

More Related Content

What's hot

ဆြဲအားေကာင္းတဲ့အခ်စ္
ဆြဲအားေကာင္းတဲ့အခ်စ္ဆြဲအားေကာင္းတဲ့အခ်စ္
ဆြဲအားေကာင္းတဲ့အခ်စ္babycandy007
 
အခ်စ္ဆုံးသူငယ္ခ်င္းမ်ား
အခ်စ္ဆုံးသူငယ္ခ်င္းမ်ားအခ်စ္ဆုံးသူငယ္ခ်င္းမ်ား
အခ်စ္ဆုံးသူငယ္ခ်င္းမ်ားbabycandy007
 
47295417 chit-way-lae-lae
47295417 chit-way-lae-lae47295417 chit-way-lae-lae
47295417 chit-way-lae-laebabycandy007
 
ႀကပ္ေနရင္ အပ်ိဳပဲ
ႀကပ္ေနရင္ အပ်ိဳပဲႀကပ္ေနရင္ အပ်ိဳပဲ
ႀကပ္ေနရင္ အပ်ိဳပဲkoluzoe
 
အႀကံႀကီးသူ
အႀကံႀကီးသူအႀကံႀကီးသူ
အႀကံႀကီးသူbabycandy007
 
Mudah belajar membaca kitab jilid 4
Mudah belajar membaca kitab jilid 4Mudah belajar membaca kitab jilid 4
Mudah belajar membaca kitab jilid 4alfin syahrin
 
လူနာကုတင္ ၃၁
လူနာကုတင္ ၃၁လူနာကုတင္ ၃၁
လူနာကုတင္ ၃၁babycandy007
 
ေမာင္လွ ဇာတ္လမ္း ၂
ေမာင္လွ ဇာတ္လမ္း ၂ေမာင္လွ ဇာတ္လမ္း ၂
ေမာင္လွ ဇာတ္လမ္း ၂babycandy007
 
ဝတ္ရုံနက္ႏွင့္လူ
ဝတ္ရုံနက္ႏွင့္လူဝတ္ရုံနက္ႏွင့္လူ
ဝတ္ရုံနက္ႏွင့္လူkoluzoe
 
Mudah belajar membaca kitab jilid 2
Mudah belajar membaca kitab jilid 2Mudah belajar membaca kitab jilid 2
Mudah belajar membaca kitab jilid 2alfin syahrin
 
Mudah belajar membaca kitab jilid 3
Mudah belajar membaca kitab jilid 3Mudah belajar membaca kitab jilid 3
Mudah belajar membaca kitab jilid 3alfin syahrin
 
ေၾကာက္တယ္
ေၾကာက္တယ္ေၾကာက္တယ္
ေၾကာက္တယ္babycandy007
 
給你一個使用 Laravel 的理由
給你一個使用 Laravel 的理由給你一個使用 Laravel 的理由
給你一個使用 Laravel 的理由Shengyou Fan
 
Ba programme globalization notes Sartaz Sir Notes
Ba programme globalization notes Sartaz Sir NotesBa programme globalization notes Sartaz Sir Notes
Ba programme globalization notes Sartaz Sir NotesTutorialsDuniya.com
 
ဇာတ္ၾကမ္း
ဇာတ္ၾကမ္းဇာတ္ၾကမ္း
ဇာတ္ၾကမ္းbabycandy007
 
دوستی اور دشمنی قرآن و سنّت اور علماء کی روشنی میں | Dosti aur dushmani -Qura...
دوستی اور دشمنی قرآن و سنّت اور علماء کی روشنی میں | Dosti aur dushmani -Qura...دوستی اور دشمنی قرآن و سنّت اور علماء کی روشنی میں | Dosti aur dushmani -Qura...
دوستی اور دشمنی قرآن و سنّت اور علماء کی روشنی میں | Dosti aur dushmani -Qura...Quran Juz (Para)
 

What's hot (20)

Dongaata 01-03
Dongaata 01-03Dongaata 01-03
Dongaata 01-03
 
ဆြဲအားေကာင္းတဲ့အခ်စ္
ဆြဲအားေကာင္းတဲ့အခ်စ္ဆြဲအားေကာင္းတဲ့အခ်စ္
ဆြဲအားေကာင္းတဲ့အခ်စ္
 
အခ်စ္ဆုံးသူငယ္ခ်င္းမ်ား
အခ်စ္ဆုံးသူငယ္ခ်င္းမ်ားအခ်စ္ဆုံးသူငယ္ခ်င္းမ်ား
အခ်စ္ဆုံးသူငယ္ခ်င္းမ်ား
 
47295417 chit-way-lae-lae
47295417 chit-way-lae-lae47295417 chit-way-lae-lae
47295417 chit-way-lae-lae
 
ႀကပ္ေနရင္ အပ်ိဳပဲ
ႀကပ္ေနရင္ အပ်ိဳပဲႀကပ္ေနရင္ အပ်ိဳပဲ
ႀကပ္ေနရင္ အပ်ိဳပဲ
 
Kalma e-tayyaba
Kalma e-tayyabaKalma e-tayyaba
Kalma e-tayyaba
 
အႀကံႀကီးသူ
အႀကံႀကီးသူအႀကံႀကီးသူ
အႀကံႀကီးသူ
 
Mudah belajar membaca kitab jilid 4
Mudah belajar membaca kitab jilid 4Mudah belajar membaca kitab jilid 4
Mudah belajar membaca kitab jilid 4
 
Hazrat Ayesha R.A.
Hazrat Ayesha R.A.Hazrat Ayesha R.A.
Hazrat Ayesha R.A.
 
လူနာကုတင္ ၃၁
လူနာကုတင္ ၃၁လူနာကုတင္ ၃၁
လူနာကုတင္ ၃၁
 
ေမာင္လွ ဇာတ္လမ္း ၂
ေမာင္လွ ဇာတ္လမ္း ၂ေမာင္လွ ဇာတ္လမ္း ၂
ေမာင္လွ ဇာတ္လမ္း ၂
 
ဝတ္ရုံနက္ႏွင့္လူ
ဝတ္ရုံနက္ႏွင့္လူဝတ္ရုံနက္ႏွင့္လူ
ဝတ္ရုံနက္ႏွင့္လူ
 
Mudah belajar membaca kitab jilid 2
Mudah belajar membaca kitab jilid 2Mudah belajar membaca kitab jilid 2
Mudah belajar membaca kitab jilid 2
 
Mudah belajar membaca kitab jilid 3
Mudah belajar membaca kitab jilid 3Mudah belajar membaca kitab jilid 3
Mudah belajar membaca kitab jilid 3
 
ေၾကာက္တယ္
ေၾကာက္တယ္ေၾကာက္တယ္
ေၾကာက္တယ္
 
Hazrat Umm e Salma R.A.
Hazrat Umm e Salma R.A.Hazrat Umm e Salma R.A.
Hazrat Umm e Salma R.A.
 
給你一個使用 Laravel 的理由
給你一個使用 Laravel 的理由給你一個使用 Laravel 的理由
給你一個使用 Laravel 的理由
 
Ba programme globalization notes Sartaz Sir Notes
Ba programme globalization notes Sartaz Sir NotesBa programme globalization notes Sartaz Sir Notes
Ba programme globalization notes Sartaz Sir Notes
 
ဇာတ္ၾကမ္း
ဇာတ္ၾကမ္းဇာတ္ၾကမ္း
ဇာတ္ၾကမ္း
 
دوستی اور دشمنی قرآن و سنّت اور علماء کی روشنی میں | Dosti aur dushmani -Qura...
دوستی اور دشمنی قرآن و سنّت اور علماء کی روشنی میں | Dosti aur dushmani -Qura...دوستی اور دشمنی قرآن و سنّت اور علماء کی روشنی میں | Dosti aur dushmani -Qura...
دوستی اور دشمنی قرآن و سنّت اور علماء کی روشنی میں | Dosti aur dushmani -Qura...
 

More from 한 경만

도메인 주도 설계 철저 입문_202204.pdf
도메인 주도 설계 철저 입문_202204.pdf도메인 주도 설계 철저 입문_202204.pdf
도메인 주도 설계 철저 입문_202204.pdf한 경만
 
파워포인트 블루스
파워포인트 블루스파워포인트 블루스
파워포인트 블루스한 경만
 
만들면서 배우는 클린 아키텍처
만들면서 배우는 클린 아키텍처만들면서 배우는 클린 아키텍처
만들면서 배우는 클린 아키텍처한 경만
 
개발자 리서치 활동강화 방안 180109
개발자 리서치 활동강화 방안 180109개발자 리서치 활동강화 방안 180109
개발자 리서치 활동강화 방안 180109한 경만
 
소프트웨어 공학의 사실과 오해
소프트웨어 공학의 사실과 오해소프트웨어 공학의 사실과 오해
소프트웨어 공학의 사실과 오해한 경만
 
Database 튜닝 교육 110124
Database 튜닝 교육 110124Database 튜닝 교육 110124
Database 튜닝 교육 110124한 경만
 
2018 workshop 180615
2018 workshop 1806152018 workshop 180615
2018 workshop 180615한 경만
 
객체지향의 사실과 오해 7장.함께모으기
객체지향의 사실과 오해 7장.함께모으기 객체지향의 사실과 오해 7장.함께모으기
객체지향의 사실과 오해 7장.함께모으기 한 경만
 
객체지향의 사실과 오해 3장. 타입과 추상화
객체지향의 사실과 오해 3장. 타입과 추상화객체지향의 사실과 오해 3장. 타입과 추상화
객체지향의 사실과 오해 3장. 타입과 추상화한 경만
 
애자일 프랙티스
애자일 프랙티스애자일 프랙티스
애자일 프랙티스한 경만
 
Kafka streams 20201012
Kafka streams 20201012Kafka streams 20201012
Kafka streams 20201012한 경만
 

More from 한 경만 (11)

도메인 주도 설계 철저 입문_202204.pdf
도메인 주도 설계 철저 입문_202204.pdf도메인 주도 설계 철저 입문_202204.pdf
도메인 주도 설계 철저 입문_202204.pdf
 
파워포인트 블루스
파워포인트 블루스파워포인트 블루스
파워포인트 블루스
 
만들면서 배우는 클린 아키텍처
만들면서 배우는 클린 아키텍처만들면서 배우는 클린 아키텍처
만들면서 배우는 클린 아키텍처
 
개발자 리서치 활동강화 방안 180109
개발자 리서치 활동강화 방안 180109개발자 리서치 활동강화 방안 180109
개발자 리서치 활동강화 방안 180109
 
소프트웨어 공학의 사실과 오해
소프트웨어 공학의 사실과 오해소프트웨어 공학의 사실과 오해
소프트웨어 공학의 사실과 오해
 
Database 튜닝 교육 110124
Database 튜닝 교육 110124Database 튜닝 교육 110124
Database 튜닝 교육 110124
 
2018 workshop 180615
2018 workshop 1806152018 workshop 180615
2018 workshop 180615
 
객체지향의 사실과 오해 7장.함께모으기
객체지향의 사실과 오해 7장.함께모으기 객체지향의 사실과 오해 7장.함께모으기
객체지향의 사실과 오해 7장.함께모으기
 
객체지향의 사실과 오해 3장. 타입과 추상화
객체지향의 사실과 오해 3장. 타입과 추상화객체지향의 사실과 오해 3장. 타입과 추상화
객체지향의 사실과 오해 3장. 타입과 추상화
 
애자일 프랙티스
애자일 프랙티스애자일 프랙티스
애자일 프랙티스
 
Kafka streams 20201012
Kafka streams 20201012Kafka streams 20201012
Kafka streams 20201012
 

아파치 카프카_애플리케이션 프로그래밍 with 자바_202204.pdf

  • 2. ! " (# )*+, !# -.- /01 23456 7# -.- 68 9: ;< $# -.- => 9: ;<
  • 4. ! "#$ %&% '()*+, &-./0 1234567 '(' )* +, -./0 ü ?@ ABCD EFBGHIDJGKLMN OPQR SFT UV W XY Z[]^ _`aN SL b *cde fgh# ü ?i jklmFnLM op jklmFnqr st uv Z[]w xyz^ {|c} ~• €• ‚ƒ „… 2i† ')6r ‡ˆ €• -.- ‰Š ‹Œ6 _`• Ž)• •‘h’ ‹2“F •”U• xy4•} jklmFnw 9U+ –– —Z•˜M ™š+ Š›h’ ()*+ ,- ./*+ ,- 01 234 (#( -.-w ‰Š
  • 5. 8 "#$ %&% '()*+, &-./0 1234567 '('1 23 ü -.-N œ jklmFn•l s‡až SFT^ ]la• •} % ŸL Z ]l¡ U ¢z• £¤V£Q ¥h# -.-+ ¦§R F¨w OF.©G Z[] 5647 8(9:; <=>? @9 AB C.D 01D4 EFGHI J2 KL /MHI NO PQ R SO T,U V+W (#( -.-w ‰Š
  • 6. 9 "#$ %&% '()*+, &-./0 1234567 (4567 89: ü -.- ª«L SFT+ ¬-®N O¯nw t3• °±°²³°´µ¶·¸±¹¸°´µ¶·¸²º·» ¼½w ¾ ¿ÀÁÂà ÄE ü ¾L SFT^ 5ªN ÅF Æ.rÇMÆ F} SFT^ +È+N ÅF ÆÉÊËÆ Fh XY Z[ ] Z[ ^ Z[ _ `IaC b-c ] ^ _ d e (#( -.-w ‰Š
  • 7. : "#$ %&% '()*+, &-./0 1234567 ; '('< =+> ?+(@AB4 CDE<F ü SFT UV W ¦v^ 9Ìa} ͈Îe |+a,Ï Äsa˜Mz Ð- +Ña1 ¿tQ% Åe ÆSFT OF.©GÒF©} «Óh# ü SFT OF.©Ge ͈¦F} Ð-Î Ô1 _`a6 Õ% Ö• ¼× £ aØ+ ZOÙ -.-^ Ú§aN ÅFh# !" #$% ü fO g5 T,U7 hi jkI V+lmn opqrs tuv ü Z[ jkI wA xG5 T,U7 ;y Z[D z{:| T,U 7 }~ V+ &'( ü T,U7 •€+D •0:P ‚| ZA ƒ)„D •0lmn ü …†‡%ˆ‰3Š? k{ ‹,P Œƒ 2•? •€+D ŽI •ˆ:; •ulmn )*( ü ‘’G“ ”•DC EFGHI –0 ‘‰:mn ü —y)U5 ˜I< ™š7 ›œ )•A žŸ š ¡mn +,-( ü T,U5 ¢£7 ¤{ |‘uˆ5 ¥¦? ‘§mn ü 01‘ ¨•:©ª4 «cP ˜I<D •0¬- ¡mn (#! ÛSFT OF.©GLM -.-w Ü¡
  • 9. ; "#$ %&% '()*+, &-./0 1234567 '(' GH !#( ‚ݧ -.- Þrß ;Ù Zà ID^ á}až ;Ù45¿ â··ã¶äååæçèæç#çãçéâê#ëµìåíº´é涷絷
  • 10. <= "#$ %&% '()*+, &-./0 1234567 I$JI$K&LMNOPQPR ü îïFð -.-LM SFT^ ÁXaN +- 68¦G 9:Fh# ü ñòóôõLM E§aN öF÷ø ÄEah# ü -.- ùúiTL îï• žú 9 ûv¡ U ¢h# ü îïLN O¯nF ûvaNS O¯nw 9UN ü? (9«T 23%h# ® îïe ŠÎaN !+• ¼× -.- ÉÊË ýN .rÇM+ -.- ÞrßL ŠÎ®• •• îïL þ4 SFT^ ÿ!¡ " ß#J ©G $r <2¦qr îïe ŠÎaN Å < > !#! -.- ß#J ©G $
  • 11. << "#$ %&% '()*+, &-./0 1234567 I$JI$K&LMNOPQPR $ bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --topic hello.kafka > ? < €€éµêç·ê¸%nqr îïe ŠÎaN <&*©N Åe <2 ü ,- ./ 0123 > €€'ëë·¶·µç〶êµ(êµL Þrß)w ±)à ãëµ·^ ¦Nh# ? €€·ëã´éLN îï F*e 3Î%h# < !#! -.- ß#J ©G $
  • 12. <> "#$ %&% '()*+, &-./0 1234567 I$JI$K&LMNOPQPR $ bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --partitions 3 --replication-factor 1 --config retention.ms=172800000 --topic hello.kafka.2 < > ? < €€ãçµ·´·´ë¹¶N O¯n 9U^ •ˆ%h# ü ,- ./ 0456789&3 > €€µêã+´éç·´ë¹€èçé·ëµLN O¯ne xš¡ 9U^ ¦Nh# ³(• xša• •,# !N (9w xš8 E§» ? €€éë¹è´ì¶N |+¦G ;ˆ# µê·ê¹·´ë¹#-¶N îïw SFT^ Ä•aN 6“ ³(.!/"""""N !0» !#! -.- ß#J ©G $
  • 13. <? "#$ %&% '()*+, &-./0 1234567 I$JI$K&LMNOPQPR $ bin/kafka-topics.sh --bootstrap-server localhost:9092 –list ü ,- #:; <= !#! -.- ß#J ©G $
  • 14. <! "#$ %&% '()*+, &-./0 1234567 I$JI$K&LMNOPQPR $ bin/kafka-topics.sh --bootstrap-server localhost:9092 --describe --topic hello.kafka.2 ü ,- >? <= !#! -.- ß#J ©G $
  • 15. <8 "#$ %&% '()*+, &-./0 1234567 I$JI$K&LMNOPQPR $ bin/kafka-topics.sh --bootstrap-server localhost:9092 --topic hello.kafka --alter --partitions 4 $ bin/kafka-configs.sh --bootstrap-server localhost:9092 --entity-type topics --entity-name hello.kafka --alter --add-config retention.ms=86400000 ü ,- 9& @A !#! -.- ß#J ©G $
  • 16. <9 "#$ %&% '()*+, &-./0 1234567 I$JI$KOLSPLTUKM%LVWOU%QPR $ bin/kafka-console-producer.sh --bootstrap-server localhost:9092 --topic hello.kafka >hello >kafka >0 >1 >2 >3 ü îïL 1N SFTN Ò23J³µêéëµ4»Ò©} «0, 52• [à 52• 6qr F7*È ¢h# ü 52• [N ¿8w ¹º++r 68 ;ˆ®* Þrßr 9:Rh# ü 12 BC !#! -.- ß#J ©G $
  • 17. <: "#$ %&% '()*+, &-./0 1234567 I$JI$KOLSPLTUKM%LVWOU%QPR ü æçèæç€é빶ë+ê€ãµë4ºéêµ#¶âr 9:®N 23J 6• ;<°€/e 6=qr ó>·êr ?@®} ó>·êAµµç>õêµ´ç+´Bêµr CDQRh# ü õ·µ´¹ìF ZE oFqrN CDQaž 9:¡ U Gh# ü hÓ oFqr 9:a} Hh˜ -.- .rÇM jklmFne CI 9J4K %h# @ABCDBCEFGHIGJKELMGNOFKM@I4 #P, = #P, < #P, > #P, <= !"! #$% @ @ !"# !"# !"# !"# !#! -.- ß#J ©G $
  • 18. <Q "#$ %&% '()*+, &-./0 1234567 I$JI$KOLSPLTUKM%LVWOU%QPR ü DEF BC 045678DEF G3 $ bin/kafka-console-producer.sh --bootstrap-server localhost:9092 --topic hello.kafka --property "parse.key=true" --property "key.separator=:” >key1:no1 >key2:no2 >key3:no3 > < < ã絶ê#æê>^ ·µºêr L˜ 23J^ 9:¡ " 52• [^ |+¡ U ¢h# > 52• [à 52• 6e ÁXaN ÁX¿^ ÌM%h# !#! -.- ß#J ©G $
  • 19. <; "#$ %&% '()*+, &-./0 1234567 I$JI$KOLSPLTUKM%LVWOU%QPR ü 9:®N 23J 6• ;<°€/e 6=qr ó>·êr ?@Rh# ü 52• [+ ¹º++G &NLN .rÇM+ O¯nqr 9:¡ " 23J YÙ PÕr ©_JrQqr 9:%h#¸ ü 52• [+ ûvaN &NLN [w 426e 3Îaž ûvaN O¯n £ % 9L ¡RRh#¸ ü Fr G4 52• [+ t0% &NLN t0% O¯nqr 9:Rh# !#! -.- ß#J ©G $
  • 20. >= "#$ %&% '()*+, &-./0 1234567 I$JI$KOLSPLTUKM%LVWOU%QPR ® O¯n 9U+ S*ؘ Tr .rÇU®N 23J)• *V O¯nqr WXY F9L 52• [+ O¯n "ZL )*[h˜ O¯ne S ]LN O¯n "Zqr “hN 5-F Gh#¸'0 O¯n e |+a^©z F9L E§a_ 52• [w 0`Îe 5-a} Hh˜ ßia O¯bc^ ')*M _`4K %h# !#! -.- ß#J ©G $
  • 21. >< "#$ %&% '()*+, &-./0 1234567 I$JI$KOLSPLTUKOLSPWXU%QPR $ bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic hello.kafka --from-beginning ü €€'ëë·¶·µç〶êµ(êµL -.- ùúiT ˆ5 ü €€·ëã´éL îï F* ü €€èµë-€'êì´¹¹´¹ì¸%ne d˜ îïL ¬-R +- ], SFT«T e• !#! -.- ß#J ©G $
  • 22. >> "#$ %&% '()*+, &-./0 1234567 I$JI$KOLSPLTUKOLSPWXU%QPR $ bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic hello.kafka --property print.key=true --property key.separator="-" --group hello-group --from-beginning key1-no1 null-4 null-5 null-0 null-hello null-kafka key2-no2 key3-no3 ü SFTw 52• [à 52• 6e ÐGa} Hh˜ €€ãµëãêµ·>¸%ne E§a˜ Rh# < 52• [^ ÐGa6 Õ4 ãµ´¹·#æê>^ ·µºêr ;ˆ¥h# > 52• [ 6e ÁXa6 Õ4 æê>#¶êãçµç·ëµ^ ;ˆ¥h# ? €€ìµëºã¸%ne f4 ÉÊË ghe ŠÎ¥h#¸F ÉÊË ghe f4 +È“ îïw 52•N +È“ 52•L þ4 ß ie %h#¸ßi ˆ5N jjé빶º-êµjëèè¶ê·¶ F*w ª« îïL ¬-Rh# < > ? !#! -.- ß#J ©G $
  • 23. >? "#$ %&% '()*+, &-./0 1234567 I$JI$KOLSPLTUKOLSPWXU%QPR ü 52• [^ 1• •• SFTN ¹º++ø 52• 6F kl 5F}Ï 52• [^ 1• SFTN 52• [à 6F kl 5Gh# ü æçèæç€é빶ë+ê€ãµë4ºéêµ#¶âr 9:¥_ SFTw mM+ uv e•®N mMà h0h# ü FN O¯n 9: "™L Š6N u=Fh# ü æçèæç€é빶ë+ê€é빶º-êµ#¶â^ f4 îïw 52•^ +È+1 ®˜ îïw n O¯nqr«T t0% £ÿzr S FT^ +È“h# ü Fr G4 îïL 1• SFTà îïLM +È“ SFTw mM+ o©•1 ®N ÅFh# @ABCDBCEFGHIGJKEFGHIORKM@I4 #P, = #P, < #P, > #P, <= !"! #$% @ @ !"# !"# !"# !"# !#! -.- ß#J ©G $
  • 24. >! "#$ %&% '()*+, &-./0 1234567 I$JI$KOLSPWXU%KY%LWMPQPR ü ŠÎR ÉÊË ghw liBN æçèæç€é빶º-êµ€ìµëºã¶#¶â <&*r ÐG¡ U ¢h# $ bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --list ü €€+´¶·¶N ÉÊË ghw liB^ ÐGaN %nFh# $ bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --group hello-group --describe !#! -.- ß#J ©G $
  • 25. >8 "#$ %&% '()*+, &-./0 1234567 I$JI$KZU%NJN$[TUKM%LVWOU%QPR7OLSPWXU%QPR ü æçèæç€(êµ´è´ç'+êr 23aN !9w iDpB^ E§a˜ õ·µ´¹ì oF 52• 6e 3J GF d}qe U ¢h# $ bin/kafka-verifiable-producer.sh --bootstrap-server localhost:9092 --max-messages 10 --topic verify-test ü 9:% SFTN æçèæç€(êµ´è´ç'+ê€é빶º-êµ#¶âr ÐG¡ U ¢h# $ bin/kafka-verifiable-consumer.sh --bootstrap-server localhost:9092 --topic verify-test --group-id test-group !#! -.- ß#J ©G $
  • 26. >9 "#$ %&% '()*+, &-./0 1234567 I$JI$KVUTU&UK%UOL%VPQPR ü îïw SFT^ •r " E§ ü îïw SFT £ +- sàR SFT³+- {• t¿w s.u»«T vˆ 2–w s.uX• wš¡ U ¢h# ü -.-LMN îïw O¯nL ¬-R vˆ SFT' wš¡ UN GhN –e <x4K %h# vi delete-topic.json {"partitions": [{"topic": "hello.kafka", "partition": 0, "offset": 50}], "version": 1} $ bin/kafka-delete-records.sh --bootstrap-server localhost:9092 --offset-json-file delete-topic.json #¯°# XY5 ]± Z[D •0² T,U ³ ]BU d] ´`µ T,U¶P P·¸ •· !#! -.- ß#J ©G $
  • 27. $%$ 12 34 56 #$%& #
  • 28. >Q "#$ %&% '()*+, &-./0 1234567 '(' ]4^・_`a>・b.c ü -.- ÞrßN -.- ù©FMBà SFT^ d}q6 Õ% E§aN dy ü SFT^ Xz ¬-až -j+ JŠa^©z Í9a1 E§¡ U ¢z• zÃ{h# ü M| (þrz 68 ‚}F ®•' 7þ F=w Þrß M|^ (9w ùúiTr ~*M _`%h# ü -.- ùúiTr ~G Þrß)• .rÇM+ 5• SFT^ Í9a1 ¬-a} xšaN Ü¡e %h# STU &'( )*+ V-W = V-W < V-W > !"! ,-./ 7#( -.- Þrß・ùúiT・d[€
  • 29. >; "#$ %&% '()*+, &-./0 1234567 '(' ]4^ K =+> de7 ,f ü .rÇMr«T SFT^ 9oqq˜ O¯nL SFT^ ¬-a} ÉÊË+ SFT^ ÿ!a˜ ¬-R SFT^ 9o%h# ü .rÇMr«T 9oR SFTN O0 2i†L ¬-Rh# $ ls /tmp/kafka-logs drwxr-xr-x 6 macbookpro wheel 192 5 13 20:16 hello.kafka-0 drwxr-xr-x 6 macbookpro wheel 192 5 13 20:17 hello.kafka.2-0 drwxr-xr-x 6 macbookpro wheel 192 5 13 20:17 hello.kafka.2-1 drwxr-xr-x 6 macbookpro wheel 192 5 13 20:17 hello.kafka.2-2 $ ls /tmp/kafka-logs/hello.kafka-0 macbookpro /tmp/kafka-logs ls hello.kafka-0 00000000000000000000.index 00000000000000000000.timeindex 00000000000000000000.log leader-epoch-checkpoint ¹º»n¼"½ ¾D F5l ¿ÀX+D T,U7 •0lmn%XY ,ÁR Z[ ±Â5 ÃÄHI :k ¿ÀX+7 •ˆ $¯¹¹ºnÅÆÇÅÆ XY5 ]± Z[D 6È:¸ T,U7 –“ š ¡mn ü ¹º»É%•ƒPÊ •ËT,U7 •0 ü "̼¯ÍÉ%•ƒP5 ´`µ? “ÎÏl FÐ ü #"ѯ"̼¯ÍÉ%•ƒPD ÒÓ² #"ѯ°#ÆÑÔÕ? Ö×HI “ÎÏl FБ ØÙ ¡mn ü #"ѯ°#ÆÑÔÉ%˜I<‘ GÈl T,U7 Ú£:Û« ÜÝ:¸T •ulmn < > < > 7#( -.- Þrß・ùúiT・d[€
  • 30. ?= "#$ %&% '()*+, &-./0 1234567 '(' ]4^ K =+> de7 ,f ü -.-N 5 lØ SFT•FiL ¬-a• •q, ‚r ƒ25 l^ Áuaž E§a•z •Nh# O02i†L ¬-a˜ „z FÊ+ JŠa• •eXY -.-NH…F• ƒ2K^ E§až †iD Fe• „z^ Ôž F ™š^ 4‡¥h …F• ƒ2N ²õLM O0 Fe•w Îч=e Õ4 ')* ˆ• 5 l `ÜFh# 7#( -.- Þrß・ùúiT・d[€
  • 31. ?< "#$ %&% '()*+, &-./0 1234567 '(' ]4^ K =+> gh7 ij ü SFT xš³µêã+´éç·´ë¹»N -.-^ -j ‰§ 2i†³èçº+· ·ë+êµç¹éê ¶>¶·ê-»qr t3az• aN Št•Fh# ü xšw FÄN ùúiTr ~G Þrß £ 0«L -j+ JŠa^©z SFT^ Ä‚a• •} Í9a1 E§a6 ÕkFh# ü SFT xšN O¯n PÕr F7*‹h# îïw O¯nw xš 9U+ 7G &N +© Z[5 ´`µ? –“:; &Þ5 ´`µR ß,‘ «¸ •· +© Z[HIBU T,U7 ‘àám #$% 0 12 #P, < X)YZ #$% 3 12 #P, < X[-Z #$% 4 12 #P, < X[-Z ü +©É `IaC ⸠b-cÊ ãä ¤Þ:¸ Z[ ü åIrÉ ¢£ T,U7 ‘P| ¡¸ Z[ 7#( -.- Þrß・ùúiT・d[€
  • 32. ?> "#$ %&% '()*+, &-./0 1234567 '(' ]4^ K =+> gh7 ij ü Þrß+ h_®˜ Þrßw l^ O¯n• E§¡ U G6 "™L ŒrC O¯n £ aØ+ l^ O¯nF Rh# ü SFT+ Ä‚®• •} ÉÊËØ .rÇM+ SFT^ d}qe U ¢h# ]-^ )Y #P,+ _` Þrß "L -j+ JŠ% &N #$% 0 12 #P, < #$% 3 12 #P, < X)YZ #$% 4 12 #P, < X[-Z XabcdZ e' ü T,U‘ AB æç¬-4 è*:| V+ é4‘ ³ê:më ¢£ ™š7 ^⸠_I ìF ü íî FÐÊ ï, æç, A-«ë E¬¸ •· ¢£ ™š7 dHI ìF 7#( -.- Þrß・ùúiT・d[€
  • 33. ?? "#$ %&% '()*+, &-./0 1234567 '(' ]4^ – 8kl`mOLS&%LTTU%n ü ùúiTw hU Þrß £ % þ+ ÉB•úw Ü¡e %h#¸ ü hÓ Þrß)w =Ž^ yDa} Þrß+ ùúiTLM /•N &N 4R ÞrßL ûvaN l^ O¯ne vXY%h#¸ ü '• ÉB•ú Ü¡e aN ÞrßL -j+ Š6˜ hÓ Þrß+ ÉB•ú Ü¡e %h# 7#( -.- Þrß・ùúiT・d[€
  • 34. ?! "#$ %&% '()*+, &-./0 1234567 '(' ]4^ – =+> oh ü -.-N ÉÊË+ SFT^ +È+^©z îïw SFTN wš®• •Nh#¸ ü ý%ϸÉÊËØ .rÇM+ SFT wš^ ÿ!¡ Uz Gh#¸ ü sC Þrß'F SFT^ wš¡ U ¢h#¸ ü SFT wšN O0 PÕr F7*•NS F PÕ^ •rg >g‘B³+ë츶êì-ê¹·»•©} «Óh# ü ÞrßL +ëì#¶êì-ê¹·#'>·ê¶ ýN +ëì#¶êì-ê¹·#-¶ %nL 6F ;ˆ®˜ >g‘B O0F ’“h# ü >g‘B O0F ’”1 ®N 686• (•ó§–Fh# 7#( -.- Þrß・ùúiT・d[€
  • 35. ?8 "#$ %&% '()*+, &-./0 1234567 '(' ]4^ – 89: p(q de ü ÉÊË gh• îïF vˆ O¯nqr«T SFT^ +È+M ]la} F O¯nw *V 23JX• +È[N• ÐGa6 Õ 4 s.ue ßi%h#¸ ü ßi% s.u• jjé빶º-êµjëèè¶ê·¶ îïL ¬-%h# 7#( -.- Þrß・ùúiT・d[€
  • 36. ?9 "#$ %&% '()*+, &-./0 1234567 '(' ]4^ – rst+>mOLL%VNS$&L%n ü ùúiTw hU Þrß £ % þN 3†AFTw Ü¡e U}%h#¸ ü 3†AFTN ÉÊË ghw =Ž^ yDa} O¯ne ÉÊËà —˜®z• XYaN Ü¡e %h#¸ ü ÉÊË+ ÉÊË ghLM /•˜ —˜®• •• O¯ne ˆ= t3aN ÉÊËr ¡Raž ™šGF SFT+ ]l®z• z Ã{h#¸ ü F›1 O¯ne ÉÊËr v¡RaN øˆe •lœ•i³µê'ç+ç¹é껕©} «Óh# 7#( -.- Þrß・ùúiT・d[€
  • 37. ?: "#$ %&% '()*+, &-./0 1234567 b.c ü d[€N -.-w 5oSFT^ `laN SL E§Rh# $ bin/zookeeper-shell.sh localhost:2181 Connecting to localhost:2181 Welcome to ZooKeeper! ls / [admin, brokers, cluster, config, consumers, controller, controller_epoch, isr_change_notification, latest_pro ducer_id_block, log_dir_event_notification, zookeeper] get /brokers/ids/0 {"listener_security_protocol_map":{"PLAINTEXT":"PLAINTEXT"},"endpoints":["PLAINTEXT://localhost:9092"],"jmx_po rt":-1,"port":9092,"host":"localhost","version":4,"timestamp":"1620904358029"} get /controller {"version":1,"brokerid":0,"timestamp":"1620904358147"} ls /brokers/topics [hello.kafka, hello.kafka.2] d[€L I„ < > < > ? ! 8 ž¹ë4ê)e ÐG ? -.- ÞrßL þ% ˆ5^ ÐG *V Þrß+ ÉB•úG•L þ% ˆ5^ +ÈŸh# ! 8 -.-L ¬-R îï)e ÐG 7#( -.- Þrß・ùúiT・d[€
  • 38. ?Q "#$ %&% '()*+, &-./0 1234567 uvw ?xy ü îï• -.-LM SFT^ ÁXa6 Õ4 E§aN PÕFh#¸ ü îï• (9 F=w O¯ne ?Äa} ¢h#¸ ü O¯nLN .rÇM+ 5• SFT)F )*+ ¬-®NS F SFT^ •23J³µêéëµ4»•©} «Óh# 12 = < f8 f8 g< g> = < > ? f> f> f? f? g< g> g< g> #P, h= #P, h< i&j klm T klm n `IaC ðñò .rÇM+ 9:% 23JN O¯nL ¬-Rh# 7#! îïø O¯n
  • 39. ?; "#$ %&% '()*+, &-./0 1234567 uvw ?xy ü O¯n• -.-w D]lw ¡xqr¢ ghqr ~G ÉÊË)F 23J^ Dr ]l¡ U ¢z• —˜Rh#¸ ü ÉÊËw ]l–F %ˆR =£LM —• 23J^ Dr ]laN +- Ö• ¼×• ÉÊËw 9U^ Sc im0 Z¤aN ÅFh#¸ ü ÉÊË 9U^ S¥ø t2L O¯n 9U^ Sl˜ ]l–F ¦+aN §ø^ ¨ U ¢h# O¯n 9Uà ÉÊË 9U^ ScM ]l–e Sh 12 #P, = 567 0 12 #P, = 567 0 #P, < 567 3 b-c ^™ }~ V+W b-c _™ }~ V+W 7#! îïø O¯n
  • 40. != "#$ %&% '()*+, &-./0 1234567 uv +z h{ |} îï F*e ŠÎ¡ " š• ©• h,ø ªh# ü Q ™¿« îï F*• •Ša• •Nh# ü îï F*• ¬-® aس#» ýN ¬-® ¯³##»r ŠÎ° U Gh# ü îï F*w ±FN !$²¿ ³'qr ŠÎ®*K %h# ü îï F*• `* þ?™¿Ã t¿ "«T ² gl} ¬-®³#»Ï M^8³j»Ï aF´³€» µqr ŠÎ¡ U ¢h# F¶w ™¿ «F ·kR îï F*• ŠÎ ¸+ah# ü -.- ª« rC `l ¹¦qr E§®N !9 îï³jjé빶º-êµjëèè¶ê·¶Ï¸jj·µç¹¶çé·´ë¹j¶·ç·ê»ø t0% F*qr ŠÎ ¸+Ñah# ü -.- ª«¦qr E§aN rC "™L îï F*L ¬-®³#»Ã M^8³j»+ t2L )*+˜ Í Rh# ŠÎ• ¡ U ¢• ' E§ 2 FÊ+ JŠ¡ U ¢6 "™L ¬-®³#»Ã M^8³j»+ )*“ îï F*e E§a˜ ºAñ»±»• 52•+ J Š%h# ü F³ ŠÎR îï F*w ¬-®³#»^ M^8³j»r 8¼½Ø M^8³j»^ ¬-®³#»r 8¾ &N „… îï F*ø t0ah ˜ ŠÎ¡ U Gh# ¿^ )*Ï ·ë#ã´é F*w îïF ŠÎ®* ¢h˜ ·ëjã´é F*w îïe ŠÎ¡ U Gh# 7#! îïø O¯n
  • 41. !< "#$ %&% '()*+, &-./0 1234567 1~ •€ uv +z •‚ ƒ„ îï 3<w †kÀø ¿2 ü Á@&•#Á€<•#ÁjklmFn€<•#Á52•€oF• ¿2»¸ãµ4#-çµæê·´¹ì€·êç-#¶-¶€ã+ç·èëµ-#Ã¶ë¹ ü Á.rÄB€<•#ÁMÅi€<•#Á@&•#ÁFÆB€<•¸ ¿2»¸éë--êµéê#ãç>-ê¹·#ãµ4#¹ë·´è´éç·´ë¹ ü Á@&•#ÁMÅi€<•#ÁDZñA€ZÈ•#Á52•€oF•¸¿2»¸ 4ê(#ê-ç´+€¶ê¹4êµ#ôµç€(!7$#ê-ç´+€(ë€éº¶·ë- ü Á-.-€ùúiT€<•#Á@&•#ÁMÅi€<•#Á52•€oF•¸ ¿2»¸çɶ€æçèæç#+´(ê#-çµæê·´¹ì€ã+ç·èëµ-#Ã¶ë¹ -.-N îï F* ?&e •Ša• •Nh 7#! îïø O¯n
  • 42. !> "#$ %&% '()*+, &-./0 1234567 …r† ü 23JN ošiÊ.ϸ52• [ϸ52• 6ϸs.uqr Áή* ¢h#¸ ü 23JN Uˆ¡ U G} rg lËn 6“ ýN §–L ‚©M' wšRh# ošiÊ. ü ˜I< Ö× æó) ƒô, ìF s.u 52• [ 52• 6 ü ]%,Š5 õ& ü ,/D /M² ðñò5 ´`µö^%ÕHI •ˆ²mn ü •ƒP Õ? ÷CøI V+:Û« •ƒP Õ5 ùú7 «ËûÖ k{ •u ü •ƒP ü5 {ƒÕ? XøI Z[? PF:ý ²mn%þÿ%wAl • ƒP üªë wA Z[D !-‘¸ ",m ü •ƒP ü7 •u:P ‚¸më ðñò¸ Ö# ìF Z[$%D Žª Z[D zK²m ü ç&GHI V+ T,U‘ !- ¡m ü •ƒP üÊ •ƒP ÕO ã~9¬- ˜I<I /M¬Ö '(D wAl )*I •ã~97 š+{, lmn 7#7 23J
  • 43. !? "#$ %&% '()*+, &-./0 1234567 (456 ‡#ˆ ü -.-LM SFT 23–• .rÇMFh# ü -.-L Ìÿ% SFT^ ÌMa} Þrßw vˆ îïw O¯nL 9:%h# ü .rÇMN O¯ne +•} ¢N -.- Þrßà CI f„%h# 7#$ -.- ù©FMB
  • 44. !! "#$ %&% '()*+, &-./0 1234567 (456 ‡#ˆ public class SimpleProducer { private final static Logger logger = LoggerFactory.getLogger(SimpleProducer.class); private final static String TOPIC_NAME = "test"; private final static String BOOTSTRAP_SERVERS = "my-kafka:9092"; public static void main(String[] args) { Properties configs = new Properties(); configs.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, BOOTSTRAP_SERVERS); configs.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName()); configs.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName()); KafkaProducer<String, String> producer = new KafkaProducer<>(configs); String messageValue = "testMessage"; ProducerRecord<String, String> record = new ProducerRecord<>(TOPIC_NAME, messageValue); producer.send(record); logger.info("{}", record); producer.flush(); producer.close(); } } < > < `IaC‘ /M:|& :¸ XY > -`- —y)U C.5 $º°#Ê …. ? ? •ƒP üÿ •ƒP Õ? ã~9:Ö kl ã~9 —/) ! ! •ƒP Õ ! -`- ˜I<I T,U7 ÐûÖ k{ .½º¼01¯½2¯1º½¼7 •ˆ 8 •ˆl .½º¼01¯½2¯1º½¼7 /M:Ö k{ °¯Ì¼7 Â3 °¯Ì¼ov¸ þ4G“ /M, ž5ª KL )*I h-C ˜I<D /Mlmn 9 ǹ0°$ov7 ¤{ `IaC ûB .6D ¡7 ðñò KL7 ˜I<I /Mlmn 8 9 : : Ô½º¼01¯½ “)8)5 +()!? E/:ý ù9lmn 7#$ -.- ù©FMB
  • 45. !8 "#$ %&% '()*+, &-./0 1234567 op #P, qrst& .½º¼01¯½2¯1º½¼ klm T klm n .ƽ#"#"ºÌ¯½ °¯Ì¼ov u$ = u$ < 12 8 u$ = u$ < 12 9 8::;<;=>?@A :¯Ì¼¯½ -`- —y)U "$BC DEFGHI (456 ‰Š ‹Œ ü îïø 52• 6'e ;ˆaÍh# ü ¶ê¹4³» 52•+ Èe®˜ *V O¯nqr 9:° ÅG• ˆ4‹h# ü SFT^ 9:a6 9L *¾Î2FTL SFT^ |€r ÏZL} J:%h# $%& '()* +, -./ 0123 456 78 '(9:; #,2# <=> ?@ '()=/ #, ABCDEFGHIJDKLMNOGJDJDFCPGQ 01 0 RS* T U VW 7#$ -.- ù©FMB
  • 46. !9 "#$ %&% '()*+, &-./0 1234567 (456 bŠ •y ü 'ëë·¶·µçã#¶êµ(굶ä .rÇM+ SFT^ 9:¡ þ= -.- ùúiTL „% Þrßw ÈiB F*ä·B ü æê>#¶êµ´ç+´Bêµä¸23Jw 52• [^ CDQaN ùài^ •ˆ ü (ç+ºê#¶êµ´ç+´Bêµä 23Jw 52• 6e CDQaN ùài^ •ˆ ü çéæ¶ä¸.rÇM+ 9:% SFT+ Þrß)L ˆ=¦qr ¬-®gN• 9: ÎÐ ž«^ ÐG ü 'ºèèêµ#-ê-ëµ>ä¸Þrßr 9:¡ SFT^ YÙr q6 Õ4 ;ˆ¡ |€ 5 lÑ# 686 77ÒÒ$$7!³7!ôó» ü µê·µ´ê¶ä¸.rÇM+ Þrßr«T Lú^ q} Ó ] v9:e 2zaN ÔU^ •ˆ#¸686 !($./7Õ$. ü 'ç·éâ#¶´Bêä¸YÙr 9:¡ 23J üþ §–# 686 (Õ7/$ ü +´¹ìêµ#-¶ä YÙ^ 9:a6 9X• 6hlN ü? 2“# 686• " ü ãçµ·´·´ë¹êµ#é+綶ä¸23J^ O¯nL 9:¡ " ¦§aN O¯bc ùài ü ê¹ç'+ê#´4ê-ãë·ê¹éêä¸Ö×Î .rÇMr t3¡• ž«^ ;ˆ# 686• èç+¶ê ü ·µç¹¶çé·´ë¹ç+#´4ä¸.rÇM+ 23J^ 9:¡ " 23J^ BØÙn PÕr ~e• ž«^ ;ˆ ÌU %n ÌÚ %n 7#$ -.- ù©FMB
  • 47. !: "#$ %&% '()*+, &-./0 1234567 Ž•• .‘ <’ =+>‘ ,f“€ (456 public class ProducerWithKeyValue { private final static Logger logger = LoggerFactory.getLogger(ProducerWithKeyValue.class); private final static String TOPIC_NAME = "test"; private final static String BOOTSTRAP_SERVERS = "my-kafka:9092"; public static void main(String[] args) { Properties configs = new Properties(); configs.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, BOOTSTRAP_SERVERS); configs.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName()); configs.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName()); KafkaProducer<String, String> producer = new KafkaProducer<>(configs); ProducerRecord<String, String> record = new ProducerRecord<>(TOPIC_NAME, "Pangyo", "23"); producer.send(record); ProducerRecord<String, String> record = new ProducerRecord<>(TOPIC_NAME, "Busan", "21"); producer.send(record); producer.flush(); producer.close(); } } 7#$ -.- ù©FMB
  • 48. !Q "#$ %&% '()*+, &-./0 1234567 Ž•• .‘ <’ =+>‘ ,f“€ (456 12 = < f< f< g< g> = < > ? f> f> f> f> g< g> g? g! #P, h= #P, h< wAl •ƒP ü¸ wAl Z[D PF¬- GȲm > f< g? ? f! g< ! f! g> 8 f! g? 9 f< g! 7#$ -.- ù©FMB
  • 49. !; "#$ %&% '()*+, &-./0 1234567 ^a” ?x•–‘ <•€ (456 !"#$%&'&$())'*+,-"&.+/%012")0,3*(+0%0%,4.+'5 !+%6(0.'7%4($')0(0%&'8,99.+'$,99.+':'8,99.+;(&0,+<=9.08,99.+>*+,-"&.+/%012")0,3*(+0%0%,4.+=&$())?@ !+%6(0.'7%4($')0(0%&'A0+%49'BC*D2EFGHI':'J0.)0J@ !+%6(0.'7%4($')0(0%&'A0+%49'KCCBABLG*EAILMILA':'J3<NO(7O(PQRQSJ@ !"#$%&')0(0%&'6,%-'3(%4>A0+%49TU'(+9)?'5 *+,!.+0%.)'&,47%9)':'4.V'*+,!.+0%.)>?@ &,47%9)=!"0>*+,-"&.+2,47%9=KCCBABLG*EAILMILAE2CF;DWX'KCCBABLG*EAILMILA?@ &,47%9)=!"0>*+,-"&.+2,47%9=YIZEAILDG8D[ILE28GAAE2CF;DWX'A0+%49A.+%($%.+=&$())=9.0F(3.>??@ &,47%9)=!"0>*+,-"&.+2,47%9=MG8]IEAILDG8D[ILE28GAAE2CF;DWX'A0+%49A.+%($%.+=&$())=9.0F(3.>??@ &,47%9)=!"0>*+,-"&.+2,47%9=*GLBDBDCFILE28GAAE2CF;DWX'2")0,3*(+0%0%,4.+=&$())?@ Y(7O(*+,-"&.+^A0+%49X'A0+%49_'!+,-"&.+':'4.V'Y(7O(*+,-"&.+^_>&,47%9)?@ *+,-"&.+L.&,+-^A0+%49X'A0+%49_'+.&,+-':'4.V'*+,-"&.+L.&,+-^_>BC*D2EFGHIX'J*(49<,JX'JS`J?@ !+,-"&.+=).4->+.&,+-?@ !+,-"&.+=7$")1>?@ !+,-"&.+=&$,).>?@ a a < <); Z[$% PF < 7#$ -.- ù©FMB
  • 50. 8= "#$ %&% '()*+, &-./0 1234567 ^a” ?x•–‘ <•€ (456 public class CustomPartitioner implements Partitioner { @Override public int partition(String topic, Object key, byte[] keyBytes, Object value, byte[] valueBytes, Cluster cluster) { if (keyBytes == null) { throw new InvalidRecordException("Need message key"); } if (((String)key).equals("Pangyo")) return 0; List<PartitionInfo> partitions = cluster.partitionsForTopic(topic); int numPartitions = partitions.size(); return Utils.toPositive(Utils.murmur2(keyBytes)) % numPartitions; } @Override public void configure(Map<String, ?> configs) {} @Override public void close() {} } < > < •ƒP ü‘ .ÌÆ»<ºA •· Z[ ]±HI PF > .ÆÌ»<º‘ ž= •ƒP ü5 ðñò¸ {ƒÕ? PF:; ¥F Z[D >?¬4@ ìF 7#$ -.- ù©FMB
  • 51. 8< "#$ %&% '()*+, &-./0 1234567 ]4^ —˜ ,f ™š‘ ›A“€ (456 public class ProducerWithAsyncCallback { private final static String TOPIC_NAME = "test"; private final static String BOOTSTRAP_SERVERS = "my-kafka:9092"; public static void main(String[] args) { Properties configs = new Properties(); configs.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, BOOTSTRAP_SERVERS); configs.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName()); configs.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName()); KafkaProducer<String, String> producer = new KafkaProducer<>(configs); ProducerRecord<String, String> record = new ProducerRecord<>(TOPIC_NAME, "Pangyo", "23"); producer.send(record, new ProducerCallback()); producer.flush(); producer.close(); } } !"#$%&'&$())'*+,-"&.+2($$#(&O'%3!$.3.40)'2($$#(&O'5 !+%6(0.'7%4($')0(0%&'8,99.+'$,99.+':'8,99.+;(&0,+<=9.08,99.+>*+,-"&.+2($$#(&O=&$())?@ bC6.++%-. !"#$%&'6,%-',42,3!$.0%,4>L.&,+-H.0(-(0('+.&,+-H.0(-(0(X'Ic&.!0%,4'.?'5 %7'>.'d:'4"$$? $,99.+=.++,+>.=9.0H.))(9.>?X'.?@ .$). $,99.+=%47,>+.&,+-H.0(-(0(=0,A0+%49>??@ a a < ˜I<5 AB, ´ë .½º¼01¯½Cƹ¹DÆ1Å Â3 < 7#$ -.- ù©FMB
  • 52. 8> "#$ %&% '()*+, &-./0 1234567 ]4^ —˜ ,f ™š‘ ›A“€ (456 Åt6r ‡ø^ qN &N /Ó „zr ]l¡ U ¢•' 9:aN SFTwmM+ £ÿ% &N E§a˜ ÍRh# ü Åt6r ‡ø^ 6hlN tÍ h,qr 5Û SFTw 9:F ÎÐa} ÜM 5• SFTw ‡ø+ ‚ƒ¡ &N v9:qr G4 SFT mM+ Ü9° U ¢6 "™Fh# ü gúÝr SFTw mM+ £ÿah˜ t6r 9: ‡ø^ qZK %h# 7#$ -.- ù©FMB
  • 53. 8? "#$ %&% '()*+, &-./0 1234567 89: ‡#ˆ public class SimpleConsumer { private final static Logger logger = LoggerFactory.getLogger(SimpleConsumer.class); private final static String TOPIC_NAME = "test"; private final static String BOOTSTRAP_SERVERS = "my-kafka:9092"; private final static String GROUP_ID = "test-group"; public static void main(String[] args) { Properties configs = new Properties(); configs.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, BOOTSTRAP_SERVERS); configs.put(ConsumerConfig.GROUP_ID_CONFIG, GROUP_ID); configs.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class.getName()); configs.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class.getName()); KafkaConsumer<String, String> consumer = new KafkaConsumer<>(configs); consumer.subscribe(Arrays.asList(TOPIC_NAME)); while (true) { ConsumerRecords<String, String> records = consumer.poll(Duration.ofSeconds(1)); for (ConsumerRecord<String, String> record : records) { logger.info("record:{}", record); } } } } < > ? ! 8 9 < XY ,Á? :#½"Ì»HI PF > XY5 T,U7 ‘àE -`- —y)U5 ….ÿ%Ôº½#7 FG ? b-c HI ,Á? JKlmn b-c HI? ¤{ b-c5 xG? Lz ! `IaC‘ ã~9:; /Ml T,U7 •ã~9:Ö kl —/)7 PF 8 b-cDý XY? M:Ö k{ °0D°1½"D¯ov •Cò7 •u 9 b-c¸ Ôº¹¹ov •Cò7 Â3:; T,U7 ‘àÊC V+lmn 7#$ -.- ù©FMB
  • 54. 8! "#$ %&% '()*+, &-./0 1234567 89: ‰Š ‹Œ îïw O¯nqr«T SFT^ +È+6 Õ4 ÉÊË^ _`aN ¼×• D1 !+•+ ¢h# ü (9 F=w ÉÊËr F7*‹ ÉÊË ghe _`aN Å ü îïw vˆ O¯n' ÁÞaN ÉÊË^ _`aN Å 7#$ -.- ù©FMB
  • 55. 88 "#$ %&% '()*+, &-./0 1234567 89: ‰Š ‹Œ #P, = #P, < #P, > 12 vwx = 567 JK b-c ^™I ,N-§ b-c HI, d™5 Z[D M ü ÉÊË ghqr ~G ÉÊË)• îïw (9 F= O¯n)L ¡R®* SFT^ +ÈW U ¢h# 7#$ -.- ù©FMB
  • 56. 89 "#$ %&% '()*+, &-./0 1234567 89: ‰Š ‹Œ b-c _™ÿ b-c d™“ •· ü ÉÊË ghqr ~G ÉÊË+ îïe ÁÞ4M SFT^ +ÈW "Ï (9w O¯n• üþ (9w ÉÊËL ¡R +Ñah# ü (9 ÉÊËN žú 9w O¯nL ¡R° U ¢h# ü Fú% vßqr ÉÊË ghw ÉÊË 9UN +È+}¿ aN îïw O¯n 9U5h ª½Ø 3ZK %h# #P, = #P, < #P, > 12 vwx = 567 JK vwx < #P, = #P, < #P, > 12 vwx = 567 JK vwx < vwx > 7#$ -.- ù©FMB
  • 57. 8: "#$ %&% '()*+, &-./0 1234567 89: ‰Š ‹Œ b-c ^™‘ O| ¡¸ €P ü ¿^ )*Ï 79w O¯ne +‹ îïe §ø¦qr ]la6 Õ4MN 79 Faw ÉÊËr F7*‹ ÉÊË ghqr _` 4K %h# ü '• 79w ÉÊËr F7*‹ ÉÊË ghqr 79w O¯ne +‹ îïLM SFT^ +È+6 Õ4 ¡Ra˜ (9w ÉÊ ËN O¯ne ¡Rq• àa} Äá =Žr â1 Rh# #P, = #P, < #P, > 12 vwx = 567 JK vwx < vwx > vwx ? 7#$ -.- ù©FMB
  • 58. 8Q "#$ %&% '()*+, &-./0 1234567 89: œ•1 žŸ wÖ IãHI Qž‘¸ D,/q 1=+•, b-c HIHI GÈ Iã? z+:; J2 ü ÉÊË gh• hÓ ÉÊË ghø ãl®N vße +•} ¢h# ü ¿^ )*Ï _` M|w dÿ l?iG ä);ϸ5 l ˆ5^ UVaN SFT OF.©Ge Áå%h} +ˆ ü ‚2“ l?i^ 2“mqr ÐGa6 Õ4M SFT^ æ©içMÙL ¬-a} Fà t2L þ§– ¦v^ Õ4 aèL ¦v ¡ ÅFh# )ys z{ |}s~•$ €e •‚ €e +() šR D,/q |}s~ •$ •‚ )ys z{ &-ƒ• +() šR D,/q #P, = #P, < #P, > XY vwx = Sª)TCL b-c HI vwx = vwx < vwx > :U GÈ b-c HI |}s~ •$ •‚ X?Y=/ YZ [ 2]^ _`^ ab2> cd YZ^ e^fT U VW ghi jk=/ lm=/n _`o p5qr stu vwv xyz{ vwv xy 7#$ -.- ù©FMB
  • 59. 8; "#$ %&% '()*+, &-./0 1234567 89: œ•1 e ü ÉÊË ghw ÉÊËL -j+ JŠa˜ *é1 °XY¸ ü ÉÊË ghqr F7*‹ ÉÊË) £ 0« ÉÊËL -j+ JŠa˜Ï¸-j+ JŠ% ÉÊËL ¡RR O¯n• -j+ JŠ a• •• ÉÊËL ?ÄêF ë*“h#¸ ü Fú% øˆe •lœ•U³µê+ç+ç¹é´¹ì»•F©} «Óh# b-c 01 ¨• ƒ +VWÏ ¨• +VWÏO sý X ‘P ŠYDC A-Zmn ^nb-c‘ [‘¬¸ ŠY _nb-c‘ £¬¸ ŠY #P, = #P, < #P, > 12 vwx = 567 JK vwx < vwx > #P, = #P, < #P, > 12 vwx = 567 JK vwx < vwx > 7#$ -.- ù©FMB
  • 60. 9= "#$ %&% '()*+, &-./0 1234567 89: Ÿ¡¢i ü lœ•U• ħa•' ¿d 0*ØMN Í Rh#¸ ü lœ•UF JŠ¡ " O¯nw ?Äêe ÉÊËr v¡RaN øˆLM 4R ÉÊË ghw ÉÊË)F îïw SFT^ ìe U G6 "™Fh#¸ ü gh ˆ¿³ìµëºã¸éëëµ4´¹ç·ëµ»N lœ•Ue Jt2[N Ü¡e aNS ÉÊË ghw ÉÊË+ |+®1 wš° " í •%h#¸ ü -.- Þrß £ % þ+ gh ˆ¿w Ü¡e U}%h# ü ÉÊËN -.-w Þrßr«T SFT^ *†X• +È[N• ßie f4 6•%h# ³Þrß îïä jjé빶º-êµjëèè¶ê·¶» b-c¸ V+ @9l ðñò5 ´`µ? <]lm vwx = 567 JK 3 4 L M N OPI 12 #$% LGJJXZ FGRR23XZ 7#$ -.- ù©FMB
  • 61. 9< "#$ %&% '()*+, &-./0 1234567 p(q ^£ ü s.u ßi• ÉÊË jklmFnLM <2¦Ï¸Å<2¦qr U}¡ U ¢h#¸ ü Ö# ¾O Ôº¹¹ov%•Cò‘ š+^ ' AF ô_`m ´`µ? <]lmn ü ,aý AF ô_`m &wHI <]¬¸ "? tbƒG c´`µ <]c,ª | Bdmn% ü , ¾O Æ0#ºn1ºÑÑ"#n"Ì#¯½eƹnÑ°D ìF² Õ ,Š, Pf? ' H ƒg¶P hO ðñò7 ´`µ? <]lmn% ü :Pi Ôº¹¹ov%•Cò Â3 ,j +VWÏ â¸ b-c k£ ù9 ƒ b- c‘ V+:¸ T,U‘ ³¢ ⸠æç^ š ¡¸ ‘‰ˆ, ¡¸ lml LÃ7 ‘P| ¡mn ü bƒG ´`µ? <]:œë Ôº¹¹ov%•Cò Â3 ,jD 1ºÑÑ"#:<Ì1ov%• Cò7 Â3:ë ²mn% ü 1ºÑÑ"#:<Ì1ov%•Cò¸ Ôº¹¹ov%•Cò7 ¤{ n”² ðñò5 ‘0 `P o ´`µ? Ö×HI <]? š+lmn% ü 1ºÑÑ"#:<Ì1ov%•Cò¸ ˜I<D <] êp? :| <], FŠGHI V +¬q¸P AB:Ö¶P Öm+¸T ,¸ b-c5 V+WD 23? rsmn% ü T,U V+ ƒôD t{ <] êp t ABD ƒô, ´/ uvmë wA ƒô M T,U V+W, w-!Ö '(,mn% ü ,7 {x:Ö k{ 1ºÑÑ"#y°<Ì1ov%•Cò7 •u:; <] êp? /M: | AB, ´Ö /¶P T,U V+7 š+ š ¡mn% ü :Pi twÖ <]O <] êp, çz{? •· |È V+ ³“ T,U5 ÷ C7 Ð0:P ‚H} T,U5 ³¢ V+‘ ¨• š ¡mn Å<2¦ s.u ßi <2¦ s.u ßi 7#$ -.- ù©FMB
  • 62. 9> "#$ %&% '()*+, &-./0 1234567 89: ¤š ¥| ü ÉÊËN ãë++³»¸5MJ^ f4 23J)e =@q•' ãë++³»¸5MJ^ ÈeaN 2–L ùúiTLM SFT^ +ÈsN Å• Zîh#¸ ü ÉÊË jklmFne ‚}a1 ®˜ ª«LM °ê·éâ굸Giïi+ ŠÎ®* ãë++³»¸5MJ^ Èea6 9L ³l 23J )e ª« ¾r +ÈŸh#¸ ü F¨L E§¿+ <2¦qr ãë++³»¸5MJ^ Èea˜ ÉÊËN ª« ¾L ¢N 23J)e =@qZ ]l^ U}%h# b-c ûB Là „K3F4KM FGRLJK3KN„K3F4KI …GHIORKM†KFGMNI LGJJXZ 567 DEFGHI -`- —y)U 7#$ -.- ù©FMB
  • 63. 9? "#$ %&% '()*+, &-./0 1234567 89: bŠ •y ü 'ëë·¶·µçã#¶êµ(굶ä .rÇM+ SFT^ 9:¡ þ= -.- ùúiTL „% Þrßw ÈiB F*ä·B ü æê>#4ê¶êµ´ç+´Bêµä¸23Jw 52• [^ ÜCDQaN ùài^ •ˆ ü (ç+ºê#4ê¶êµ´ç+´Bêµä 23Jw 52• 6e ÜCDQaN ùài^ •ˆ ü ìµëºã#´4ä¸ÉÊË gh ZF†^ •ˆ%h#¸ ü 纷ë#ëèè¶ê·#µê¶ê·ä¸ÉÊË ghF vˆ O¯ne ìe " ¬-R ÉÊË s.uF GN &N *V s.u«T ìe• ÌÚaN %nFh#¸F³ ÉÊË s.uF ¢h˜ F %n6• ð2Rh#¸³+綷궷ϸêçµ+´ê¶·Ï¸¹ë¹ê»¸ ü 纷ë#éë--´·#´¹·êµ(ç+#-¶ä¸¿t ßi0 &N s.u ßi “ãe •ˆ%h#¸686• Ò"""³ÒŒ»Fh# ü -çñ#ãë++#µêéëµ4¶ä¸ãë++³»¸5MJ^ f4 =@®N 23J 9U^ •ˆ%h#¸686• Ò""Fh# ü ¶ê¶¶´ë¹#·´-ê뺷#-¶ä¸ÉÊË+ Þrßà s‡F ™6N üþ 2“Fh#¸686• (""""³("Œ»Fh# ü âêçµ·'êç·#´¹·êµ(ç+#-¶ä¸aBÅB^ 9:aN 2“ “ãFh#¸686• 7"""³7Œ»Fh# ü -çñ#ãë++#´¹·êµ(ç+#-¶ä¸ãë++³»¸5MJ^ ÈeaN “ãw üþ 2“e •ˆ%h#¸686• 7"""""³ÒX»Fh# ü ´¶ë+ç·´ë¹#+ê(ê+ä¸BØÙn .rÇM+ 23J^ BØÙn PÕr 5Û &N E§%h#¸686• µêç4jº¹éë--´·ê4 ÌU %n ÌÚ %n 7#$ -.- ù©FMB
  • 64. 9! "#$ %&% '()*+, &-./0 1234567 89: ¦§ p(q ^£ !"#$%&'&$())'2,4)"3.+/%01A<4&2,33%0'5 !+%6(0.'7%4($')0(0%&'8,99.+'$,99.+':'8,99.+;(&0,+<=9.08,99.+>2,4)"3.+/%01A<4&2,33%0=&$())?@ !+%6(0.'7%4($')0(0%&'A0+%49'BC*D2EFGHI':'J0.)0J@ !+%6(0.'7%4($')0(0%&'A0+%49'KCCBABLG*EAILMILA':'J3<NO(7O(PQRQSJ@ !+%6(0.'7%4($')0(0%&'A0+%49'WLC]*EDe':'J0.)0N9+,"!J@ !"#$%&')0(0%&'6,%-'3(%4>A0+%49TU'(+9)?'5 *+,!.+0%.)'&,47%9)':'4.V'*+,!.+0%.)>?@ &,47%9)=!"0>2,4)"3.+2,47%9=KCCBABLG*EAILMILAE2CF;DWX'KCCBABLG*EAILMILA?@ &,47%9)=!"0>2,4)"3.+2,47%9=WLC]*EDeE2CF;DWX'WLC]*EDe?@ &,47%9)=!"0>2,4)"3.+2,47%9=YIZEeIAILDG8D[ILE28GAAE2CF;DWX'A0+%49e.).+%($%.+=&$())=9.0F(3.>??@ &,47%9)=!"0>2,4)"3.+2,47%9=MG8]IEeIAILDG8D[ILE28GAAE2CF;DWX'A0+%49e.).+%($%.+=&$())=9.0F(3.>??@ &,47%9)=!"0>2,4)"3.+2,47%9=IFGK8IEG]BCE2CHHDBE2CF;DWX'7($).?@ Y(7O(2,4)"3.+^A0+%49X'A0+%49_'&,4)"3.+':'4.V'Y(7O(2,4)"3.+^_>&,47%9)?@ &,4)"3.+=)"#)&+%#.>G++(<)=()8%)0>BC*D2EFGHI??@ V1%$.'>0+".?'5 2,4)"3.+L.&,+-)^A0+%49X'A0+%49_'+.&,+-)':'&,4)"3.+=!,$$>e"+(0%,4=,7A.&,4-)>f??@ 7,+'>2,4)"3.+L.&,+-^A0+%49X'A0+%49_'+.&,+-'P'+.&,+-)?'5 $,99.+=%47,>J+.&,+-P5aJX'+.&,+-?@ a &,4)"3.+=&,33%0A<4&>?@ a a a ü ãë++³»¸5MJ+ ÈeR F¨L éë--´·õ>¹é³» 5MJ^ Èeaž ßie <2¦qr U}¡ U ¢h# ü Þrßr«T ÉÊË s.u ßiF òÀ®g,e q6X• ÉÊËN SFT^ ^ ]la• •} 6hl6 "™L SFT ]l –F ¦hN vßF ¢h# 7#$ -.- ù©FMB
  • 65. 98 "#$ %&% '()*+, &-./0 1234567 89: ¨¦§ p(q ^£ public class ConsumerWithASyncCommit { private final static Logger logger = LoggerFactory.getLogger(ConsumerWithASyncCommit.class); private final static String TOPIC_NAME = "test"; private final static String BOOTSTRAP_SERVERS = "my-kafka:9092"; private final static String GROUP_ID = "test-group"; public static void main(String[] args) { Properties configs = new Properties(); configs.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, BOOTSTRAP_SERVERS); configs.put(ConsumerConfig.GROUP_ID_CONFIG, GROUP_ID); configs.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class.getName()); configs.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class.getName()); configs.put(ConsumerConfig.ENABLE_AUTO_COMMIT_CONFIG, false); KafkaConsumer<String, String> consumer = new KafkaConsumer<>(configs); consumer.subscribe(Arrays.asList(TOPIC_NAME)); while (true) { ConsumerRecords<String, String> records = consumer.poll(Duration.ofSeconds(1)); for (ConsumerRecord<String, String> record : records) { logger.info("record:{}", record); } consumer.commitAsync(new OffsetCommitCallback() { public void onComplete(Map<TopicPartition, OffsetAndMetadata> offsets, Exception e) { if (e != null) System.err.println("Commit failed"); else System.out.println("Commit succeeded"); if (e != null) logger.error("Commit failed for offsets {}", offsets, e); } }); } } } 7#$ -.- ù©FMB
  • 66. 99 "#$ %&% '()*+, &-./0 1234567 89:1 ©,E ª« ü ˆ=¦qr óÀ®• •• ÉÊËN >n ošZ¤F JŠ¡ "X• ÉÊË ghL â1 Rh#¸ ü Fr G4 ‚šrN óÀ®g•' ^N t3e a• •N ÉÊË+ ûva6 "™L O¯nw SFTN ? ®• àa} ÉÊ Ë ôF S*Ø1 Rh#¸ ü ÉÊË ôF S*ؘ SFT ]l •sF JŠa1 Rh# try { while (true) { ConsumerRecords<String, String> records = consumer.poll(Duration.ofSeconds(1)); for (ConsumerRecord<String, String> record : records) { logger.info("{}", record); } } } catch (WakeupException e) { logger.warn("Wakeup consumer"); } finally { consumer.close(); } static class ShutdownThread extends Thread { public void run() { logger.info("Shutdown hook"); consumer.wakeup(); } } 7#$ -.- ù©FMB
  • 67. $%$ 78 34 56 #$%& $
  • 68. 9Q "#$ %&% '()*+, &-./0 1234567 uvw ?xy ‹îï• -.-w 23ø õFh’ ‹-.-^ E§aN Å• îïe ')˜M 23Rh’ ‹îïe wša˜ SFTN wš®} OF.©G• £PRh’ ‹îïL þ4 ö F4a} ;ˆe öaN ÅF -.-^ f% SFT Ú§z^ ÔFN ±Fh’ $#( îïø O¯n
  • 69. 9; "#$ %&% '()*+, &-./0 1234567 C— ?xy ‹¬ ‹îïw O¯n 9UN -.-w ÎÑø `÷F ¢hÆ îï ŠÎ 2 O¯n 9U }cEø ü SFT ]l– ü 52• [ E§ ž« ü ÞrßϸÉÊË `‡z ‹O¯n• -.-w D]lw ¡xFh’ O¯nw 9U+ —Z•˜ —ZùU• (ä( —ú®N ÉÊËw 9U+ S*Ø6 "™Fh# $#( îïø O¯n
  • 70. := "#$ %&% '()*+, &-./0 1234567 C— ?xy ‹¬ SFT ]l „z^ ûlN ¼×• !+•h#¸ (# ÉÊËw ]l–e SlN Å € M|w EÑe ûlN im0 ü € ìé ýþ !# ÉÊË^ |+4M D]l–e SlN Å € SFT ]l–e SlN +- Ђ% ¼×Fh# € .rÇM+ 5ªN SFT+ ŒR (Ï"""23JF} ÉÊË+ ]l¡ U ¢N SFT+ ŒR (""23J©˜ ü?% Ìÿ% O¯n 9UN ("9Fh# `IaC /M T,UW b-c T,U V+W Z[ ™š . ñ QR 567 SH/ TFUH "$BCV WXY SH/WZ [Z 567 ]H ^_`abSH/ TF cdH e^fZg !"! 567h iej k Xl $mn `opq rs tuvh wH_ xy Zzf {|n pY }v ~Zg $#( îïø O¯n
  • 71. :< "#$ %&% '()*+, &-./0 1234567 Ž•• . -®• ¯°-± ü 52• [^ E§kø t2L SFT ]l mM^ •ÿK aN &NL þ4 }c4K %h#¸ ü 52• [ E§ ž«N SFT ]l mMà !I% s`F ¢h#¸ ü .rÇM+ 68 O¯bc^ E§aN &N^ +ˆa¿#¸ ü 52• [^ E§a˜ .rÇM+ îïqr SFT^ 5Û " 52• [^ 42 ?@až 52• [^ O¯nL —˜2"h# ü '• O¯n 9U+ o©•˜ F³ —˜R O¯nø 52• [w —˜F #•} 9$ hÓ O¯nL SFT+ ¡RRh# Z[ ™š‘ ~ªPÖ ,/R ,j •ƒP üÊ Z[5 >? ’9n%Z[, _™A ' •ƒP ü °¯º0¹O ]±ÿ%•¯•0¸ ^± Z[ HI M¬qmn%Z[, d™A '¸ °¯º0¹ÿ%•¯•0 X ™5 •ƒP ü €X _± Z[HI M¬qmn -`- —y)U #P, = #P, < XY &-ƒ• !"#$%&'()*+, !"-$-&()*., -`- —y)U #P, = #P, < XY &-ƒ• !"#$%&'()*+, !"-$-&()*., #P, > $#( îïø O¯n
  • 72. :> "#$ %&% '()*+, &-./0 1234567 Ž•• . -®• ¯°-± ü 52• [^ E§a} ÉÊËLM 52• ]l mM+ 5-®*K %h˜ üþ% O¯nw ?Q+ JŠa• •N ¼‡qr _ `4K %h#¸ ü 52• [%r ]l mM^ 5-a6 Õ4MN O¯n 9U^ .rÇM+ 9:aN SFTÑ5h ^ &&a1 y} ŠÎaN ÅF Öh# ü ¬•'qr }c4K ¡ –• Þrßà ÉÊËw `‡zFh#¸ ü -.-LM O¯n• œ Þrßw O0 2i†e E§a6 "™L O¯nF S*ØN '( ÞrßLM I)aN O0 9U+ —Z‹h#¸ ü g•S _`yšLMN .r>iR « U ¢N O0 üþ 9U^ š%a} ¢h#¸ ü gúÝr -.- Þrß+ I)aN O0 9U^ ͈¦qr Ä•a6 Õ4MN œ ÞrßR O¯n 9U^ îTI4K %h# $#( îïø O¯n
  • 73. :? "#$ %&% '()*+, &-./0 1234567 uv —Ÿ —²mOTU$SWMQMLTNO³n ü îïw SFTN 2“ ýN §–L ‚© wš …*e ¦§¡ U ¢h#¸SFT^ sàtÍ wša• •q˜ ¬-? E§–F • „¦qr S*Ø1 Rh# ü é+ê繺ã#ãë+´é> %ne E§až SFT^ wš¡ U ¢N !+• wš ˆ+e šÐ%h# ü 4ê+ê·ê³wš»ä¸SFTw ò9 wš ü éë-ãçé·³,å»ä¸t0 52• [w +- sàR SFT^ wšaN Å $#( îïø O¯n
  • 74. :! "#$ %&% '()*+, &-./0 1234567 uv oh —²mVUTU&UMLTNO³n ü îïe _`a˜ 0=¦qr þ«Xw îïw é+ê繺ã#ãë+´é>^ 4ê+ê·êr ;ˆ%h#¸ ü îïw SFT^ wš¡ "N >g‘B PÕr wš^ ‹}ah#¸ ü >g‘BN îïw SFT^ ¬-aN <2¦G O0 2i† PÕFh#¸ ü >g‘BN O¯n¬h %9r ŠÎ®, >g‘Bw O0 F*• s.u £ +- 3• 6F Rh#¸ ü >g‘BN žú Âœqr Ø-NS ¶êì-ê¹·#'>·ê¶ %nqr (9w >g‘B D6^ ;ˆ¡ U ¢h#¸ ü ¶êì-ê¹·#'>·ê¶ D65h ßù &N 6ûL ¦va_ >g‘B O0e ’} Tr_ >g‘B^ «*M SFT^ ¬-%h# ü SFT^ ¬-a6 Õ4 E§ £G >g‘B^ .¯Þ >g‘B©} %h# $#( îïø O¯n
  • 75. :8 "#$ %&% '()*+, &-./0 1234567 uv oh —²mVUTU&UMLTNO³n ü wš ˆ+F ‚}®N 2–• 2“ ýN §–F 6{F Rh#¸ ü µê·ê¹·´ë¹#-¶N îïw SFT^ Ä•aN 6“e !lŒr ;ˆ¡ U ¢h#¸ ü -.-N 0ˆ d6¬h >g‘B O0w ¬•' Uˆ 2“ø µê·ê¹·´ë¹#-¶^ Å/aNSϸ>g‘B O0w ¬•' Uˆ 2“F µê·ê¹·´ë¹#-¶^ ë*+˜ >g‘BN wšRh#¸ ü µê·ê¹·´ë¹#'>·ê¶N îïw üþ SFT D6^ š*%h#¸ ü µê·ê¹·´ë¹#'>·ê¶^ ë*“ >g‘B O0)• wšRh#¸ ü wšR SFTN xÁ¡ U Gh# -`- —y)U XY Z[ = < #$%&' -$-& >= <> ]]n¹º» = < #$%&' -$-& >= <> = #$%&' >= ]_n¹º» ]en¹º» i&j klm T klm n €[˜ •H‚q $#( îïø O¯n
  • 76. :9 "#$ %&% '()*+, &-./0 1234567 uv ´µ —²mOLXM$O&MLTNO³n ü ,å ˆ+• .¯Þ >g‘B^ š¶% ØË• >g‘B)L %4M SFT^ ]l%h#¸ ü SFTw ,å 23 2–• -´¹#é+êç¹ç'+ê#4´µ·>#µç·´ë %n6e ‚Óh#¸ ü -´¹#é+êç¹ç'+ê#4´µ·>#µç·´ë %n6• .¯Þ >g‘B^ š¶% >g‘BL âZ ¢N SFTw ö0 `Üw 23J 9 Uà 0J `Üw 23J 9Uw Å1e 2%h#¸ ü ö0 `Ü• Þrßw ,å ˆ+L w4 ,åF òÀR 23J^ 2%h#¸ ü ö0 `Üw 23J)• •ù³é+êç¹»¸rg•©} «0} ,åF òÀ36 "™L ö0 `ÜLN £xR 52• [+ Gh# ü 0J `Üw 23J)• •^¯³4´µ·>»¸rg•©} «0} ,åF ®6 9 23J^F ¢qÝr £xR 52• [^ +‹ 23 J)F ¢h# XY ÜÝD Žd T,U5 ’9n%‘0 8ƒ5 •ƒP ü ðñòi „Ö| «cP¸ Ú£lmn = < > ? ! 8 9 f< f> f? f? f< f> f< g< g< g< g< g> g> g? •€ • OPI i&j klm T klm n ? 8 9 f? f> f< g> g> g< •€ H‚ OPI i&j klm T klm n $#( îïø O¯n
  • 77. :: "#$ %&% '()*+, &-./0 1234567 uv ´µ —²mOLXM$O&MLTNO³n ü •^¯ Å1³4´µ·>¸µç·´ë»•• ^¯ `Üw 52• 9U^ ,å þ= >g‘BL âZ¢N SFTw 4 23J U³^¯ `Ü 52• 9U 5¸ù `Ü 52• 9U»r Ø6 Å1e 2%h#¸ ü '• ù7 `ÜL 79w 23J+ ¢} ^¯ `ÜL 23J+ 79 ¢h˜ ^¯ Å1• "#ÒFh# ü îïw ,å• -´¹#é+êç¹ç'+ê#4´µ·>#µç·´ë6L ‚© U}Rh#¸ ü '• -´¹#é+êç¹ç'+ê#4´µ·>#µç·´ë %n6e "#Òr ;ˆ¡ &NL ^¯ Å1F "#Ò+ ë*+, ,åF U}Rh#¸ ü -´¹#é+êç¹ç'+ê#4´µ·>#µç·´ë6e "#²Ã ªF D1 ;ˆa˜ %Z ,åe ¡ " —• SFT+ 8*)Ýr ,å §ø+ Dh#¸ ü -´¹#é+êç¹ç'+ê#4´µ·>#µç·´ë^ "#(ø ªF 31 ;ˆa˜ ,åF ^ ¿d 0*Ø6 "™L 9„4M 52• [w ü„ SFT' Ä•¡ U ¢h#¸ ü a•' ,åF ¿d JŠaN '( ÞrßL «:e 8 U ¢h# …Aÿ%†ò 2•5 ðñò7 ‡ƒl Z[ = < > ? ! 8 9 f< f> f? f? f< f> f< g< g< g< g< g> g> g? OPI i&j klm T klm n †ò 2• …A 2• €[˜ •H‚q $#( îïø O¯n
  • 78. :Q "#$ %&% '()*+, &-./0 1234567 ˆ¶·mˆSK¶³SOK·UMTNO$Pn ü ±õñ• l^ O¯nø ŒrC O¯nF L UD+ R =Ž^ 2%h#¸ ü xš 9U+ !G îïe +ˆ45¿#¸ ü F îïLN l^ O¯n (9à ŒrC O¯nF (9+ ûv¡ ÅFh#¸ ü l^ O¯nL "«T 7w s.uF ¢h} +ˆ¡ "ϸŒrC O¯nL t6Q+ òÀ®c˜ "«T 7X• s.uF ûv4K %h#¸ ü l^ O¯nø ŒrC O¯nF t6QR =ŽLMN l^ ýN ŒrC O¯nF ÕÙaN ÞrßL -j+ JŠa^©z SF T^ Í9a1 E§¡ U ¢h# …:2O +© Z[R åIr Z[5 ´`µ, wAl Š*7 ˆlmn XY ? > +© Z[ < = ˜I< ‰] XY ? > åIr Z[ < = ˜I< ‰^ …:2 o…ÌŠ:<Ì1Š2¯Ô¹"1Æ°v $#( îïø O¯n
  • 79. :; "#$ %&% '()*+, &-./0 1234567 ˆ¶·mˆSK¶³SOK·UMTNO$Pn ü ±õñ• l^ O¯nø ŒrC O¯nF L UD+ R =Ž^ 2%h#¸ ü ±õñF©N §*+ ØŸ FÄN ŒrC O¯nF l^ O¯nqr«T SFT^ xšaN SL 2“F ;l6 "™Fh#¸ ü .rÇM+ vˆ O¯nL SFT^ ¬-aN 3ü• l^ O¯ne f4 ]l%h#¸ ü F" l^ O¯nL Tr_ 23J+ |+®* s.uF ¦+a˜ ŒrC O¯nF ÕÙN ÞrßN l^ O¯nw SFT^ xš%h#¸ ü l^ O¯nL SFT+ ¦vR F¨ ŒrC O¯nF xšaN 2“< "™L l^ O¯nø ŒrC O¯n “L s.u <F + JŠ%h#¸ ü F• <F^ îTIa6 Õ4 l^ O¯n• µêã+´éç#+çìÏ·´-ê#-çñ#-¶6'(w d6^ +•} ŒrC O¯nF SF T^ xšaN• ÐG%h#¸ ü '• ŒrC O¯nF µêã+´éç#+çìÏ·´-ê#-çñ#-¶65h ^ = 2“ tÍ SFT^ +È+• •Nh˜ 4R ŒrC O¯ nL ™š+ Š= Åqr >Pa} ±õñghLM š¶%h# åIr Z[, kLl ˜I<¸ +© Z[5 T,U7 ¢£lmn XY +© Z[ ˜I< ‰] `IaC XY åIr Z[ ˜I< ‰^ `IaC $#( îïø O¯n
  • 80. Q= "#$ %&% '()*+, &-./0 1234567 ˆ¶·mˆSK¶³SOK·UMTNO$Pn ü ±õñr ~G l^ O¯nø ŒrC O¯n• O¯nL ûvaN SFT+ L t0a6 "™L ŒrC O¯n• l^ O¯n qr Tr Ìe° ¿ãe +‹h# ü 0« SFT Ä‚F JŠa^©z MÅi^ £Pa• •} •„¦qr îïe E§a} Hh˜ ±õñF ZE ŒrC O¯ne l^r Ìeaz• ;ˆ¡ U ¢h# ü º¹é+êç¹#µêç4êµ#ê+êé·´ë¹#ê¹ç'+ê %ne èç+¶êr ;ˆ¡ &N ±õñF ZE ŒrC O¯ne l^ O¯nqr Ìea • •Nh#¸ ü F &NLN l^ O¯nF ûvaN Þrß+ h2 23° "X• 6hh#¸ ü FÅ• îïe E§aN MÅi+ £P?e 2%h#¸ ü -j+ JŠ% Þrß+ h2 ‚}° "X•N 4R îï• E§¡ U Gh#¸ ü þ„ SFTw Ä‚• JŠa• •Nh# 0Ì1¹¯ÆÌn½¯Æ¼¯½n¯¹¯1#"ºÌn¯ÌÆD¹¯, Çƹ°¯“ •·D¸ +©I J3 åIr Z[, ‹HŒI +© Z[, ¡¸ ˜I<‘ mƒ ç+^ '¶P Ömvmn XY ? > +© Z[ < = ˜I< ‰] XY > åIr Z[ < = ˜I< ‰^ …:2 $#( îïø O¯n
  • 81. Q< "#$ %&% '()*+, &-./0 1234567 ˆ¶·mˆSK¶³SOK·UMTNO$Pn ü º¹é+êç¹#µêç4êµ#ê+êé·´ë¹#ê¹ç'+êe ·µºêr ;ˆaN &NLN ±õñF ZE ŒrC O¯nϸ@ t6Q+ ®• •• ŒrC O¯nz l^r Ìe° U ¢h#¸ ü l^ O¯nF ûvaN ÞrßLM -j+ JŠa} t6Q®• •• ŒrC O¯nF l^r Ìe®˜ l^ O¯nqr«T t6Q+ ®• •• 0« SFTN Ä‚° U ¢h#¸ ü 0« SFT+ Ä‚®N þ„ îïe E§aN MÅiw £P• JŠa• •Nh# 0Ì1¹¯ÆÌn½¯Æ¼¯½n¯¹¯1#"ºÌn¯ÌÆD¹¯, #½0¯“ •·D¸ …:2, ž= åIr Z[ 4 +©I J3^ š ¡mn%01‘ ¨•l ˜I< ‰]5 ´`µ d5 ðñò¸ æç²mn $#( îïø O¯n
  • 82. Q> "#$ %&% '()*+, &-./0 1234567 '(' (456 ü .rÇMN -.-L SFT^ ¬-aN A P9Fh# ü -.- ùúiTN 7þ F=w Þrßr F7*È ¢*M 0« ÞrßL FÊ+ Š6^©z SFTw Ä‚e 'e U ¢h# $#! -.- .rÇM
  • 83. Q? "#$ %&% '()*+, &-./0 1234567 $OIP •y çéæ¶B" ü çéæ¶^ "qr ;ˆaN Å• .rÇM+ l^ O¯nqr SFT^ 9:¥e " l^ O¯nqr SFT+ ¬-®gN• Ð Ga• •NhN 2Fh#¸ ü l^ O¯n• SFT+ ¬-R F¨L SFT+ C ZD s.uL ¬-®gN• lïaNSϸçéæ¶+ "qr ;ˆ®* ¢h˜ .rÇMN l^ O¯nL SFT+ ¬-®gN• ž«L þ% EF 6e q• •Nh#¸ ü g›6 "™L .rÇM+ SFT^ 5• F¨L F SFT+ C ZD s.uL ¬-®gN• ÐG¡ U Gh# Æ1Å°•]“ •· `IaC5 wŽÿ%+© Z[D T,U‘ GȬP ‚©ª4 ˆ•HI •jlmn ü `IaCD¸ T,U5 /M, çz{? ' ȃ47 š ¡4@ ½¯#½"¯°%¾? ìF š ¡¸Tÿ%Æ1Å°‘ ]A ' `IaC¸ /M? :& `& •0¬qi? ‘ F:| mi T,U7 /M:Ö '(D T,U /M, çzl •·7 ‘ š ‹mn% ü ŽªC ½¯#½"¯°‘ _,ŠHI ìF¬- ¡©ª4 ȃ47 :P ‚Ö '(D ½¯#½" ¯°%¾ÕO è5’:mn ü Æ1Å°7 ]HI ìF{? •·ÿ%`IaCÊ ˜I< •,5 pqrs ´ú« ˜I< 5 ,- “HI “{ T,U‘ æ笩ª4 `IaC¸ +© Z[HIBU AB Õ? ”P ‚Ö '(D PéGHI mi T,UI Еmn% ü HaÖ '(D T,U5 /M é4¸ Æ1Å°7 ^%⸠ƹ¹I {? •·Ðm –— ˜ ™mn%T,U‘ AB æç, ¨•:©ª4 /M é4‘ ³êl •·D¸ , ¾Õ ? •u:ë šmn XY +© Z[ ˜I< ‰] `IaC XY åIr Z[ ˜I< ‰^ $#! -.- .rÇM
  • 84. Q! "#$ %&% '()*+, &-./0 1234567 $OIP •y çéæ¶B( ü çéæ¶^ (r ;ˆ¡ &N .rÇMN 5• SFT+ l^ O¯nL' ˆ=¦qr ¦v®gN• ÐG%h#¸ ü '• l^ O¯nL ˆ=¦qr ¦v®• •‘h˜ l^ O¯nL ¦v° "X• v2z¡ U ¢h#¸ ü gúØ l^ O¯nL ¦v®g,e 5-a^©z SFTN Ä‚° U ¢h#¸ ü GHa˜ xš 9U^ !F=qr _`¡ &N l^ O¯nL ¦v+ òÀ®* ¢*z ŒrC O¯nLN ZC SFT+ t6 Q®• •e U ¢NSϸŒrC O¯nF SFT^ xša6 C9L l^ O¯nF ¢N ÞrßL -j+ JŠa˜ t6Q®• à% 0« SFT+ Ä‚° U ¢6 "™Fh# Æ1Å°•^“ •· `IaC5 wŽÿ%+© Z[D T,U‘ •0¬qHë ˆ•HI •jlmn ü Æ1Å°7 ^I ìF:ë +© Z[D T,U‘ GÈ^ '¶P Ömv › AB Õ? ”Ö '(D Æ1Å°7 ]HI ìF:¸ "D t{ /M é4‘ œ+mn XY +© Z[ ˜I< ‰] `IaC XY åIr Z[ ˜I< ‰^ $#! -.- .rÇM
  • 85. Q8 "#$ %&% '()*+, &-./0 1234567 $OIP •y çéæ¶Bç++¸ýN çéæ¶B€( ü çéæ¶^ ç++¸ýN €(r ;ˆ¡ &N .rÇMN 5• SFT+ l^ O¯nø ŒrC O¯nL L ˆ=¦qr ¦v®gN • ÐG%h#¸ ü l^ O¯nI' Zî© ŒrC O¯nX• SFT+ ¦v®gN• ÐGa6 "™L "ýN (¸%n5hz „z+ Vlh#¸ ü gJLz ¸Áa} ŒrC O¯nL SFT+ ˆ= ¦v®gN• 6hl6 "™L 0« ÞrßL -j+ JŠa^©z .rÇ MN Í9a1 SFT^ 9:a} ¬-¡ U ¢,e 5-¡ U ¢h# ü Æ1Å°7 ƹ¹I ìF •· XY jkI ìF ‘‰l Ñ"Ìn"Ì°<Ì1n½¯Ô¹"1Æ° ¾ ÕD Žª T,U5 EFˆ, ~ª§mn% ü ƹ¹%¾ÕO €• +© Z[R åIr Z[5 GÈ7 ˆ:¸ "O ž5| …:2 D ÒÓ² Z[!? ˆ:¸ ",Ö '(,mn% ü Ñ"Ìn"Ì°<Ì1n½¯Ô¹"1Æ° ¾O `IaC‘ +© Z[R åIr Z[D T, U‘ GȬq¸P –“:Ö kl 8( …:2%HI5 Z[ ™š,mn% ü ž7 !ë Ñ"Ìn"Ì°<Ì1n½¯Ô¹"1Æ°5 ¾Õ, ^,ªë …:2%³ 8( ^™ ,Š5 Z[D T,U‘ GȬqi? –“:¸ ",mn% ü , •· Æ1Å°7 ^I {? 'Ê wAl wŽ? :¸Tÿ%Ÿ :ë …:2%³ ‘0 V i GÈ‘ @9¬¸ Z[O +© Z[,Ö '(,mn Æ1Å°•Æ¹¹“ •· `IaC5 wŽ XY +© Z[ ˜I< ‰] `IaC XY åIr Z[ ˜I< ‰^ $#! -.- .rÇM
  • 86. Q9 "#$ %&% '()*+, &-./0 1234567 $OIP •y çéæ¶Bç++¸ýN çéæ¶B€( ü Ñ"Ìn"Ì°<Ì1n½¯Ô¹"1Æ°5 ¾Õ? _I ìF{? 'BU Æ1Å°7 ƹ¹I ìF:¸ 5 ’‘ ¡mn% ü , •· …:25 _™ ,Š5 Z[D T,U‘ FŠ GȬqi? –“lm¸ ˆ,mn% ü …:25 _™ ,Š5 Z[D GȬqi? –“lm¸ ˆO G-4 +© Z[R ^™ 5 åIr Z[D T,U‘ FŠGHI GȬqi? Ð0lmn Æ1Å°•Æ¹¹ÿ%Ñ"Ìn"Ì°<Ì1n½¯Ô¹"1Æ°•^“ •· `IaC5 w Žn%Æ1Å°7 ^I {? 'Ê wA:mn XY +© Z[ ˜I< ‰] `IaC XY åIr Z[ ˜I< ‰^ …:2 $#! -.- .rÇM
  • 87. Q: "#$ %&% '()*+, &-./0 1234567 $OIP •y ü -´¹#´¹¶>¹é#µêã+´éç¶^ ;ˆ¡ "N xš 9Uz kl }c4K %h#¸ ü GHa˜ _`aN -.-w Þrß 9U+ -´¹#´¹¶>¹é#µêã+´éç¶w %n65h 3• &NLN .rÇMN ^N SFT^ 9:¡ U G6 "™Fh#¸ ü xš 9U^ 7qr ;ˆa} -´¹#´¹¶>¹é#µêã+´éç¶^ 7qr ;ˆaN &N^ ¿r ) U ¢h#¸ ü Þrß 7þ £ (þL FÊ+ JŠaž t3a• àaN =£F Š6˜ .rÇMN SFT^ 4R îïL ^N 9:¡ U Gh# ü GHa˜ ü?%w xš®*K aN O¯n 9U+ 7GS ŒrC O¯nF ÕÙ¡ Þrßw 9U+ «Ka6 "™Fh#¸ ü F &NLN »ë·L¹ëºìâñêã+´éç¶Lñéêã·´ë¹ ýN »ë·L¹ëºìâñêã+´éç¶Aè·êµAããê¹4Lñéêã·´ë¹F JŠaž ^N îïqr SFo^ 9:¡ U Gh# ü -´¹#´¹¶>¹é#µêã+´éç¶ %ne ;ˆ¡ " |+r dw4K ¡ –• Mþr Þrß 9Uà t0% t¿r ;ˆa˜ Í Rh N ÅFh#¸ ü Þrß 7þr ùúiT^ _`a˜M -´¹#´¹¶>¹é¶#µêã+´éç¶ %ne 7qr ;ˆaN &N^ ¿r ) U ¢h#¸ ü F• =£LM -.- ùúiTw |9 üg2FJà ª• =£F JŠa˜ ÷rßN •I h_ ošF Š6NSϸÞrß+ ( 9©z £P®˜ .rÇMN SFT^ |+¡ U Gh#¸ ü gúÝr îï% -´¹#´¹¶>¹é#µêã+´éç¶ %n6• Þrß 9U ³'qr ;ˆ4M _`4K %h# $#! -.- .rÇM
  • 88. QQ "#$ %&% '()*+, &-./0 1234567 $OIP •y ü =§@&LMN 0=¦qr Þrß^ 7þ F=qr ~* ùúiT^ _`aNSϸF –e }caž .rÇM+ SFT^ +- ͈¦qr 5ªc˜ îïw xš 9UN 7ϸ-´¹#´¹¶>¹é#µêã+´éç¶^ !r ;ˆa} .rÇMN çéæ¶^ ç++r ;ˆaN Åe |N%h# Æ1Å°•Æ¹¹ÿ%½¯Ô¹"1Æ#"ºÌnÇÆ1#º½•dÿ%Ñ"Ìn"Ì°<Ì1n½¯Ô¹"1Æ°•d“ •· ˜I< ³ ^ø‘ |0«ë ©¸ XYD T,U7 С š ‹mn XY +© Z[ ˜I< ‰] `IaC XY åIr Z[ ˜I< ‰^ …:2 XY åIr Z[ ˜I< ‰_ $#! -.- .rÇM
  • 89. Q; "#$ %&% '()*+, &-./0 1234567 ¸¹º (456 ü Ö×ÎFð žú Z sze U}a^©z t0% ‡ø^ ØoªN Åe 2%h#¸ ü Fú% w³LM Ö×Î .rÇMN t0% SFT^ žú Z 9:a^©z -.- ùúiTL P % Z' ¬-?e w³%h# ü 68 .rÇMw t3 ¼½• ¦*z %Z 9o³ç·¸+ê綷¸ë¹éê¸4ê+´(êµ>»e •Š%h#¸ ü ¦*z %Z 9oFð .rÇM+ ùúiTL SFT^ 9:až ¬-¡ " ¦*z % Z F= SFT^ ¦v¡ U ¢} SF T+ Ä‚®• •,e 2%h#¸ ü h'ϸL Z F= ¦v¡ +ÑÎF ¢qÝr SFTw £xF JŠ¡ U ¢h# ü .rÇM+ 5ªN SFTw £x ¦v^ '6 Õ4 "#((#"¸F¨ |9«TN .rÇMLM ê¹ç'+ê#´4ê-ãë·ê¹éê%ne E§až ˆÐ” %Z 9o³êñçé·+>¸ë¹éê¸4ê+´(êµ>»e •Š%h#¸ ü ê¹ç'+ê#´4ê-ãë·ê¹éê%nw 686• èç+¶êF, ˆÐ” %Z 9oe Õ4MN ·µºêr %n6e ;ˆ4M Ö×Î .r ÇMr t3az• ')˜ Rh#¸ ü Ö×Î .rÇMN 68 .rÇMà ol SFT^ Þrßr 9o¡ " .rÇM )±ò³)µë4ºé굸º¹´íºê¸±ò»Ã 2Oi ë |^ kl 9o%h#¸ ü gú˜ ÞrßN .rÇMw )±òà 2Oi ë|^ ÐGaž t0% 52•w ¦v ÿ!F s^©z P % Z' SFT^ ¦ vkqr¢ .rÇMw SFTN ˆÐ” %Z ÞrßL ¦v®z• t3%h# $#! -.- .rÇM
  • 90. ;= "#$ %&% '()*+, &-./0 1234567 ¸¹º (456 `IaCÊ ˜I< •,5 pqrs 01I T,U¸ l ± ,Š /~^ š ¡mn ¢“ˆ `IaCI wŽ •· pqrs 01‘ ¨•:©ª4 ˜I<D wAl •ƒP¸ GÈ:P ‚¸mn%¢“ˆ `IaC‘ /M:¸ T,UD .…£Ê ƒ¤) ¥.‘ ¡¸Tÿ%˜I<¸ .…£Ê ƒ¤) ¥.I ³¢? ¦s:Ö '(,mn jÿ%¢“ˆ `IaC¸ wAl •DCi F–§ l± /~? Ð0lmn%;ÖC ¨:¸ wAl •,© .…£5 •bªÖ7 ˆlmn%im ¢“ˆ `IaCI w Ž:¸ `IaC 1=+•,D ,-‘ ¨•:; ù9¬| 1=+•,? ȃŽ:ë .…£‘ ~ª§mn `IaC Z[ «^ ˜I< °¯Ì¼ov `IaC Z[ «^ ˜I< Æ1Å° `IaC Z[ «^ «^ ˜I< °¯Ì¼ov `IaC Z[ «^ ˜I< Æ1Å° «^ `IaC Z[ «^o°¯¬•]v ˜I< °¯Ì¼ov `IaC Z[ «^o°¯¬•]v ˜I< Æ1Å° `IaC Z[ «^o°¯¬•]v ˜I< °¯Ì¼ov `IaC Z[ «^o°¯¬•]v ˜I< Æ1Å° $#! -.- .rÇM
  • 91. ;< "#$ %&% '()*+, &-./0 1234567 '(' 89: – »x a…† 89: ü -.-N ]l–e Sl6 Õ4 O¯nø ÉÊË 9U^ ScM _`¡ U ¢h#¸ ü O¯ne žú 9r _`aN &N SFT^ D]la6 Õ4M O¯n 9Uà ÉÊË 9U^ t0a1 P|N ÅF +- Ö • ¼×Fh#¸ ü îïw O¯n• (9 F=qr F7*È ¢q, (9w O¯n• (9 ÉÊË+ ¡R®* SFT^ ]l¡ U ¢h#¸ ü O¯n 9U+ ¹9©˜ t0 ÉÊË ghqr ~G ÉÊË i2J^ üþ ¹9 _`¡ U ¢h#¸ ü gúÝr ¹9w i2J^ +‹ (9w .r>i^ _`a½Ø (9w i2J^ +‹ .r>M^ ¹9 _`aN ¼×z ¢h# d™5 `I•CI wŽ:¸ b-c HI yÿ%^™ `I•)Ê d™ )ðòI wŽ:¸ b-c HI ü b-c7 -[ )ðòI ®u:¸ ¯°O sý X ‘PI «±mn ü ² ±³¸ b-c )ðò¸ ^™i ç+:| T,U7 V+7 ØM:¸ r s )ðò7 ;y ™ ç+:¸ ¯´“ -[ rs )ðò /µ,mn% ü X ±³¸ b-c “)8)DC Ôº¹¹ov%•Cò7 Â3:¸ )ðò7 ;y ™ ¶rC •u:¸ b-c -[ )ðò /µ,m. XY Z[ ] Z[ ^ Z[ _ b-c )ðò ] `I•) b-c )ðò ^ `I•) b-c )ðò _ `I•) b-c HI y b-c )ðò ] `I•) b-c HI · b-c )ðò ^ b-c )ðò _ $#7 -.- ÉÊË
  • 92. ;> "#$ %&% '()*+, &-./0 1234567 '(' 89: »x ¼j a…† ,½ ü Þrßr«T 9oq• 23J)e Dr ]l%h˜ (9w ÉÊË i2Jr q• SFT)e ^Q ‡=R „zr ]l¡ U ¢h#¸ ü R¯ i2J^ E§a˜ œ6 hÓ 23J)w SFT ]l^ t2L ‚}¡ U ¢6 "™L ]l 2“e u¬” 80 U ¢h# n¢L(HI V+7 @9:¸ ƒôo¸^vÐm }~V+I @9:¸ ƒôo¸_v, © Gý uvmn ƒô ðñò y · C ¸^ Ǻ½%n¢L(HI V+:¸ •· ƒô ðñò y · C ¸_ }~V+:¸ •· $#7 -.- ÉÊË
  • 93. ;? "#$ %&% '()*+, &-./0 1234567 '(' 89: »x a…† ,½ ü aØw O¯n• t0 ÉÊË £ üþ (þX• ¡RRh#¸ ü gl} aØw ÉÊËN žú O¯nL ¡R° U ¢h#¸ ü F• vße +- ö SlN ¼×• (9w jklmFnL ÁÞa}¿ aN îïw O¯n 9U'( ÉÊË i2J 9U^ S cM _`aN ÅFh#¸ ü ÉÊË i2J^ ScM _`a˜ œ i2JL œ O¯nF ¡R®,ϸO¯nw 23J)e D]l¡ U ¢h# Z[ ™ši¹ b-c )ðò7 J2:¸ 1=+•, ;ÖC ª5{, gO Lº:|& :¸ XY5 Z[ ™ši¹i b-c )ðò7 J2:¸ ",mn% b-c )ðò‘ ™šÐm fžPë M Z[ ™š‘ ©¸ ‹HŒI Z[D M¬P »l b-c )ðò¸ T,U7 V+7 :P ‚ý ²mn XY Z[ ] Z[ ^ Z[ _ 1=+•, b-c )ðò b-c )ðò b-c )ðò $#7 -.- ÉÊË
  • 94. ;! "#$ %&% '()*+, &-./0 1234567 89: ¾ ü aØw O¯n• t0 ÉÊË £ üþ (þX• ¡RRh#¸ ü ÉÊË ô³TA•»• îïw ü„ s.u³T²•€L»ò€²°°õL<»ø ÉÊË s.u³ä;ññL»<€²°°õL<»¸“w <Fh#¸ ü .rÇMN 9„4M Tr_ SFT^ O¯nL ¬-a} ÉÊËN ¿„F ]l¡ U ¢N '( SFT^ +È“h#¸ ü ÉÊË ô• ÉÊË+ ˆ= t3aN• ž«^ ÐG¡ U ¢6 "™L ÉÊË jklmFne _`%h˜ ÌU¦qr îTI 4K aN •®Fh# b-c ¼O ‘0 8Þ ´`µR b-c ´`µ ô5 ß,,mn% ½‡¾Š¿À£Š‡ÁÁ:¿¸vO eÿ%CÂ22¿À¸Š‡ÁÁ:¿¸O _ÿ%½y¾O _,mn Z[ ] ^ _ d e `IaC b-c $#7 -.- ÉÊË
  • 95. ;8 "#$ %&% '()*+, &-./0 1234567 89: ¾ b-c ¼O b-c HIR XYÿ%Z[ÃI •ˆ²mn%^™5 XY D d™5 Z[, ¡| ^™5 b-c HI, XY? Lº:; T, U7 ‘à‘ë b-c ¼O Ä d™‘ ²mn Z[ d™I Lˆ² XYD b-c‘ M¬ë b-c ¼O Ä d™‘ ²mn%;ÖC €• Z[5 b-c ¼O _I wA:mn `IaC‘ Ðû¸ T,Ug, b-c5 T,U V+WÐm smë b-c ¼ O ›-Zmn%nøI `IaC‘ Ðû¸ T,U g, b-c5 T,U V+W Ðm GHë b-c ¼O w-!| 8ÅÕO ]HI PQ, ‹i? ˆlmn `IaC5 T,U /MW, b-c5 T,U V+WÐm fHë b-c ¼O Æé{C ›-Zm `IaC5 T,U /MWÐm b-c5 T,U V+W, fHë b-c ¼O ]HI Ç-§m Z[ ‰] ] ^ _ d `IaC b-c Z[ ‰^ ] ^ _ Z[ ‰_ ] ^ _ d e È É Z[ ] ^ _ d e `IaC od ½¯1º½¼°†°¯1ºÌ¼v È É b-c o^ ½¯1º½¼°†°¯1ºÌ¼v Z[ ] ^ _ d e `IaC od ½¯1º½¼°†°¯1ºÌ¼v b-c o^ ½¯1º½¼°†°¯1ºÌ¼v $#7 -.- ÉÊË
  • 96. ;9 "#$ %&% '()*+, &-./0 1234567 89: ¾ (# -.- <&*^ E§až ÉÊË ô ÂU æçèæç€é빶º-êµ€ìµëºã¶#¶â <&*^ E§a˜ ÉÊË ôe ·k% vˆ ÉÊË ghw =Ž^ ÐG¡ U ¢h# $ bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --group my-group --describe !# ÉÊË -ê·µ´é¶³»¸5MJ^ E§až ÉÊË ô ÂU 7# ¶« îTI $e E§až ÉÊË ô ÂU |rNN IDJGLM 9Jaž s´?ir Ð9% ÉÊË ô yD $r ñLõ<¸A)±^ f4 ÉÊË gh%r ÉÊË ôe ÐG¡ U ¢h# $#7 -.- ÉÊË
  • 97. ;: "#$ %&% '()*+, &-./0 1234567 a(¿ '(' ü i.I -.-N -.-^ i.I .2šCDLM §ø¦qr E§¡ U ¢z• ')*‹ ©FÞúlh# ü 6û -.- ù©FMB ©FÞúl^ àúaž 'n i.I -.- ©FÞúlN -.- ù©FMBLM E§aN žú +• ƒïe ³l šÐ%h# $#$ i.I -.-
  • 98. ;Q "#$ %&% '()*+, &-./0 1234567 §À '(' ÁÂà $#$ i.I -.- spring: kafka: producer: bootstrap-servers: my-kafka:9092 acks: all ü i.I -.-LM .rÇM^ E§¡ &NLN ÌU %nF Gh# ü '• %ne ;ˆa• •q˜ 'ëë·¶·µç〶êµ(굶N +ëéç+â붷ä²"²!ϸæê>€¶êµ´ç+´BêµÃ (ç+ºê€¶êµ´ç+´BêµN õ·µ´¹ìõêµ´ç+´Bêµr ¿t;ˆ®* ‚}Rh#
  • 99. ;; "#$ %&% '()*+, &-./0 1234567 a(¿ '(' (456 $#$ i.I -.- @SpringBootApplication public class SpringProducerApplication implements CommandLineRunner { private static String TOPIC_NAME = "test"; @Autowired private KafkaTemplate<Integer, String> template; public static void main(String[] args) { SpringApplication application = new SpringApplication(SpringProducerApplication.class); application.run(args); } @Override public void run(String... args) { for (int i = 0; i < 10; i++) { template.send(TOPIC_NAME, "test" + i); } System.exit(0); } } < Vçèæç<ê-ã+ç·êe WAº·ëÉ´µê4r dFqZM E§%h# Aãã+éç·´ë¹#>ç-+L ÌM% %n6• ¿tqr dFRh# > ? < > ¶ê¹4³» 5MJ^ E§až îï F*ø 52• 6e 1* 9:%h# ? .rÇMr SFT 9:F òÀ®˜ óÀ%h#
  • 100. <== "#$ %&% '()*+, &-./0 1234567 §À Ÿa– ÁÂà $#$ i.I -.- ü 68 lic ÉöFcN 68 lic ÉöFc Xîl^ f4 ŠÎR lic ÉöFc^ E§%h# ü 68 lic ÉöFc^ E§¡ "N çãã+´éç·´ë¹#>ç-+L ÉÊËà lic %ne 1} E§¡ U ¢h# )!+%49P O(7O(P &,4)"3.+P #,,0)0+(!N).+6.+)P'3<NO(7O(PQRQS
  • 101. <=< "#$ %&% '()*+, &-./0 1234567 a(¿ '(' 89: $#$ i.I -.- 68¦G lic ÌMFh# îïø gh ZF† ^ •ˆ%h# < bA!+%49K,,0G!!$%&(0%,4 !"#$%&'&$())'A!+%492,4)"3.+G!!$%&(0%,4'5 !"#$%&')0(0%&'6,%-'3(%4>A0+%49TU'(+9)?'5 A!+%49G!!$%&(0%,4'(!!$%&(0%,4':'4.V'A!+%49G!!$%&(0%,4>A!+%492,4)"3.+G!!$%&(0%,4=&$())?@ (!!$%&(0%,4=+"4>(+9)?@ a bY(7O(8%)0.4.+>0,!%&)':'J0.)0JX' 9+,"!D-':'J0.)0N9+,"!NRRJ? !"#$%&'6,%-'+.&,+-8%)0.4.+>2,4)"3.+L.&,+-^A0+%49XA0+%49_'+.&,+-?'5 $,99.+=%47,>+.&,+-=0,A0+%49>??@ a bY(7O(8%)0.4.+>0,!%&)':'J0.)0JX 9+,"!D-':'J0.)0N9+,"!NRfJ? !"#$%&'6,%-')%49$.B,!%&8%)0.4.+>A0+%49'3.))(9.M($".?'5 $,99.+=%47,>3.))(9.M($".?@ a bY(7O(8%)0.4.+>0,!%&)':'J0.)0JX 9+,"!D-':'J0.)0N9+,"!NRSJX'!+,!.+0%.)':'5 J3(c=!,$$=%40.+6($=3)PgRRRRJX J("0,=,77).0=+.).0P.(+$%.)0J a? !"#$%&'6,%-')%49$.B,!%&/%01*+,!.+0%.)8%)0.4.+>A0+%49'3.))(9.M($".?'5 $,99.+=%47,>3.))(9.M($".?@ a bY(7O(8%)0.4.+>0,!%&)':'J0.)0JX 9+,"!D-':'J0.)0N9+,"!NR`JX &,4&"++.4&<':'J`J? !"#$%&'6,%-'&,4&"++.40B,!%&8%)0.4.+>A0+%49'3.))(9.M($".?'5 $,99.+=%47,>3.))(9.M($".?@ a bY(7O(8%)0.4.+>0,!%&*(+0%0%,4)': 5 bB,!%&*(+0%0%,4>0,!%&':'J0.)0RfJX'!(+0%0%,4)':'5JRJX'JfJa?X bB,!%&*(+0%0%,4>0,!%&':'J0.)0RSJX'!(+0%0%,4C77).0)':'b*(+0%0%,4C77).0>!(+0%0%,4':'JRJX'%4%0%($C77).0':'J`J?? aX 9+,"!D-':'J0.)0N9+,"!NRhJ? !"#$%&'6,%-'$%)0.4A!.&%7%&*(+0%0%,4>2,4)"3.+L.&,+-^A0+%49X'A0+%49_'+.&,+-?'5 $,99.+=%47,>+.&,+-=0,A0+%49>??@ a a < > ? ! 8 52• 6e O©³Tr qN licFh# > 9% licL -.- ÉÊË %n6e «ža} Hh˜ ãµëãêµ·´ê¶ %ne E§a˜ Rh# ? !9 F=w -.- ÉÊË i2J^ ‚}a} H h˜ éë¹éºµµê¹é>¸%ne E§a˜ Rh# ¿^ )*Ï O¯nF ("9G îïe ÁÞ¡ " éë¹éºµµê¹é>^ ("qr ;ˆ¡ U ¢h# F ›1 a˜ ("9 O¯nL ("9w ÉÊË i2J + œœ ¡R®* D]l–F S*Óh# ! vˆ îïw vˆ O¯n' ÁÞa} Hh˜ ·ëã´é)çµ·´·´ë¹¶ O©³T^ E§%h# 8
  • 102. <=> "#$ %&% '()*+, &-./0 1234567 bA!+%49K,,0G!!$%&(0%,4 !"#$%&'&$())'A!+%492,4)"3.+G!!$%&(0%,4'5 !"#$%&')0(0%&'8,99.+'$,99.+':'8,99.+;(&0,+<=9.08,99.+>A!+%492,4)"3.+G!!$%&(0%,4=&$())?@ !"#$%&')0(0%&'6,%-'3(%4>A0+%49TU'(+9)?'5 A!+%49G!!$%&(0%,4'(!!$%&(0%,4':'4.V'A!+%49G!!$%&(0%,4>A!+%492,4)"3.+G!!$%&(0%,4=&$())?@ (!!$%&(0%,4=+"4>(+9)?@ a bY(7O(8%)0.4.+>0,!%&)':'J0.)0JX 9+,"!D-':'J0.)0N9+,"!NRfJ? !"#$%&'6,%-'#(0&18%)0.4.+>2,4)"3.+L.&,+-)^A0+%49X'A0+%49_'+.&,+-)?'5 +.&,+-)=7,+I(&1>+.&,+-'N_'$,99.+=%47,>+.&,+-=0,A0+%49>???@ a bY(7O(8%)0.4.+>0,!%&)':'J0.)0JX 9+,"!D-':'J0.)0N9+,"!NRSJ? !"#$%&'6,%-'#(0&18%)0.4.+>8%)0^A0+%49_'$%)0?'5 $%)0=7,+I(&1>+.&,+-M($".'N_'$,99.+=%47,>+.&,+-M($".??@ a bY(7O(8%)0.4.+>0,!%&)':'J0.)0JX 9+,"!D-':'J0.)0N9+,"!NR`JX &,4&"++.4&<':'J`J? !"#$%&'6,%-'&,4&"++.40K(0&18%)0.4.+>2,4)"3.+L.&,+-)^A0+%49X'A0+%49_'+.&,+-)?'5 +.&,+-)=7,+I(&1>+.&,+-'N_'$,99.+=%47,>+.&,+-=0,A0+%49>???@ a a ÄH Ÿa– $#$ i.I -.- ÉÊË 23Jw ~,e O©³Tr qNh < < > ? 52• 6)e T´¶· ¿ÀÁÂr qZM ]l%h# > !9 F=w ÉÊË i2Jr YÙ lic^ _` ¡ &NLN éë¹éºµµê¹é>¸%ne kl ÌM až E§a˜ Rh# ?
  • 103. !" / 0- 1 2345+ 6789 :;< =$>?@ A 23B 0-" CDE FG H+4IJK