01. Apache Kafka

Apache Kafka๋ž€?

Data in Motion Platform for Enterprise(Event Streaming Platform)

Event: ๋น„์ง€๋‹ˆ์Šค์—์„œ ์ผ์–ด๋‚˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์˜๋ฏธ

  • ๋น„์ง€๋‹ˆ์Šค๋กœ ์ธํ•ด ๋ฐ์ดํ„ฐ๊ฐ€ ์ƒ์„ฑ๋˜๋Š” ๊ฒƒ.

    • ์›น ์‚ฌ์ดํŠธ์—์„œ ๋ฌด์–ธ๊ฐ€๋ฅผ ํด๋ฆญ.

    • ์ฒญ๊ตฌ์„œ ๋ฐœํ–‰

  • ๋น… ๋ฐ์ดํ„ฐ์˜ ํŠน์ง•์„ ๊ฐ€์ง

  • ๋Œ€์šฉ๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ ๋ฐœ์ƒ

Event Stream: ์—ฐ์†์ ์ธ ๋งŽ์€ ์ด๋ฒคํŠธ๋“ค์˜ ํ๋ฆ„์„ ์˜๋ฏธ

  • ๋Œ€๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋†’์€ ์ฒ˜๋ฆฌ๋Ÿ‰๊ณผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ทจ๊ธ‰ํ•˜๊ธฐ ์œ„ํ•œ ์ œํ’ˆ.

  • LinkedIn ์—์„œ ์ตœ์ดˆ ๊ฐœ๋ฐœ.

    • ๊ธฐ์กด์˜ Messaging Platform์œผ๋กœ ์ฒ˜๋ฆฌ ๋ถˆ๊ฐ€๋Šฅ โ†’ ์ด๋ฒคํŠธ ์ŠคํŠธ๋ฆผ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•ด ๊ฐœ๋ฐœ

    • ์›น์‚ฌ์ดํŠธ์˜ ๋กœ๊ทธ๋ฅผ ์ฒ˜๋ฆฌํ•˜์—ฌ ์›น์‚ฌ์ดํŠธ ํ™œ๋™์„ ์ถ”์ ํ•˜๋Š”๊ฒƒ์„ ๋ชฉ์ ์œผ๋กœ ๊ฐœ๋ฐœ๋˜์—ˆ๋‹ค. (์‚ฌ์šฉ์ž์˜ ํŽ˜์ด์ง€ ๋ทฐ&๊ด‘๊ณ ์˜ ์ด์šฉ ๋“ฑ)

์นดํ”„์นด ์ด์ „ ์ œํ’ˆ(๋งํฌ๋“œ์ธ์˜ ์š”๊ตฌ์‚ฌํ•ญ์„ ์ถฉ์กฑํ•˜์ง€ ๋ชปํ•œ ๋ถ€๋ถ„)

  1. ๋ฉ”์‹œ์ง€ ํ

    • ํ•œ ๊ฑด์˜ ๋ ˆ์ฝ”๋“œ ๋‹จ์œ„๋กœ ์‹ค์‹œ๊ฐ„ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ ๊ฒƒ.(WebSphere MQ,Active MQ, Rabbit MQ, ๋“ฑ)

    • ๊ฐ•๋ ฅํ•œ ์ „๋‹ฌ ๋ณด์ฆ์ด ์˜คํžˆ๋ ค ์˜ค๋ฒ„ ์ŠคํŒฉ.(๋งํฌ๋“œ์ธ์€ '๋†’์€ ์ฒ˜๋ฆฌ๋Ÿ‰'์˜ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋” ๋†’์•˜๋‹ค.)

    • ์Šค์ผ€์ผ ์•„์›ƒ์ด ์šฉ์ด ํ•˜์ง€ ์•Š์•˜๋‹ค.

    • ๋ฉ”์‹œ์ง€๊ฐ€ ๋Œ€๋Ÿ‰์œผ๋กœ ์Œ“์ด๋Š” ๊ฒƒ์„ ์˜ˆ์ƒํ•˜์ง€ ์•Š์•˜๋‹ค.

  2. ๋กœ๊ทธ ์ˆ˜์ง‘ ์‹œ์Šคํ…œ

    • ์ฃผ๋กœ ์›น ์„œ๋ฒ„ ๋“ฑ์˜ ํ”„๋ก ํŠธ์—”๋“œ ์„œ๋ฒ„์˜ ๋กœ๊ทธ๋ฅผ ์ˆ˜์ง‘ํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ.(Scribe, Flume, ๋“ฑ)

    • HDFS(Hadoop Distributed File System)๋กœ ๋ฐ์ดํ„ฐ ์ถ•์ ๊ณผ ๋ฐฐ์น˜ ์ฒ˜๋ฆฌ๋งŒ ๊ณ ๋ ค.

    • ์–ด๋ ค์šด API

    • ์ˆ˜์‹ ํ•˜๋Š” ์ชฝ์ด ์ž„์˜๋กœ ๋ฉ”์‹œ์ง€๋ฅผ ์ˆ˜์‹ ํ•˜๊ธฐ ์–ด๋ ต๋‹ค.

  3. ETL (Extract, Transform, Load) ๋„๊ตฌ

    ETL: ๋ฐ์ดํ„ฐ ๋ฐœ์ƒ์›์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ถœํ•˜๊ณ  ํ•„์š”์— ๋”ฐ๋ผ ๋ณ€ํ™˜ํ•ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ๋ฐ์ดํ„ฐ ์›จ์–ดํ•˜์šฐ์Šค์— ๋กœ๋“œํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ฐ–์ถ”๊ณ  ์žˆ๋‹ค.(DataStage, Interstage, Cosminexus, Informatica PowerCenter, Talend, ๋“ฑ)

    • ๋ฐ์ดํ„ฐ ํŒŒ์ผ ๋‹จ์œ„๋กœ ๋‹ค๋ฃฌ๋‹ค.(๋ ˆ์ฝ”๋“œ ๋‹จ์œ„๋กœ ๋‹ค๋ฃฐ ์ˆ˜๊ฐ€ ์—†์—ˆ๋‹ค.)

    • ์ˆ˜์‹ ํ•˜๋Š” ์ชฝ์ด ์ž„์˜๋กœ ๋ฉ”์‹œ์ง€๋ฅผ ์ˆ˜์‹ ํ•˜๊ธฐ ์–ด๋ ต๋‹ค.

ํŠน์ง•

  1. ์ด๋ฒคํŠธ ์ŠคํŠธ๋ฆผ์„ ์•ˆ์ „ํ•˜๊ฒŒ ์ „์†ก(pub-sub ๊ตฌ์กฐ)

  2. ์ด๋ฒคํŠธ ์ŠคํŠธ๋ฆผ์„ ๋””์Šคํฌ์— ์ €์žฅ

  3. ์ด๋ฒคํŠธ ์ŠคํŠธ๋ฆผ์„ ๋ถ„์„ ๋ฐ ์ฒ˜๋ฆฌ

๊ด€๋ จ ๊ธฐ์—… Confluent

  • kafka ์ฐฝ์‹œ์ž๊ฐ€ ์„ค๋ฆฝ

  • 2014๋…„ ์„ค๋ฆฝ

์žฅ์ 

  • ๊ณ ์„ฑ๋Šฅ(๊ณ ์ŠคํŒฉ์˜ ์žฅ๋น„๋ฅผ ์š”๊ตฌํ•˜์ง€ ์•Š๋Š”๋‹ค.)

  • ๊ธฐ์กด์˜ message platform ๋Œ€๋น„ ์›”๋“ฑํ•œ ์ฒ˜๋ฆฌ๋Ÿ‰(์ฒ˜๋ฆฌ๋Ÿ‰์ด ์ฆ๊ฐ€์— ๋”ฐ๋ผ ์„ฑ๋Šฅ ์ฆ๊ฐ€)

  1. ํ™•์žฅ์„ฑ : ์—ฌ๋Ÿฌ ์„œ๋ฒ„๋กœ 'ํ™•์žฅ ๊ตฌ์„ฑ'์ด ๊ฐ€๋Šฅ, ๋ฐ์ดํ„ฐ์— ์–‘์— ๋”ฐ๋ผ ์‹œ์Šคํ…œ ํ™•์žฅ์ด ๊ฐ€๋Šฅ.

  2. ์˜์†์„ฑ : ์ˆ˜์‹ ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ '๋””์Šคํฌ์— ์œ ์ง€' ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์–ธ์ œ๋“ ์ง€ ๋ฐ์ดํ„ฐ ์ ‘๊ทผ.

  3. ์œ ์—ฐ์„ฑ : '์—ฐ๊ณ„ํ•  ์ˆ˜ ์žˆ๋Š” ์ œํ’ˆ์ด ๋งŽ๊ธฐ' ๋•Œ๋ฌธ์— ์ œํ’ˆ์ด๋‚˜ ์‹œ์Šคํ…œ์„ ์—ฐ๊ฒฐํ•˜๋Š” ํ—ˆ๋ธŒ ์—ญํ• .

  4. ์‹ ๋ขฐ์„ฑ : '๋ฉ”์‹œ์ง€ ์ „๋‹ฌ ๋ณด์ฆ' ๋ฐ์ดํ„ฐ์˜ ๋ถ„์‹ค์„ ๊ฑฑ์ •ํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค.

์‚ฌ์šฉ ์‚ฌ๋ก€

Event๊ฐ€ ์‚ฌ์šฉ๋˜๋Š” ๋ชจ๋“  ๊ณณ์—์„œ ์‚ฌ์šฉ

  • Messaging system

  • IOT ๋””๋ฐ”์ด์Šค๋กœ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘

  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๋กœ๊ทธ ์ˆ˜์ง‘

  • Realtime Event Stream Processing (Fraud Detection, ์ด์ƒ ๊ฐ์ง€ ๋“ฑ)

  • DB ๋™๊ธฐํ™” (MSA ๊ธฐ๋ฐ˜์˜ ๋ถ„๋ฆฌ๋œ DB๊ฐ„ ๋™๊ธฐํ™”)

  • ์‹ค์‹œ๊ฐ„ ETL

  • Spark, Flink, Storm, Haddop๊ณผ ๊ฐ™์€ ๋น…๋ฐ์ดํ„ฐ ๊ธฐ์ˆ ๊ณผ ๊ฐ™์ด ์‚ฌ์šฉ

์‚ฐ์—… ๋ถ„์•ผ๋ณ„ ์‚ฌ๋ก€

  • ๊ตํ†ต: ์šด์ „์ž-ํƒ‘์Šน์ž ๋งค์น˜, ์‹ค์‹œ๊ฐ„ ์ฐจ๋Ÿ‰ ์ง„๋‹จ

  • ๊ธˆ์œต: ์‚ฌ๊ธฐ ๊ฐ์ง€, ์ค‘๋ณต ๊ฑฐ๋ž˜ ๊ฐ์ง€, ๊ฑฐ๋ž˜, ์œ„ํ—˜ ์‹œ์Šคํ…œ

  • ์˜ค๋ฝ: ์‹ค์‹œ๊ฐ„ ์ถ”์ฒœ, ์‚ฌ๊ธฐ ๊ฐ์ง€

  • ์˜จ๋ผ์ธ ๋งˆ์ผ“: ์‹ค์‹œ๊ฐ„ ์žฌ๊ณ  ์ •๋ณด, ๋Œ€์šฉ๋Ÿ‰ ์ฃผ๋ฌธ์˜ ์•ˆ์ „ํ•œ ์ฒ˜๋ฆฌ

Last updated