๊ด€๋ฆฌ ๋ฉ”๋‰ด

minOS

Zookeeper ์—†์ด ์นดํ”„์นด ์‹œ์ž‘ํ•˜๊ธฐ ๋ณธ๋ฌธ

TIL/Kafka

Zookeeper ์—†์ด ์นดํ”„์นด ์‹œ์ž‘ํ•˜๊ธฐ

minOE 2025. 3. 10. 04:23
728x90

๐Ÿš€ Kafka์—์„œ Zookeeper๊ฐ€ ์ œ๊ฑฐ๋˜๋Š” ์ด์œ  (KRaft ๋„์ž… ๋ฐฐ๊ฒฝ)

Kafka๋Š” ๊ธฐ์กด์— Apache Zookeeper๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํด๋Ÿฌ์Šคํ„ฐ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ–ˆ์ง€๋งŒ, Kafka 3.0๋ถ€ํ„ฐ Zookeeper ์—†์ด ๋™์ž‘ํ•˜๋Š” KRaft(Kafka Raft) ๋ชจ๋“œ๋ฅผ ๋„์ž…ํ•˜์—ฌ ์ ์ง„์ ์œผ๋กœ Zookeeper๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ๊ฐ€๊ณ  ์žˆ๋‹ค.
Kafka 7.0๋ถ€ํ„ฐ๋Š” KRaft ๋ชจ๋“œ๊ฐ€ ๊ธฐ๋ณธ์ด ๋˜๋ฉฐ, Zookeeper๋Š” ๊ณต์‹์ ์œผ๋กœ ์ง€์›์ด ์ค‘๋‹จ๋  ์˜ˆ์ •์ด๋‹ค. 


Zookeeper ์ œ๊ฑฐ(KRaft ๋„์ž…)์˜ ์ด์œ 

1๏ธโƒฃ Kafka ์ž์ฒด์ ์ธ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ (Zookeeper ์˜์กด์„ฑ ์ œ๊ฑฐ)

๊ธฐ์กด Kafka๋Š” ํ† ํ”ฝ, ํŒŒํ‹ฐ์…˜, ์ปจ์Šˆ๋จธ ๊ทธ๋ฃน ๋“ฑ์˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ Zookeeper์—์„œ ๊ด€๋ฆฌํ–ˆ๋‹ค. ์ด ๋ฐฉ์‹์—์„œ๋Š” Kafka์™€ Zookeeper๊ฐ€ ๋ณ„๋„๋กœ ๋™์ž‘ํ•˜๋ฉฐ, ์ถ”๊ฐ€์ ์ธ ํ†ต์‹  ๋น„์šฉ์ด ๋ฐœ์ƒํ–ˆ๋‹ค. KRaft(Kafka Raft)๋ฅผ ๋„์ž…ํ•˜๋ฉด์„œ Kafka ๋‚ด๋ถ€์—์„œ ์ง์ ‘ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋‹ค.

-  Kafka๊ฐ€ ๋…๋ฆฝ์ ์œผ๋กœ ์šด์˜ ๊ฐ€๋Šฅํ•ด์ง€๊ณ , ์™ธ๋ถ€ ์˜์กด์„ฑ์ด ์‚ฌ๋ผ์ง„๋‹ค.



2๏ธโƒฃ ์„ฑ๋Šฅ ๋ฐ ํ™•์žฅ์„ฑ ๊ฐœ์„ 

๊ธฐ์กด Zookeeper ๋ฐฉ์‹์—์„œ๋Š” ๋ชจ๋“  ๋ธŒ๋กœ์ปค๊ฐ€ Zookeeper์— ์ง€์†์ ์œผ๋กœ ์ฝ๊ธฐ/์“ฐ๊ธฐ ์š”์ฒญ์„ ๋ณด๋ƒˆ๋‹ค. ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ์ปค์งˆ์ˆ˜๋ก Zookeeper์˜ ๋ถ€ํ•˜๊ฐ€ ์ฆ๊ฐ€ํ•˜๊ณ , ๋Œ€๊ทœ๋ชจ Kafka ํ™˜๊ฒฝ์—์„œ ๋ณ‘๋ชฉ์ด ๋ฐœ์ƒํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์•„์กŒ๋‹ค. KRaft๋Š” Kafka ๋‚ด๋ถ€์—์„œ ์ง์ ‘ Raft Consensus Algorithm์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•œ๋‹ค.

- Kafka ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ์ปค์ ธ๋„ ํ™•์žฅ์„ฑ์ด ๋›ฐ์–ด๋‚˜๋ฉฐ, ๋” ๋งŽ์€ ํŒŒํ‹ฐ์…˜์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.



3๏ธโƒฃ ๋ฆฌ๋” ์„ ์ถœ ํ”„๋กœ์„ธ์Šค ๊ฐ„์†Œํ™”

๊ธฐ์กด ๋ฐฉ์‹์—์„œ๋Š” Controller Broker(๋ฆฌ๋” ๋ธŒ๋กœ์ปค) ์„ ์ถœ์ด Zookeeper๋ฅผ ํ†ตํ•ด ์ด๋ฃจ์–ด์กŒ๋‹ค. Zookeeper ์žฅ์•  ์‹œ, ์ƒˆ๋กœ์šด ๋ฆฌ๋” ์„ ์ถœ ๊ณผ์ •์—์„œ ์ถ”๊ฐ€์ ์ธ ์ง€์—ฐ์ด ๋ฐœ์ƒํ–ˆ๋‹ค. KRaft์—์„œ๋Š” Kafka ๋‚ด๋ถ€์—์„œ Raft ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜์—ฌ ๋น ๋ฅด๊ฒŒ ๋ฆฌ๋”๋ฅผ ์„ ์ถœํ•  ์ˆ˜ ์žˆ๋‹ค.

- Kafka ๋‚ด๋ถ€์—์„œ ์ปจํŠธ๋กค๋Ÿฌ ์„ ์ถœ์ด ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ ์žฅ์•  ๋ณต๊ตฌ ์†๋„๊ฐ€ ๋นจ๋ผ์ง„๋‹ค.



4๏ธโƒฃ ๋ณต์žกํ•œ ์šด์˜ ๊ด€๋ฆฌ ๊ฐ„์†Œํ™”

๊ธฐ์กด์—๋Š” Kafka์™€ Zookeeper๋ฅผ ๋ชจ๋‘ ๊ด€๋ฆฌํ•ด์•ผ ํ–ˆ์œผ๋ฉฐ, ์„ค์ •, ๋ชจ๋‹ˆํ„ฐ๋ง, ์Šค์ผ€์ผ๋ง์ด ๋ณต์žกํ–ˆ๋‹ค. Zookeeper๋ฅผ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์ถ”๊ฐ€์ ์ธ ์ธํ”„๋ผ ๊ด€๋ฆฌ ๋น„์šฉ์ด ๋ฐœ์ƒํ–ˆ๋‹ค. KRaft๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด Kafka๋งŒ ๊ด€๋ฆฌํ•˜๋ฉด ๋˜๋ฏ€๋กœ ์šด์˜ ๋ถ€๋‹ด์ด ๊ฐ์†Œํ•œ๋‹ค.

- Kafka ๊ด€๋ฆฌ๊ฐ€ ๋” ์‰ฌ์›Œ์ง€๊ณ , ์œ ์ง€๋ณด์ˆ˜ ๋น„์šฉ์ด ์ค„์–ด๋“ ๋‹ค.



๐Ÿ“Œ ๊ธฐ์กด ๋ฐฉ์‹ vs KRaft ๋ฐฉ์‹ ๋น„๊ต

ํ•ญ๋ชฉ ๊ธฐ์กด (Zookeeper) ์ƒˆ๋กœ์šด ๋ฐฉ์‹ (KRaft)
๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์ €์žฅ ์œ„์น˜ Zookeeper์—์„œ ๊ด€๋ฆฌ Kafka ๋‚ด๋ถ€์—์„œ ๊ด€๋ฆฌ
๋ฆฌ๋” ์„ ์ถœ ๋ฐฉ์‹ Zookeeper๊ฐ€ ๋ฆฌ๋” ์„ ์ • Kafka ์ž์ฒด์ ์œผ๋กœ ๋ฆฌ๋” ์„ ์ •
ํ™•์žฅ์„ฑ ํด๋Ÿฌ์Šคํ„ฐ ์ปค์งˆ์ˆ˜๋ก Zookeeper ๋ถ€ํ•˜ ์ฆ๊ฐ€ ๋Œ€๊ทœ๋ชจ ํ™•์žฅ์„ฑ ๊ฐ€๋Šฅ
์žฅ์•  ๋ณต๊ตฌ ์†๋„ Zookeeper ์žฅ์•  ์‹œ ๋ณต๊ตฌ ๋Š๋ฆผ Kafka ๋‚ด์—์„œ ๋น ๋ฅด๊ฒŒ ๋ณต๊ตฌ ๊ฐ€๋Šฅ



๐Ÿš€ ๊ฒฐ๋ก 

โœ… Kafka๋Š” Zookeeper ์—†์ด๋„ ๋™์ž‘ ๊ฐ€๋Šฅํ•œ KRaft(Kafka Raft)๋ฅผ ๋„์ž…ํ–ˆ๋‹ค.
โœ… Kafka ๋‚ด๋ถ€์—์„œ ์ง์ ‘ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์–ด ์„ฑ๋Šฅ์ด ํ–ฅ์ƒ๋˜๊ณ , ์žฅ์•  ๋ณต๊ตฌ ์†๋„๊ฐ€ ์ฆ๊ฐ€ํ•œ๋‹ค.
โœ… Zookeeper ์˜์กด์„ฑ์„ ์ œ๊ฑฐํ•˜์—ฌ ์šด์˜ ๊ด€๋ฆฌ๊ฐ€ ๊ฐ„ํŽธํ•ด์ง„๋‹ค.
โœ… Kafka 7.0๋ถ€ํ„ฐ Zookeeper๊ฐ€ ์™„์ „ํžˆ ์ œ๊ฑฐ๋  ์˜ˆ์ •์ด๋‹ค. ๐Ÿš€

 

์„ค์น˜ ๊ณผ์ •(Mac OS)

https://learn.conduktor.io/kafka/how-to-install-apache-kafka-on-mac-without-zookeeper-kraft-mode/

 

https://learn.conduktor.io/kafka/how-to-install-apache-kafka-on-mac-without-zookeeper-kraft-mode/

 

learn.conduktor.io

์œ„ ๋งํฌ์— ์„ค๋ช…์ด ์ž˜ ๋˜์–ด์žˆ๋‹ค. ๋จผ์ € ์ž๋ฐ” 11์„ ์„ค์น˜ํ•ด์•ผํ•˜๋Š”๋ฐ ๋งŒ์•ฝ ๋ณธ์ธ์ด 11์ด์ƒ ๋ฒ„์ „์„ ์“ฐ๊ณ  ์žˆ์œผ๋ฉด ๊ตณ์ด ์„ค์น˜ํ•˜์ง€ ์•Š์•„๋„ ๊ดœ์ฐฎ๋‹ค.  Kafka 3.x ๋ฒ„์ „๋ถ€ํ„ฐJava 11 ์ด์ƒ์ด ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์„ค์น˜๋ฅผ ์š”๊ตฌํ•˜๋Š” ๊ฒƒ์ด๋‹ค.


kafka๋ฅผ ์„ค์น˜ํ•ด์•ผํ•œ๋‹ค. 
https://kafka.apache.org/downloads
 

Apache Kafka

Apache Kafka: A Distributed Streaming Platform.

kafka.apache.org

 

์ฃผํ‚คํผ ์—†์ด KRaft๋ชจ๋“œ๋กœ ์„ค์ •ํ•˜๊ธฐ ์œ„ํ•ด์„  Binary๋กœ ๋‹ค์šด ๋ฐ›์•„์•ผํ•œ๋‹ค. 
2.13 ์ถ”์ฒœํ•œ๋‹ค๊ณ  ํ•ด์„œ ๋‚˜๋Š” 2.13์œผ๋กœ ๋ฐ›์•˜๋‹ค.



๊ทธํ›„ ๋‹ค์‹œ ์ด์ „ ํŽ˜์ด์ง€๋กœ ๋Œ์•„์™€์„œ ํ„ฐ๋ฏธ๋„์—์„œ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•ด์ฃผ๋˜,

~/kafka_2.13-3.0.0/bin/kafka-storage.sh random-uuid

์œ„ ์‚ฌ์ง„์— ๋ณด๋“ฏ์ด ๋ฒ„์ „์„ ๋งž์ถฐ์„œ ์ž…๋ ฅ์„ ํ•ด์•ผํ•œ๋‹ค. 
๋‚˜์™€ ๊ฐ™์€ ๊ฒฝ์šฐ ์ด๋ ‡๊ฒŒ ์ž…๋ ฅํ•ด์•ผํ•œ๋‹ค.

~/kafka_2.13-3.9.0/bin/kafka-storage.sh random-uuid


๊ทธ๋Ÿผ UUID ๊ฐ€ ๋‚˜์˜ค๋Š”๋ฐ 

~/kafka_2.13-3.0.0/bin/kafka-storage.sh format -t <uuid> -c ~/kafka_2.13-3.0.0/config/kraft/server.properties


<uuid> ์ด ๋ถ€๋ถ„์— "<uuid>" ์‚ญ์ œํ•˜๊ณ  ๋ฐœ๊ธ‰๋ฐ›์€ uuid๋ฅผ ๋„ฃ์–ด์ฃผ๋ฉด๋œ๋‹ค. ์—ฌ๊ธฐ์—์„œ๋„ ๋ฒ„์ „๊ณผ ๊ฒฝ๋กœ๋Š” ๋ณธ์ธ์ด ์ž˜ ๋งž์ถฐ์ค˜์•ผ ํ•œ๋‹ค.
์ด ๋ช…๋ น์–ด๋Š” Kafka KRaft ๋ชจ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ํ•„์ˆ˜์ ์ธ ์ดˆ๊ธฐํ™” ๊ณผ์ •์œผ๋กœ, Kafka ํด๋Ÿฌ์Šคํ„ฐ์˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ๋ฅผ ์„ค์ •(ํฌ๋งท)ํ•˜๋Š” ๊ณผ์ •์ด๋‹ค.

~/kafka_2.13-3.0.0/bin/kafka-server-start.sh ~/kafka_2.13-3.0.0/config/kraft/server.properties


 ๊ทธ ํ›„ ์œ„์˜ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ์นดํ”„์นด๊ฐ€ ์‹คํ–‰๋œ๋‹ค 




 

 

728x90