๊ณต๋ถ€/TIL

[20250314] Kafka์™€ RabbitMQ ์‰ฝ๊ฒŒ ์ดํ•ดํ•ด๋ณด์ž!

dvlpsy๐ŸŒผ 2025. 3. 14. 10:27
๋ฐ˜์‘ํ˜•

 

๐Ÿ“Œ Kafka์™€ RabbitMQ๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”?

๋‘˜ ๋‹ค ์„œ๋น„์Šค ๊ฐ„ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š” **๋ฉ”์‹œ์ง€ ๋ธŒ๋กœ์ปค(Message Broker)**์˜ˆ์š”.
ํ•˜์ง€๋งŒ ์„ค๊ณ„ ๋ชฉ์ ๊ณผ ๋™์ž‘ ๋ฐฉ์‹์ด ๋‹ฌ๋ผ์„œ ๊ฐ๊ฐ ์ž˜ ๋งž๋Š” ์ƒํ™ฉ์ด ์žˆ์–ด์š”.

  • Kafka: ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆฌ๋ฐ๊ณผ ์ด๋ฒคํŠธ ๋กœ๊ทธ์— ํŠนํ™”
  • RabbitMQ: ๋น ๋ฅด๊ณ  ๊ฐ€๋ฒผ์šด ๋ฉ”์‹œ์ง€ ์ „๋‹ฌ๊ณผ ๋น„๋™๊ธฐ ์ž‘์—… ์ฒ˜๋ฆฌ์— ์ ํ•ฉ

 

๐Ÿ“Š ๋น„์œ ๋กœ ์ดํ•ดํ•˜๊ธฐ

  • Kafka๋Š” CCTV ๋…นํ™” ์‹œ์Šคํ…œ
    • ๋ชจ๋“  ์ด๋ฒคํŠธ(๋กœ๊ทธ)๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ๊ธฐ๋กํ•˜๊ณ  ํ•„์š”ํ•  ๋•Œ ๋‹ค์‹œ ๋Œ๋ ค๋ด„
    • ๋ฐ์ดํ„ฐ๊ฐ€ ๋งŽ์•„๋„ ๋Š๊น€ ์—†์ด ๋น ๋ฅด๊ฒŒ ์ €์žฅ

 

  • RabbitMQ๋Š” ํƒ๋ฐฐ ๋ฌผ๋ฅ˜ ์„ผํ„ฐ
    • ๋„์ฐฉํ•œ ํƒ๋ฐฐ(๋ฉ”์‹œ์ง€)๋ฅผ ์ฆ‰์‹œ ๋ฐฐ๋‹ฌ
    • ๋ฐฐ๋‹ฌ(์ฒ˜๋ฆฌ)์ด ๋๋‚˜๋ฉด ์ฐฝ๊ณ ์—์„œ ์‚ญ์ œ

 


๐Ÿง  Kafka์™€ RabbitMQ์˜ ๋™์ž‘ ๋ฐฉ์‹ ์ฐจ์ด์ 

 

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

 


๐Ÿ“ฆ Kafka์™€ RabbitMQ์˜ ๊ตฌ์กฐ ์ฐจ์ด์ 

 

๐Ÿ—‚๏ธ Kafka ๊ตฌ์กฐ

  • Producer: ๋ฐ์ดํ„ฐ๋ฅผ Kafka๋กœ ๋ณด๋ƒ„
  • Broker: ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ์„œ๋ฒ„ (์—ฌ๋Ÿฌ ๋Œ€๋กœ ํ™•์žฅ ๊ฐ€๋Šฅ)
  • Topic: ๋ฉ”์‹œ์ง€๋ฅผ ์ €์žฅํ•˜๋Š” ๊ณต๊ฐ„ (์นดํ…Œ๊ณ ๋ฆฌ์ฒ˜๋Ÿผ ์‚ฌ์šฉ)
  • Partition: ํ† ํ”ฝ์„ ์ชผ๊ฐœ์„œ ์—ฌ๋Ÿฌ ์„œ๋ฒ„์— ๋ถ„์‚ฐ ์ €์žฅ
  • Consumer: ๋ฉ”์‹œ์ง€๋ฅผ ์ฝ๋Š” ์„œ๋น„์Šค

 

๐Ÿ‘‰ ํŠน์ง•: ๋ฉ”์‹œ์ง€๋ฅผ ์˜ค๋ž˜ ๋ณด๊ด€ํ•˜๋ฉฐ, ํ•„์š”ํ•œ ์‹œ์ ์— ์—ฌ๋Ÿฌ ๋ฒˆ ์ฝ์„ ์ˆ˜ ์žˆ์–ด์š”.

 

๐Ÿ“Š ๋น„์œ :

  • Kafka๋Š” CCTV ๋…นํ™” ์‹œ์Šคํ…œ
  • ์—ฌ๋Ÿฌ ์‚ฌ๋žŒ์ด ์›ํ•˜๋Š” ์žฅ๋ฉด์„ ๊ฐ์ž ๋‹ค์‹œ ๋ณผ ์ˆ˜ ์žˆ์Œ

 


๐Ÿ“ฌ RabbitMQ ๊ตฌ์กฐ

  • Producer: ๋ฉ”์‹œ์ง€๋ฅผ RabbitMQ๋กœ ๋ณด๋ƒ„
  • Exchange: ๋ฉ”์‹œ์ง€๋ฅผ ์–ด๋–ค ํ๋กœ ๋ณด๋‚ผ์ง€ ๊ฒฐ์ •
  • Queue: ๋ฉ”์‹œ์ง€๋ฅผ ์ €์žฅํ•˜๋Š” ๊ณณ (์ปจ์Šˆ๋จธ๊ฐ€ ๊ฐ€์ ธ๊ฐ)
  • Consumer: ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›์•„์„œ ์ฒ˜๋ฆฌํ•˜๋Š” ์„œ๋น„์Šค

 

๐Ÿ‘‰ ํŠน์ง•: ํ•œ ๋ฒˆ ์ฒ˜๋ฆฌํ•œ ๋ฉ”์‹œ์ง€๋Š” ์‚ฌ๋ผ์ง (๊ธฐ๋ณธ ์„ค์ •).

 

๐Ÿ“Š ๋น„์œ :

  • RabbitMQ๋Š” ํƒ๋ฐฐ ๋ฌผ๋ฅ˜ ์„ผํ„ฐ
  • ํƒ๋ฐฐ๋ฅผ ๋ณด๊ด€ํ–ˆ๋‹ค๊ฐ€ ์ˆ˜๋ นํ•˜๋ฉด ์ฐฝ๊ณ ์—์„œ ์‚ญ์ œ

๐Ÿ” Kafka์™€ RabbitMQ๋ฅผ ์–ธ์ œ ์‚ฌ์šฉํ•ด์•ผ ํ• ๊นŒ?

โœ… Kafka๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ

  1. ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ
    • ์ดˆ๋‹น ์ˆ˜๋ฐฑ๋งŒ ๊ฑด์˜ ์ด๋ฒคํŠธ๋ฅผ ์ˆ˜์ง‘ํ•ด์•ผ ํ•  ๋•Œ
    • ์˜ˆ: ์‚ฌ์šฉ์ž ํ–‰๋™ ๋กœ๊ทธ, ๊ฑฐ๋ž˜ ๋‚ด์—ญ, ์‹ค์‹œ๊ฐ„ ๋ชจ๋‹ˆํ„ฐ๋ง
  2. ๋ฉ”์‹œ์ง€ ๋ณด์กด ๋ฐ ์žฌ์ฒ˜๋ฆฌ
    • ๊ณผ๊ฑฐ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค์‹œ ๋ถ„์„ํ•  ํ•„์š”๊ฐ€ ์žˆ์„ ๋•Œ
    • ์˜ˆ: ๋ฐ์ดํ„ฐ ๋ถ„์„, ์žฅ์•  ๋ณต๊ตฌ ํ›„ ๋ฉ”์‹œ์ง€ ์žฌ์ฒ˜๋ฆฌ
  3. ์ŠคํŠธ๋ฆฌ๋ฐ ์ฒ˜๋ฆฌ
    • ์ด๋ฒคํŠธ๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ „๋‹ฌํ•˜๊ณ  ๋ณ€ํ™˜ํ•ด์•ผ ํ•  ๋•Œ
    • ์˜ˆ: ์‹ค์‹œ๊ฐ„ ์ฑ„ํŒ…, IoT ์„ผ์„œ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘
  4. ์—ฌ๋Ÿฌ ์„œ๋น„์Šค์—์„œ ๋™์ผํ•œ ๋ฉ”์‹œ์ง€๋ฅผ ์ฝ์–ด์•ผ ํ•  ๋•Œ
    • ์—ฌ๋Ÿฌ ํŒ€/์„œ๋น„์Šค๊ฐ€ ๊ฐ™์€ ๋ฐ์ดํ„ฐ๋ฅผ ํ•„์š”๋กœ ํ•  ๋•Œ
    • ์˜ˆ: ์ฃผ๋ฌธ ๋ฐ์ดํ„ฐ → ์žฌ๊ณ  ์‹œ์Šคํ…œ + ๋ฐฐ์†ก ์‹œ์Šคํ…œ์—์„œ ๋ชจ๋‘ ์ฒ˜๋ฆฌ

 

โœ… RabbitMQ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ

  1. ๋น ๋ฅธ ๋น„๋™๊ธฐ ์ž‘์—…
    • ์ฒ˜๋ฆฌ ์‹œ๊ฐ„์ด ๊ธด ์ž‘์—…์„ ๋‚˜์ค‘์— ์ฒ˜๋ฆฌํ•˜๊ณ  ์‹ถ์„ ๋•Œ
    • ์˜ˆ: ์ด๋ฉ”์ผ ๋ฐœ์†ก, ์•Œ๋ฆผ, PDF ์ƒ์„ฑ
  2. ๋‹จ์ˆœํ•œ ๋ฉ”์‹œ์ง€ ์ „๋‹ฌ
    • ์„œ๋น„์Šค ๊ฐ„ ๋น ๋ฅธ ๋ฉ”์‹œ์ง€ ์ „๋‹ฌ์ด ํ•„์š”ํ•  ๋•Œ
    • ์˜ˆ: ์‚ฌ์šฉ์ž ๋“ฑ๋ก ํ›„ ์›ฐ์ปด ๋ฉ”์ผ ๋ฐœ์†ก
  3. ์‹ค์‹œ๊ฐ„ ์ž‘์—…
    • ์ฆ‰์‹œ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•  ๋‹จ์ผ ์ž‘์—…์— ์ ํ•ฉ
    • ์˜ˆ: ๊ฒฐ์ œ ์Šน์ธ → ๋ฐฐ์†ก ์‹œ์Šคํ…œ์œผ๋กœ ์•Œ๋ฆผ
  4. ์ž‘์€ ๊ทœ๋ชจ์˜ ์‹œ์Šคํ…œ
    • ๊ด€๋ฆฌ๊ฐ€ ์‰ฌ์šด ๊ฒฝ๋Ÿ‰ ๋ฉ”์‹œ์ง€ ํ๊ฐ€ ํ•„์š”ํ•  ๋•Œ
    • ์˜ˆ: ์ค‘์†Œ๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ์—์„œ ์„œ๋น„์Šค ๊ฐ„ ํ†ต์‹ 

โš”๏ธ Kafka vs RabbitMQ – ์‹ค์ „ ๋น„๊ต

 

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

 


๐Ÿ“Œ Kafka์™€ RabbitMQ, ์–ด๋А ๊ฒƒ์„ ์„ ํƒํ•ด์•ผ ํ• ๊นŒ?

  • Kafka๋ฅผ ์„ ํƒํ•ด์•ผ ํ•  ๋•Œ
    • ์ดˆ๋‹น ์ˆ˜์‹ญ๋งŒ~์ˆ˜๋ฐฑ๋งŒ ๊ฑด ์ด์ƒ์˜ ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ
    • ์ด๋ฒคํŠธ๋ฅผ ๊ธฐ๋กํ•˜๊ณ  ๋‚˜์ค‘์— ๋‹ค์‹œ ์ฝ์–ด์•ผ ํ•  ๋•Œ
    • ์—ฌ๋Ÿฌ ์„œ๋น„์Šค๊ฐ€ ๊ฐ™์€ ๋ฉ”์‹œ์ง€๋ฅผ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•  ๋•Œ

 

  • RabbitMQ๋ฅผ ์„ ํƒํ•ด์•ผ ํ•  ๋•Œ
    • ๋‹จ์ˆœํ•œ ๋น„๋™๊ธฐ ์ž‘์—… (์˜ˆ: ์ด๋ฉ”์ผ, ์•Œ๋ฆผ)
    • ๋น ๋ฅธ ๋ฉ”์‹œ์ง€ ์ „๋‹ฌ๊ณผ ์ฆ‰์‹œ ์ฒ˜๋ฆฌ
    • ์„ค์ •๊ณผ ์šด์˜์„ ์‰ฝ๊ฒŒ ํ•˜๊ณ  ์‹ถ์„ ๋•Œ

 


๐ŸŽฏ ์ •๋ฆฌ – ์‹ค๋ฌด์—์„œ์˜ ์„ ํƒ ๊ธฐ์ค€

  • ๋Œ€๊ทœ๋ชจ ์‹ค์‹œ๊ฐ„ ๋กœ๊ทธ ์ˆ˜์ง‘Kafka
  • ์ด๋ฉ”์ผ ๋ฐœ์†ก, ์•Œ๋ฆผ ์„œ๋น„์ŠคRabbitMQ
  • ์ด๋ฒคํŠธ ์ €์žฅ ๋ฐ ๋ถ„์„Kafka
  • ๊ฐ„๋‹จํ•œ ์„œ๋น„์Šค ๊ฐ„ ํ†ต์‹ RabbitMQ