๐Ÿ“Ž kafka documentation


1.1. Kafka

a distributed, partitioned, and replicated commit log service

์†Œ์Šค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜(mysql, oracle, nosql,โ€ฆ/app/was/โ€ฆ)๊ณผ ํƒ€๊ฒŸ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜(hadoop, search engine, monitoring, emailโ€ฆ)๊ฐœ์ˆ˜๊ฐ€ ๋งŽ์•„์ง€๊ณ ,ํ”„๋กœํ† ์ฝœ ํฌ๋งท ํŒŒํŽธํ™”๊ฐ€ ์‹ฌํ•ด์ ธ ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์–ด๋ ค์›Œ์ง

์ด๋Ÿฌํ•œ ๋ณต์žกํ•จ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ค‘๊ฐ„์—์„œ ์†Œ์Šค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ํƒ€๊ฒŸ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์—ฐ๊ฒฐ์„ ๋Š์Šจํ•˜๊ฒŒ ํ•จ (scale out)

ํ”„๋กœ๋“€์„œ๊ฐ€ ํ์— ์ ์žฌํ•˜๊ณ  ์ปจ์Šˆ๋จธ๊ฐ€ ๊ฐ€์ ธ๊ฐ€๋Š” ๊ตฌ์กฐ


1.2. Brocker & Cluster


1.3. Topic

๋ฉ”์‹œ์ง€(๋ฐ์ดํ„ฐ) ๋ถ„๋ฅ˜ ๋‹จ์œ„ n๊ฐœ์˜ ํŒŒํ‹ฐ์…˜ ํ• ๋‹น ๊ฐ€๋Šฅ ๊ฐ ํŒŒํ‹ฐ์…˜ ๋งˆ๋‹ค ๊ณ ์œ  offset ๊ฐ€์ง ๋ฉ”์‹œ์ง€ ์ฒ˜๋ฆฌ์ˆœ์„œ๋Š” ํŒŒํ‹ฐ์…˜ ๋ณ„๋กœ ๊ด€๋ฆฌ


1.4. Producer

๋ฉ”์‹œ์ง€(๋ ˆ์ฝ”๋“œ)๋ฅผ brocker๋กœ ์†ก์‹  API

Role

Topic์— ํ•ด๋‹นํ•˜๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ํ•ด๋‹น ํŒŒํ‹ฐ์…˜์— offset๊ณผ ํ•จ๊ป˜ ๊ธฐ๋ก


1.5. Consumer

๋ฉ”์‹œ์ง€(๋ ˆ์ฝ”๋“œ) brocker์—์„œ ์ˆ˜์‹  API ๋‹ค์ˆ˜์˜ consumer๋ฅผ groupํ™” ํ•  ์ˆ˜ ์žˆ์Œ

Role

Offset number:

ํŒŒํ‹ฐ์…˜ ๋‚ด ๊ฐ–๊ฒŒ๋˜๋Š” ๊ณ ์œ  ํ‚ค ํ† ํ”ฝ ๋ณ„, ํŒŒํ‹ฐ์…˜ ๋ณ„๋กœ ๊ณ ์œ ํ•˜๊ฒŒ ์ง€์ •๋จ ์ปจ์Šˆ๋จธ๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋””๊นŒ์ง€ ์ฝ์—ˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ์šฉ๋„ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์€ ๊ณณ๊นŒ์ง€ commit

์ปจ์Šˆ๋จธ ์ด์Šˆ๊ฐ€ ๋ฐœ์ƒํ•ด๋„ __consumer_offset ํ† ํ”ฝ์— ์ €์žฅ๋œ ์ง€์  ํ™•์ธ(High availablility)

๋ณ‘๋ ฌ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•ด์„œ๋Š” consumer ๊ฐœ์ˆ˜๋Š” partition ๊ฐœ์ˆ˜๋ณด๋‹ค ์ ๊ฑฐ๋‚˜ ๊ฐ™์•„์•ผ ํ•จ


1.6. Kafka Streams

๋ฐ์ดํ„ฐ ๋ณ€ํ™˜(transformation) API

ESP (Event Stream Platform)

๋Œ€ํ‘œ์ ์œผ๋กœ Kafka, Kinesis, Flink, Spark, Storm, Logstashโ€ฆ

Kafka Streams API


1.7. Kafka Connect

Kafka client๊ฐ€ ์•„๋‹Œ connect๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ import/export ๊ฐ€๋Šฅ code ์—†์ด configuration์œผ๋กœ ๋ฐ์ดํ„ฐ migration ์‹œ ์‚ฌ์šฉ