๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
DevOps

[Apache Kafka] ์นดํ”„์นด Window ์„ค์น˜ & ํ…Œ์ŠคํŠธ

by ์ฃผ๋ฐœ2 2021. 2. 6.
๋ฐ˜์‘ํ˜•

 ์•ˆ๋…•ํ•˜์„ธ์š”~ ์ด์ „์— ์šด์˜ํ•˜๋˜ ๋ธ”๋กœ๊ทธ ๋ฐ GitHub, ๊ณต๋ถ€ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•˜๋Š” Study-GitHub ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค!

 ๋„ค์ด๋ฒ„ ๋ธ”๋กœ๊ทธ

 GitHub

Study-GitHub

 ๐Ÿ”


โœ” Kafka/์นดํ”„์นด ์œˆ๋„์šฐ ์„ค์น˜ & ํ…Œ์ŠคํŠธ ํ•˜๊ธฐ

์•ˆ๋…•ํ•˜์„ธ์š”~ ์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” ์œˆ๋„์šฐ์—์„œ ์นดํ”„์นด๋ฅผ ์„ค์น˜ํ•˜๊ณ  ์‹คํ–‰ํ•ด์„œ ๊ฐ„๋‹จํ•˜๊ฒŒ ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

 

 ์นดํ”„์นด๋ž€ ?

์‹ค์‹œ๊ฐ„์œผ๋กœ ๊ธฐ๋ก ์ŠคํŠธ๋ฆผ์„ ๊ฒŒ์‹œ, ๊ตฌ๋…, ์ €์žฅ ๋ฐ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ„์‚ฐ ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆฌ๋ฐ ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค. 
์—ฌ๋Ÿฌ ์†Œ์Šค์—์„œ ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆผ์„ ์ฒ˜๋ฆฌํ•˜๊ณ  ์—ฌ๋Ÿฌ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ „๋‹ฌํ•˜๋„๋ก ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
์ฆ‰, ๊ฐ„๋‹จํžˆ ๋งํ•˜์ž๋ฉด A์ง€์  -> B์ง€์  ์ด๋™ํ•˜๋Š” ๊ฒƒ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ A์ง€์  -> Z์ง€์ ์„ ๋น„๋กฏํ•ด ํ•„์š”ํ•œ ๋ชจ๋“  ๊ณณ์—์„œ ๋Œ€๊ทœ๋ชจ ๋ฐ์ดํ„ฐ๋ฅผ ๋™์‹œ์— ์ด๋™ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


Apache Kafka๋Š” ์ „ํ†ต์ ์ธ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ๋ฉ”์‹œ์ง• ์‹œ์Šคํ…œ์˜ ๋Œ€์•ˆ์ž…๋‹ˆ๋‹ค. ํ•˜๋ฃจ์— 1์กฐ4์ฒœ์–ต ๊ฑด์˜ ๋ฉ”์‹œ์ง€๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด LinkedIn์ด ๊ฐœ๋ฐœํ•œ ๋‚ด๋ถ€ ์‹œ์Šคํ…œ์œผ๋กœ ์‹œ์ž‘ํ–ˆ์œผ๋‚˜, ํ˜„์žฌ ์ด๋Š” ๋‹ค์–‘ํ•œ ๊ธฐ์—…์˜ ์š”๊ตฌ์‚ฌํ•ญ์„ ์ง€์›ํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐ–์ถ˜ ์˜คํ”ˆ์†Œ์Šค ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆฌ๋ฐ ์†”๋ฃจ์…˜์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.


๋ณด๋‹ค ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋‹ค์Œ ์‚ฌ์ดํŠธ๋ฅผ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š”!
www.redhat.com/ko/topics/integration/what-is-apache-kafka
Kafka ์ดํ•ดํ•˜๊ธฐ
Kafka ์กฐ๊ธˆ ์•„๋Š” ์ฒ™ ํ•˜๊ธฐ 1 (์˜์ƒ)
team-platform.tistory.com/11



 

 

โœ” ์•„๋ž˜ ์‚ฌ์ดํŠธ๋ฅผ ์ ‘์†ํ•ฉ๋‹ˆ๋‹ค.

 

kafka.apache.org/downloads

 

Apache Kafka

Apache Kafka: A Distributed Streaming Platform.

kafka.apache.org

 

 

 

 

โœ” ํ˜„์žฌ ์นดํ”„์นด์˜ ์ตœ์‹  ๋ฒ„์ „์€ 2.7.0 ๋ฒ„์ „์ธ๋ฐ์š”, ์ €๋Š” 2.6.1 ๋ฒ„์ „์„ ๋‹ค์šด๋ฐ›๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค!

์•„๋ž˜ ๋ณด์ด๋Š” .tzg ํŒŒ์ผ์„ ๋‹ค์šด๋ฐ›์Šต๋‹ˆ๋‹ค.

(์ตœ์‹  ๋ฒ„์ „์„ ๋‹ค์šด ๋ฐ›๋”๋ผ๋„ ๋™์ผํ•˜๊ฒŒ ์ž‘์—…ํ•˜์‹œ๋ฉด ๋  ๋“ฏ ํ•ฉ๋‹ˆ๋‹ค.)

(๋˜ํ•œ Scala์˜ ๋ฒ„์ „์— ๋”ฐ๋ผ ๋‚˜๋ˆ„์–ด์ง€๋Š”๋ฐ, ์Šค์นผ๋ผ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉด ์•„๋ฌด ๋ฒ„์ „์ด๋‚˜ ์ƒ๊ด€์—†๋Š” ๋“ฏ ํ•ฉ๋‹ˆ๋‹ค..)

 

 

 

 

โœ” ์œ„์—์„œ ๋‹ค์šด๋ฐ›์€ .tgz ์••์ถ• ํŒŒ์ผ์„ ํ•ด์ œํ•ฉ๋‹ˆ๋‹ค.

 

 

 

โœ” Kafka์˜ ๋™์ž‘์€ Zookeeper์™€ ํ•จ๊ป˜ ์ž‘๋™ํ•˜๊ธฐ ๋•Œ๋ฌธ์— Zookeeper ์—†์ด๋Š” Kafka๋ฅผ ๊ตฌ๋™ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ Zookeper์„ ๋จผ์ € ๊ตฌ๋™ํ•ด์ฃผ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

โ€ป ๋ฐ˜๋“œ์‹œ Zookeeper ์„œ๋ฒ„๋ฅผ ๋จผ์ € ๊ตฌ๋™ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

(์ €๋Š” cmd์ฐฝ์ด ์•„๋‹Œ PowerShell ์—์„œ ์ž‘์—…์„ ์ง„ํ–‰ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.)

 

 

 ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

* bin ํด๋”๋กœ ๋“ค์–ด๊ฐ€์‹œ์ง€ ๋ง๊ณ  kafka ๊ฒฝ๋กœ์—์„œ ๋ฐ”๋กœ ์‹คํ–‰ํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

bin\windows\zookeeper-server-start.bat config\zookeeper.properties 

 

+ ํ˜น์‹œ๋‚˜ ์•„๋ž˜์™€ ๊ฐ™์€ ๋ฌธ๊ตฌ๊ฐ€ ๋‚˜์˜ค๋ฉด ์นดํ”„์นด์˜ ํด๋”๋ฅผ ๋‹ค๋ฅธ ๊ณณ์— ์ง€์ •ํ•˜์…”์„œ ๊ฒฝ๋กœ๋ฅผ ์งง๊ฒŒ ํ•ด์ฃผ์„ธ์š”!!

 

 

 

 

โœ” ์œ„ ๊ณผ์ •์„ ํ†ตํ•ด Zookeeper์ด ๊ตฌ๋™ ๋˜์—ˆ์œผ๋ฉด ์ด์ œ Kafka๋ฅผ ๊ตฌ๋™ํ•ฉ๋‹ˆ๋‹ค.

    • PowerShell์„ ํ•˜๋‚˜ ๋” ์—ด๊ณ  ์นดํ”„์นด ์„œ๋ฒ„๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    * bin ํด๋”๋กœ ๋“ค์–ด๊ฐ€์‹œ์ง€ ๋ง๊ณ  kafka ๊ฒฝ๋กœ์—์„œ ๋ฐ”๋กœ ์‹คํ–‰ํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

bin\windows\kafka-server-start.bat config\server.properties

์—„์ฒญ๋‚˜๊ฒŒ ๋งŽ์€ ๋กœ๊ทธ๊ฐ€ ์ฐํžํ…๋ฐ์š”, ์œ„์™€ ๊ฐ™์ด started ๋ผ๋Š” ๋กœ๊ทธ๊ฐ€ ์ฐํžˆ๋ฉด ์ •์ƒ์ ์œผ๋กœ ์นดํ”„์นด ์„œ๋ฒ„๊ฐ€ ์‹คํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

 

 

 

 

โœ” Windows PowerShell ์„ ํ•˜๋‚˜ ๋” ์‹คํ–‰ํ•ด netstat -a ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ํฌํŠธ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

   • ์ฃผํ‚คํผ์˜ default ํฌํŠธ๋Š” 2181์ด๊ณ , ์นดํ”„์นด์˜ default ํฌํŠธ๋Š” 9092 ์ž…๋‹ˆ๋‹ค.

 

 

 

 

โœ” Kafka ํ…Œ์ŠคํŠธ ํ•˜๊ธฐ

์œ„์™€ ๊ฐ™์ด Zookeeper ์™€ Kafka ์„œ๋ฒ„๊ฐ€ ๊ตฌ๋™๋˜์—ˆ์œผ๋ฉด, ๊ฐ„๋‹จํ•˜๊ฒŒ ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

PowerShell์„ ํ•˜๋‚˜ ๋” ์—ด๊ณ  Kafka ์„ค์น˜ ๊ฒฝ๋กœ > \bin\windows ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

(ํ˜„์žฌ๊นŒ์ง€ ์‹คํ–‰ ํ•œ PowerShell์€ Zookeeper ์„œ๋ฒ„, Kafka ์„œ๋ฒ„, ํฌํŠธ ํ™•์ธ, ํ…Œ์ŠคํŠธ ๋กœ ์ด 4๊ฐœ์˜ ์‰˜์„ ์‹คํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.)

 

 

 

 

 ์นดํ”„์นด ๋ธŒ๋กœ์ปค(broker)์— ํ† ํ”ฝ(topic) ์ƒ์„ฑํ•˜๊ธฐ

.\kafka-topics.bat --create --bootstrap-server localhost:9092 --topic test  

    • create ์˜ต์…˜์œผ๋กœ test๋ผ๋Š” ํ† ํ”ฝ์„ ์ƒ์„ฑํ•˜๊ณ , bootstrap-server ์˜ต์…˜์œผ๋กœ ์นดํ”„์นด ์„œ๋ฒ„์ธ 9092 ํฌํŠธ์— ์—ฐ๊ฒฐ

 

 

 ์ƒ์„ฑ๋œ ํ† ํ”ฝ ํ™•์ธ

.\kafka-topics.bat --list --bootstrap-server localhost:9092

 

 

 

 ํ”„๋กœ๋“€์„œ(producer)๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ํ† ํ”ฝ(test)์— ๋ฉ”์‹œ์ง€ ๋ณด๋‚ด๊ธฐ(push)

.\kafka-console-producer.bat  --broker-list  localhost:9092 --topic test

    • > ๋ชจ์–‘์ด ๋‚˜ํƒ€๋‚˜๋ฉด ๋ณด๋‚ผ ๋ฉ”์‹œ์ง€๋ฅผ ์ž…๋ ฅํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค. (์ €๋Š” ์ค‘๊ฐ„์— ์ข…๋ฃŒํ•ด์„œ ๋‘ ๋ฒˆ์˜ ๋ฉ”์‹œ์ง€๋ฅผ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค!)

 

 

 

 

์ปจ์Šˆ๋จธ(consumer)๋ฅผ ์‹คํ–‰ํ•ด์„œ ํ† ํ”ฝ(test)์—์„œ ๋ฉ”์„ธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ค๊ธฐ(pull)

.\kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic test --from-beginning

 

 

๋˜ํ•œ ํ”„๋กœ๋“€์„œ๋ฅผ ํ†ตํ•ด ๋ฉ”์‹œ์ง€๋ฅผ ๊ณ„์† ๋ณด๋‚ผ๊ฒฝ์šฐ(push), ์ปจ์Šˆ๋จธ๊ฐ€ ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›์•„์˜ต๋‹ˆ๋‹ค(pull)

 

 

 

 Kafka์˜ ๊ตฌ์กฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

https://programmers.co.kr/learn/courses/11186

 

 

 

--from-beginning ๋ช…๋ น์–ด๋Š” ๊ธฐ์กด์— ์ž…๋ ฅํ•œ ๋ฉ”์‹œ์ง€๋ฅผ ๊ฐ€์ ธ์˜ฌ์ง€ ์•ˆ๊ฐ€์ ธ์˜ฌ์ง€๋ฅผ ์„ค์ •ํ•˜๋Š” ๋ช…๋ น์–ด์ž…๋‹ˆ๋‹ค.

 

 

 

 

 

 

 

 

โœ” References

cookiethecat2020.blogspot.com/2020/03/blog-post_14.html

 

 

 

 

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€