What is Kafka?
Contents
ํ์๊ฐ ๋งก๊ณ ์๋ ์๋น์ค์ Elastic Stack ์ ๋์ ํ๋ฉด์ ์ค๊ฐ์ ๋ฒํผ๊ฐ ํ์ํ์ฌ Message-Queue ์์คํ ๋ค์ ์์๋ณด๋ ์ค Kafka ์ ๋ํด ์์๋ณด๊ณ , ์ ๋ฆฌ๋ฅผ ํด๋ณด๊ฒ ๋๋ค.
๊ธฐ๋ณธ์ค๋ช ๋ฐ ๊ธฐ์กด ๋ฉ์ธ์ง ์์คํ ๊ณผ ๋ค๋ฅธ์
- ๋ฉ์ธ์ง ํ์ ์ผ์ข
- ๋ง ๊ทธ๋๋ก
๋ถ์ฐํ ์คํธ๋ฆฌ๋ฐ ํ๋ซํผ
, LinkedIn์์ ์ฌ๋ฌ ๊ตฌ์ง + ์ฑ์ฉ ์ ๋ณด๋ค์ ํ๊ณณ์์ ์ฒ๋ฆฌ(๋ฐํ/๊ตฌ๋ )ํ ์ ์๋ ํ๋ซํผ์ผ๋ก ๊ฐ๋ฐ์ด ์์ - ๋์ฉ๋์ ์ค์๊ฐ ๋ก๊ทธ ์ฒ๋ฆฌ์ ํนํ๋์ด ์ค๊ณ๋ ๋ฉ์์ง ์์คํ , ๊ธฐ์กด ๋ฒ์ฉ ๋ฉ์์ง ์์คํ ๋๋น TPS๊ฐ ๋งค์ฐ ์ฐ์
- ๋ฉ์์ง๋ฅผ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅํ๋ ๊ธฐ์กด ๋ฉ์์ง ์์คํ ๊ณผ๋ ๋ฌ๋ฆฌ ๋ฉ์์ง๋ฅผ ํ์ผ ์์คํ ์ ์ ์ฅ โ ์นดํ์นด ์ฌ์์์ผ๋ก ์ธํ ๋ฉ์ธ์ง ์ ์ค ์ฐ๋ ค ๊ฐ์
- ๊ธฐ์กด์ ๋ฉ์์ง ์์คํ ์์๋ broker๊ฐ consumer์๊ฒ ๋ฉ์์ง๋ฅผ pushํด ์ฃผ๋ ๋ฐฉ์์ธ๋ฐ ๋ฐํด, Kafka๋ consumer๊ฐ broker๋ก๋ถํฐ ์ง์ ๋ฉ์์ง๋ฅผ ๊ฐ์ง๊ณ ๊ฐ๋ pull ๋ฐฉ์์ผ๋ก ๋์ํ๊ธฐ ๋๋ฌธ์ consumer๋ ์์ ์ ์ฒ๋ฆฌ๋ฅ๋ ฅ๋งํผ์ ๋ฉ์์ง๋ง broker๋ก๋ถํฐ ๊ฐ์ ธ์ค๊ธฐ ๋๋ฌธ์ ์ต์ ์ ์ฑ๋ฅ์ ๋ผ ์ ์๋ค.
์นดํ์นด ์ฃผ์ ๊ฐ๋
- producer : ๋ฉ์ธ์ง ์์ฐ(๋ฐํ)์.
- consumer : ๋ฉ์ธ์ง ์๋น์
- consumer group : consumer ๋ค๋ผ๋ฆฌ ๋ฉ์ธ์ง๋ฅผ ๋๋ ์ ๊ฐ์ ธ๊ฐ๋ค.offset ์ ๊ณต์ ํ์ฌ ์ค๋ณต์ผ๋ก ๊ฐ์ ธ๊ฐ์ง ์๋๋ค.
- broker : ์นดํ์นด ์๋ฒ๋ฅผ ๊ฐ๋ฆฌํด
- zookeeper : ์นดํ์นด ์๋ฒ (+ํด๋ฌ์คํฐ) ์ํ๋ฅผ ๊ด๋ฆฌํ๊ณ
- cluster : ๋ธ๋ก์ปค๋ค์ ๋ฌถ์
- topic : ๋ฉ์ธ์ง ์ข ๋ฅ
- partitions : topic ์ด ๋๋ ์ง๋ ๋จ์
- Log : 1๊ฐ์ ๋ฉ์ธ์ง
- offset : ํํฐ์ ๋ด์์ ๊ฐ ๋ฉ์์ง๊ฐ ๊ฐ์ง๋ unique id
์นดํ์นด๋ ์ด๋ค์์ผ๋ก ๋์๊ฐ๋๊ฐ
zookeeper ๊ฐ kafka ์ ์ํ์ ํด๋ฌ์คํฐ ๊ด๋ฆฌ๋ฅผ ํด์ค๋ค.
์ ํด์ง topic ์ producer ๊ฐ ๋ฉ์ธ์ง๋ฅผ ๋ฐํํด๋์ผ๋ฉด consumer ๊ฐ ํ์ํ ๋ ํด๋น ๋ฉ์ธ์ง๋ฅผ ๊ฐ์ ธ๊ฐ๋ค. (์ฌ๊ธฐ์ ์นดํ์นด๋ก ๋ฐํ๋ ๋ฉ์ธ์ง๋ค์ consumer๊ฐ ๋ฉ์ธ์ง๋ฅผ ์๋นํ๋ค๊ณ ํด์ ์์ด์ง๋๊ฒ ์๋๋ผ ์นดํ์นด ์ค์
log.retention.hours(default : 168[7์ผ])
์ ์ํด ์ญ์ ๋๋ค.)
- partition ๊ฐ์์ consumer group ๊ฐ๋
- ํ์์(consumer-01) : ํํฐ์ ๊ฐ์๊ฐ 4๊ฐ์ธ๋ฐ ๋นํด ์ปจ์๋จธ๊ฐ 3๊ฐ, ์ด๋ ๊ฒ ๋๋ฉด ์ด๋ ์ปจ์๋จธ๊ฐ ๋๊ฐ์ ํํฐ์ ์ ๋ด๋นํด์ผํ๋ ์ํฉ์ด ์๊ธด๋ค.
- ์ฃผํฉ์(consumer-02) : ํํฐ์ ๊ฐ์๊ฐ 4๊ฐ์ธ๋ฐ ๋นํด ์ปจ์๋จธ๊ฐ 5๊ฐ, ์ด๋ ๊ฒ ๋๋ฉด ํ๋์ ๋ ธ๋(?) ์ปจ์๋จธ๊ฐ ์๊ธฐ๋ ์ํฉ์ด ์๊ธด๋ค.
- ๊ฐ์ฅ ์ ์ ํ ๊ฐ์๋ ์ ํด์ง์ง ์์์ง๋ง ํต์ ์ปจ์๋จธ๊ทธ๋ฃน์ ์ปจ์๋จธ ๊ฐ์์ ํํฐ์ ๊ฐ์๋ฅผ ๋์ผํ๊ฒ ๊ฐ์ ธ๊ฐ๊ณค ํ๋ค.
์ฐธ๊ณ url
- http://kafka.apache.org/
- http://www.popit.kr/author/peter5236/
- http://jinhokwon.tistory.com/168
- http://programist.tistory.com/entry/Apache-Kafka-ํด๋ฌ์คํฐ๋ง-๊ตฌ์ถ-๋ฐ-ํ ์คํธ
- https://www.elastic.co/kr/blog/just-enough-kafka-for-the-elastic-stack-part1
- https://www.slideshare.net/springloops/apache-kafka-intro20150313springloops-46067669
Buy me a coffee