# Apache Kafka

# ๋ชฉ์ฐจ

  • Kafka๊ฐ€ ๋ฌด์—‡์ธ๊ฐ€์š”?

# Kafka๊ฐ€ ๋ฌด์—‡์ธ๊ฐ€์š”? (1)

  • Apache Kafkaยฎ is a distributed streaming platform (opens new window)
  • ๋ง ๊ทธ๋Œ€๋กœ ๋ถ„์‚ฐ ์ŠคํŠธ๋ฆฌ๋ฐ ํ”Œ๋žซํผ, LinkedIn ์—์„œ ๊ตฌ์ง + ์ฑ„์šฉ ์ •๋ณด๋“ค์„ ํ•œ๊ณณ์—์„œ ์ฒ˜๋ฆฌ(๋ฐœํ–‰/๊ตฌ๋…)ํ• ์ˆ˜ ์žˆ๋Š” ํ”Œ๋žซํผ์œผ๋กœ ๊ฐœ๋ฐœ์ด ์‹œ์ž‘
  • ๋ถ„์‚ฐ๋œ ํ˜•ํƒœ๋กœ ๋Œ์•„๊ฐ€๋Š” publish-subscribe ๋ฐฉ์‹ ๋ฉ”์‹œ์ง€ ๊ตํ™˜ ์‹œ์Šคํ…œ

    Publish: ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์„ฑ, Subscribe: ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์–ด ์†Œ๋น„

  • ๋ฉ”์‹œ์ง€๋ฅผ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅํ•˜๋Š” ๊ธฐ์กด ๋ฉ”์‹œ์ง• ์‹œ์Šคํ…œ๊ณผ๋Š” ๋‹ฌ๋ฆฌ ๋ฉ”์‹œ์ง€๋ฅผ ํŒŒ์ผ ์‹œ์Šคํ…œ์— ์ €์žฅ

    ์นดํ”„์นด ์žฌ์‹œ์ž‘์œผ๋กœ ์ธํ•œ ๋ฉ”์„ธ์ง€ ์œ ์‹ค ์šฐ๋ ค ๊ฐ์†Œ

# Kafka๊ฐ€ ๋ฌด์—‡์ธ๊ฐ€์š”? (2)

  • ๊ธฐ๋ณธ ๊ฐœ๋…

    • ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ์„ผํ„ฐ๋กœ ํ™•์žฅํ•  ์ˆ˜ ์žˆ๋Š” ํ•˜๋‚˜ ํ˜น์€ ๊ทธ ์ด์ƒ์˜ ์„œ๋ฒ„์—์„œ ํด๋Ÿฌ์Šคํ„ฐ๋กœ ์‹คํ–‰(์ˆ˜ํ–‰/์šด์˜)๋œ๋‹ค
    • ์นดํ”„์นด ํด๋Ÿฌ์Šคํ„ฐ๋Š” ๋ ˆ์ฝ”๋“œ(records)๋ผ๋Š” ์ŠคํŠธ๋ฆผ์„ ํ† ํ”ฝ(topics)์ด๋ผ๊ณ  ๋ถˆ๋ฆฌ๋Š” ์นดํ…Œ๊ณ ๋ฆฌ์— ์ €์žฅ
    • ๊ฐ๊ฐ์˜ ๋ ˆ์ฝ”๋“œ๋Š” ํ‚ค(a key,), ๊ฐ’(a value), ํƒ€์ž„์Šคํƒฌํ”„(a timestamp)๋กœ ๊ตฌ์„ฑ
  • ๋ถ„์‚ฐ๋œ ํ˜•ํƒœ๋กœ ๋™์ž‘ํ•˜๋Š” changelog

    • Key ๊ฐ’์— ํ• ๋‹น๋œ Value ๊ฐ’๋“ค์— ๋Œ€ํ•œ ๋ณ€๊ฒฝ ๋‚ด์—ญ์„ ๋ถ„์‚ฐ๋œ ํ˜•ํƒœ๋กœ ์ €์žฅํ•œ๋‹ค
    • ์ €์žฅ๋œ Key-Value ๋“ค์„ ๋ถ„๋ฐฐํ•œ๋‹ค.