01. Apache Kafka
Last updated
Last updated
Data in Motion Platform for Enterprise(Event Streaming Platform)
Event: ๋น์ง๋์ค์์ ์ผ์ด๋๋ ๋ฐ์ดํฐ๋ฅผ ์๋ฏธ
๋น์ง๋์ค๋ก ์ธํด ๋ฐ์ดํฐ๊ฐ ์์ฑ๋๋ ๊ฒ.
์น ์ฌ์ดํธ์์ ๋ฌด์ธ๊ฐ๋ฅผ ํด๋ฆญ.
์ฒญ๊ตฌ์ ๋ฐํ
๋น ๋ฐ์ดํฐ์ ํน์ง์ ๊ฐ์ง
๋์ฉ๋์ ๋ฐ์ดํฐ ๋ฐ์
Event Stream: ์ฐ์์ ์ธ ๋ง์ ์ด๋ฒคํธ๋ค์ ํ๋ฆ์ ์๋ฏธ
๋๋์ ๋ฐ์ดํฐ๋ฅผ ๋์ ์ฒ๋ฆฌ๋๊ณผ ์ค์๊ฐ์ผ๋ก ์ทจ๊ธํ๊ธฐ ์ํ ์ ํ.
LinkedIn ์์ ์ต์ด ๊ฐ๋ฐ.
๊ธฐ์กด์ Messaging Platform์ผ๋ก ์ฒ๋ฆฌ ๋ถ๊ฐ๋ฅ โ ์ด๋ฒคํธ ์คํธ๋ฆผ ์ฒ๋ฆฌ๋ฅผ ์ํด ๊ฐ๋ฐ
์น์ฌ์ดํธ์ ๋ก๊ทธ๋ฅผ ์ฒ๋ฆฌํ์ฌ ์น์ฌ์ดํธ ํ๋์ ์ถ์ ํ๋๊ฒ์ ๋ชฉ์ ์ผ๋ก ๊ฐ๋ฐ๋์๋ค. (์ฌ์ฉ์์ ํ์ด์ง ๋ทฐ&๊ด๊ณ ์ ์ด์ฉ ๋ฑ)
์นดํ์นด ์ด์ ์ ํ(๋งํฌ๋์ธ์ ์๊ตฌ์ฌํญ์ ์ถฉ์กฑํ์ง ๋ชปํ ๋ถ๋ถ)
๋ฉ์์ง ํ
ํ ๊ฑด์ ๋ ์ฝ๋ ๋จ์๋ก ์ค์๊ฐ ์ฒ๋ฆฌ๋ฅผ ์ํ ๊ฒ.(WebSphere MQ,Active MQ, Rabbit MQ, ๋ฑ)
๊ฐ๋ ฅํ ์ ๋ฌ ๋ณด์ฆ์ด ์คํ๋ ค ์ค๋ฒ ์คํฉ.(๋งํฌ๋์ธ์ '๋์ ์ฒ๋ฆฌ๋'์ ์ฐ์ ์์๊ฐ ๋ ๋์๋ค.)
์ค์ผ์ผ ์์์ด ์ฉ์ด ํ์ง ์์๋ค.
๋ฉ์์ง๊ฐ ๋๋์ผ๋ก ์์ด๋ ๊ฒ์ ์์ํ์ง ์์๋ค.
๋ก๊ทธ ์์ง ์์คํ
์ฃผ๋ก ์น ์๋ฒ ๋ฑ์ ํ๋ก ํธ์๋ ์๋ฒ์ ๋ก๊ทธ๋ฅผ ์์งํ๊ธฐ ์ํ ๊ฒ.(Scribe, Flume, ๋ฑ)
HDFS(Hadoop Distributed File System)๋ก ๋ฐ์ดํฐ ์ถ์ ๊ณผ ๋ฐฐ์น ์ฒ๋ฆฌ๋ง ๊ณ ๋ ค.
์ด๋ ค์ด API
์์ ํ๋ ์ชฝ์ด ์์๋ก ๋ฉ์์ง๋ฅผ ์์ ํ๊ธฐ ์ด๋ ต๋ค.
ETL (Extract, Transform, Load) ๋๊ตฌ
ETL: ๋ฐ์ดํฐ ๋ฐ์์์์ ๋ฐ์ดํฐ๋ฅผ ์ถ์ถํ๊ณ ํ์์ ๋ฐ๋ผ ๋ณํํด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฐ์ดํฐ ์จ์ดํ์ฐ์ค์ ๋ก๋ํ๋ ๊ธฐ๋ฅ์ ๊ฐ์ถ๊ณ ์๋ค.(DataStage, Interstage, Cosminexus, Informatica PowerCenter, Talend, ๋ฑ)
๋ฐ์ดํฐ ํ์ผ ๋จ์๋ก ๋ค๋ฃฌ๋ค.(๋ ์ฝ๋ ๋จ์๋ก ๋ค๋ฃฐ ์๊ฐ ์์๋ค.)
์์ ํ๋ ์ชฝ์ด ์์๋ก ๋ฉ์์ง๋ฅผ ์์ ํ๊ธฐ ์ด๋ ต๋ค.
์ด๋ฒคํธ ์คํธ๋ฆผ์ ์์ ํ๊ฒ ์ ์ก(pub-sub ๊ตฌ์กฐ)
์ด๋ฒคํธ ์คํธ๋ฆผ์ ๋์คํฌ์ ์ ์ฅ
์ด๋ฒคํธ ์คํธ๋ฆผ์ ๋ถ์ ๋ฐ ์ฒ๋ฆฌ
๊ด๋ จ ๊ธฐ์ Confluent
kafka ์ฐฝ์์๊ฐ ์ค๋ฆฝ
2014๋ ์ค๋ฆฝ
๊ณ ์ฑ๋ฅ(๊ณ ์คํฉ์ ์ฅ๋น๋ฅผ ์๊ตฌํ์ง ์๋๋ค.)
๊ธฐ์กด์ message platform ๋๋น ์๋ฑํ ์ฒ๋ฆฌ๋(์ฒ๋ฆฌ๋์ด ์ฆ๊ฐ์ ๋ฐ๋ผ ์ฑ๋ฅ ์ฆ๊ฐ)
ํ์ฅ์ฑ : ์ฌ๋ฌ ์๋ฒ๋ก 'ํ์ฅ ๊ตฌ์ฑ'์ด ๊ฐ๋ฅ, ๋ฐ์ดํฐ์ ์์ ๋ฐ๋ผ ์์คํ ํ์ฅ์ด ๊ฐ๋ฅ.
์์์ฑ : ์์ ํ ๋ฐ์ดํฐ๋ฅผ '๋์คํฌ์ ์ ์ง' ํ ์ ์๊ธฐ ๋๋ฌธ์ ์ธ์ ๋ ์ง ๋ฐ์ดํฐ ์ ๊ทผ.
์ ์ฐ์ฑ : '์ฐ๊ณํ ์ ์๋ ์ ํ์ด ๋ง๊ธฐ' ๋๋ฌธ์ ์ ํ์ด๋ ์์คํ ์ ์ฐ๊ฒฐํ๋ ํ๋ธ ์ญํ .
์ ๋ขฐ์ฑ : '๋ฉ์์ง ์ ๋ฌ ๋ณด์ฆ' ๋ฐ์ดํฐ์ ๋ถ์ค์ ๊ฑฑ์ ํ์ง ์์๋ ๋๋ค.
Messaging system
IOT ๋๋ฐ์ด์ค๋ก๋ถํฐ ๋ฐ์ดํฐ ์์ง
์ ํ๋ฆฌ์ผ์ด์ ์์ ๋ฐ์ํ๋ ๋ก๊ทธ ์์ง
Realtime Event Stream Processing (Fraud Detection, ์ด์ ๊ฐ์ง ๋ฑ)
DB ๋๊ธฐํ (MSA ๊ธฐ๋ฐ์ ๋ถ๋ฆฌ๋ DB๊ฐ ๋๊ธฐํ)
์ค์๊ฐ ETL
Spark, Flink, Storm, Haddop๊ณผ ๊ฐ์ ๋น ๋ฐ์ดํฐ ๊ธฐ์ ๊ณผ ๊ฐ์ด ์ฌ์ฉ
๊ตํต: ์ด์ ์-ํ์น์ ๋งค์น, ์ค์๊ฐ ์ฐจ๋ ์ง๋จ
๊ธ์ต: ์ฌ๊ธฐ ๊ฐ์ง, ์ค๋ณต ๊ฑฐ๋ ๊ฐ์ง, ๊ฑฐ๋, ์ํ ์์คํ
์ค๋ฝ: ์ค์๊ฐ ์ถ์ฒ, ์ฌ๊ธฐ ๊ฐ์ง
์จ๋ผ์ธ ๋ง์ผ: ์ค์๊ฐ ์ฌ๊ณ ์ ๋ณด, ๋์ฉ๋ ์ฃผ๋ฌธ์ ์์ ํ ์ฒ๋ฆฌ