Kafka-intro.md
Last updated
Last updated
LinkedIn ๋ฐ์ดํฐํ์์ ๊ฐ๋ฐํ ๋ถ์ฐ ๋ฐ์ดํฐ ์คํธ๋ฆผ ์ฒ๋ฆฌ ๋๊ตฌ
๊ธฐ์กด์ ๋ฐ์ดํฐ ํ์ดํ๋ผ์ธ ์ํคํ ์ฒ
๊ธฐ์กด์ ์ํคํ ์ฒ์์๋ redis๋ rabbitMQ์ ๊ฐ์ ์๋น์ค๋ค์ ์ฌ์ฉํ๊ณ ์์๋๋ฐ ์ด๋ ๊ฐ ์ ํ๋ฆฌ์ผ์ด์ ๋ง๋ค์ ํน์ง์ ๋ชจ๋ ๋ง์ถ์ด์ผํ๋ ๋ฌธ์ ์ ์ ๋ง๋ค์ด๋๋ค.
์ฆ, ๋ฐ์ดํฐ ํํธํ๊ฐ ์ฌ๊ฐํด์ก๊ณ ์ด๋ ์๋น์ค์ ์ ์ง๋ณด์๋ฅผ ์ด๋ ต๊ฒ ๋ง๋ค์๋ค.
์ ๋ฌธ์ ์ ์ ํด๊ฒฐํ๊ธฐ ์ํด
๋ฐ์ดํฐ์ ์ค์์ง๊ฒฐํ
๋์ฉ๋ ๋ฐ์ดํฐ ์ค์๊ฐ ์์ง
์ฌ์ฉ์์ ์ค์๊ฐ ์คํธ๋ฆผ์ผ๋ก ๋ฐ์ดํฐ ์๋น
ํ ์ ์๋ ๋๊ตฌ๊ฐ ํ์ํ๊ณ ๊ทธ ๋๊ตฌ๊ฐ ๋ฐ๋ก Kafka ์ด๋ค.
High throughout messaging capacity
์งง์ ์๊ฐ์์ ๋ฐ์ดํฐ์ ์ฒ๋ฆฌ ๊ฐ๋ฅ
Scalability์ fault tolerent : ํ์ฅ์ฑ๊ณผ ๊ณ ๊ฐ์ฉ์ฑ
broker์ replication์ ํ์ฉํ์ฌ ์ฝ๊ฒ ํ์ฅํ ์ ์๊ณ ๋ธ๋ก์ปค๊ฐ ์ฃฝ๋๋ผ๋ ๋ณต์ ๋ ๋ค๋ฅธ ๋ธ๋ก์ปค์์ ์ฝ๊ฒ ๋ณต๊ตฌ๊ฐ ๊ฐ๋ฅํ๋ค.
Undeleted Log
ํ ํ๋ซํผ๊ณผ ๋ฌ๋ฆฌ ์ปจ์๋จธ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์๋นํด๋ ๋ฐ์ดํฐ๋ ์ญ์ ๋์ง ์๋๋ค.
์ฌ๋ฌ ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋์ค๋ ๋น ๋ฐ์ดํฐ ์์ง ๋ฐ ์ฒ๋ฆฌ ์์คํ
ํ์ง๋ง ์๊ท๋ชจ์ ์คํํธ์ ์์๋ ์ฌ์ฉํ๋ ๊ฒ์ ์ถ์ฒํ๋ค. ๊ทธ ์ด์ ๋ ๋ฐ๋ก ํ์ฅ์ฑ๊ณผ ๊ณ ๊ฐ์ฉ์ฑ์ ์๋ค. ์คํํธ์ ์ ๊ธ์๋๋ก ์ฑ์ฅํ ์ ์๊ธฐ ๋๋ฌธ์ ๋์ ํ์ฅ์ฑ์ ํ์๋ก ํ๋ค. Kafka๋ broker๋ฅผ ํตํด ์ฝ๊ฒ ํ์ฅ์ํฌ ์ ์๊ณ ๋ง์ฝ ๋ธ๋ก์ปค์ ๋ฌธ์ ๊ฐ ์๊ธฐ๋๋ผ๋ replication์ ํตํด์ ์ฝ๊ฒ ๋ณต๊ตฌ๊ฐ ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ ์ฝ๊ฒ ๋์ ํ ์ ์๋ค.
์คํ๋ ์นดํ์นด ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ ์ค 1๋
3๋ ์ด์์ ๋ธ๋ก์ปค๋ก ํด๋ฌ์คํฐ ๊ตฌ์ฑ
Zookeeper์ ์ฐ๋ํ์
Zookeeper(Apache Zookeeper)
Kafka ๋ฉํ๋ฐ์ดํฐ ์ ์ฅ
๋ธ๋ก์ปค ์ค 1๋๋ ์ปจํธ๋กค๋ฌ ๊ธฐ๋ฅ ์ํ
Controller
๊ฐ ํ๋ก์ปค์๊ฒ ๋ด๋นํํฐ์ ํ ๋น
๋ธ๋ก์ปค ์ ์ ๋์ ๋ชจ๋ํฐ๋ง
๊ฐ์ฒด๋ฅผ byteํํ๋ก ์ ์ฅํ๊ธฐ ์ํด Serialize/Deserialize ํ์
Serializer
๊ธฐ๋ณธ์ผ๋ก String Serializer๋ฅผ ์ ๊ณต
๋ค์ํ๊ฒ Customํ์ฌ ์ฌ์ฉ ex) key = null, value = json formatting
๋ฉ์์ง ๋ถ๋ฅ ๋จ์
n๊ฐ์ ํํฐ์ ํ ๋น ๊ฐ๋ฅ
๊ฐ ํํฐ์ ๋ง๋ค ๊ณ ์ ํ ์คํ์ (offset)์ ๊ฐ์ง
๋ฉ์์ง ์ฒ๋ฆฌ์์๋ ํํฐ์ ๋ณ๋ก ์ ์ง ๊ด๋ฆฌ๋จ *Queue(FIFO) ๊ตฌ์กฐ๋ก ํํฐ์ ์ ๋ฐ์ดํฐ๊ฐ ๋ค์ด๊ฐ์ง๋ง ์ ํํ๊ฒ FIFO ๊ตฌ์กฐ๋ก ๋ฐ์ดํฐ์ ์ถ๋ ฅ์ด ์ด๋ฃจ์ด์ง์ง๋ ์์
์ค์ ๋ก ์ ์ฅ์ ํ์ผ์์คํ ์ผ๋ก not a DB
๋ฉ์์ง๊ฐ ์ ์ฅ๋ ๋๋ ์ธ๊ทธ๋จผํธํ์ผ์ด ์ด๋ ค์์
์ธ๊ทธ๋จผํธ๋ ์๊ฐ ๋๋ ํฌ๊ธฐ ๊ธฐ์ค์ผ๋ก ๋ซํ๊ณ , ๋ซํ ์ดํ ์ผ์ ์๊ฐ์ ์์ถ, ์ญ์ ๋จ
์ผ์ ์๊ฐ์ด ์ง๋๋ฉด ๋ฐ์ดํฐ๊ฐ ์ฌ๋ผ์ง