01.ApacheKafkaConnect

System๊ฐ„ ๋ฉ”์‹œ์ง€ ์ „์†ก

๋ฌธ์ œ์ 

  • ๊ฐœ๋ฐœ ์ธ๋ ฅ

  • ์†Œ์š”๋˜๋Š” ์‹œ๊ฐ„

  • ์†Œ์Šค ์ฝ”๋“œ ์œ ์ง€ ๋ณด์ˆ˜

Kafka Connector๋ฅผ ์‚ฌ์šฉํ•œ System ๊ฐ„ ๋ฉ”์‹œ์ง€ ์ „์†ก

  • Application ๊ฐœ๋ฐœ ๋ถˆํ•„์š”

  • System๊ฐ„ ๋ฉ”์‹œ์ง€ ์ „์†ก์ด ํ•„์š”ํ•  ๋•Œ, ์ด๋ฏธ ์ž˜ ๋งŒ๋“ค์–ด์ง„ Kafka Connector๋ฅผ ์†์‰ฝ๊ฒŒ ์‚ฌ์šฉ

  • ์œ„์˜ ์–ธ๊ธ‰ํ•œ ๋ฌธ์ œ์ ์—์„œ ์ž์œ ๋กœ์›Œ์ง„๋‹ค. ๋‹จ, ์ œํ’ˆ ๊ตฌ๋งค ๋น„์šฉ ๋ฐœ์ƒ

Kafka Connect? Connector?

Kafka Connect๋Š” Apache Kafka ์•ˆํŒŽ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ŠคํŠธ๋ฆฌ๋ฐํ•˜๊ธฐ ์œ„ํ•œ Framework

  • Kafka Connect๋Š” ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ ์‹œ์Šคํ…œ์„ Kafka์™€ ํ†ตํ•ฉํ•˜๋Š” ๊ณผ์ •์„ ํ‘œ์ค€ํ™”ํ•œ Framework ํ†ตํ•ฉ์„ ์œ„ํ•œ Connector ๊ฐœ๋ฐœ, ๋ฐฐํฌ, ๊ด€๋ฆฌ๋ฅผ ๋‹จ์ˆœํ™”

  • Connectors - Task๋ฅผ ๊ด€๋ฆฌํ•˜์—ฌ ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆฌ๋ฐ์„ ์กฐ์ •ํ•˜๋Š” Plugin(jar), Java Class/Instance

  • Tasks - Kafka์™€ ๋‹ค๋ฅธ ์‹œ์Šคํ…œ๊ฐ„์˜ ๋ฐ์ดํ„ฐ๋ฅผ์ „์†กํ•˜๋Š” ๋ฐฉ๋ฒ•์˜ ๊ตฌํ˜„์ฒด(Java Class/Instance)

  • Workers - Connector ๋ฐ Task๋ฅผ ์‹คํ–‰ํ•˜๋Š” ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ์„ธ์Šค(Process)

  • Converters - Connect์™€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด๊ฑฐ๋‚˜ ๋ฐ›๋Š” ์‹œ์Šคํ…œ ๊ฐ„์— ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ€ํ™˜ํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋˜๋Š” Components(Java Class)

  • Transforms - Connector์— ์˜ํ•ด ์ƒ์„ฑ๋˜๊ฑฐ๋‚˜ Connector๋กœ ์ „์†ก๋˜๋Š” ๊ฐ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฐ„๋‹จํ•œ Components(Java Class)

  • Dead Letter Queue - Connect์—์„œ Connector ์˜ค๋ฅ˜๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•

์ปจ๋ฒ„ํ„ฐ๋Š” ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๊ธฐ ์ „์— ์Šคํ‚ค๋งˆ๋ฅผ ๋ณ€๊ฒฝํ•˜๋„๋ก ๋•๋Š”๋‹ค. JsonConverter, StringConverter, ByteArrayConverter๋ฅผ ๊ธฐ๋ณธ์œผ๋กœ ์ œ๊ณตํ•˜๊ณ  ์ด์™ธ๋Š” jarํŒŒ์ผ์„ ์ถ”๊ฐ€ํ•ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

ํŠธ๋žœ์Šคํผ์€ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์‹œ ๊ฐ ๋ฉ”์‹œ์ง€ ๋‹จ์œ„๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•œ ์šฉ๋„๋กœ ์‚ฌ์šฉ๋œ๋‹ค. ex) Json ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์‹œ ํŠน์ • ํ‚ค๋ฅผ ์‚ญ์ œํ•˜๊ฑฐ๋‚˜ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค.

Cofluent HUB

Connect Architecture

Worker ํ”„๋กœ์„ธ์Šค๊ฐ€ Connector, Task ๋“ฑ์„ ๊ด€๋ฆฌ

  • Connect Worker Node ์ƒ์—์„œ Connect Worker Process๊ฐ€ ๋™์ž‘

  • Connect Worker Process๊ฐ€ Connector Instance, Task Instance๋ฅผ ๊ด€๋ฆฌ

Standalone vs Distributed Workers

Single Process vs Multi Process(Scalability & Automatic Fault Tolerance)

Multi Distributed Connect Clusters

group.id๋กœ Cluster๊ฐ„ ๊ตฌ๋ถ„

Last updated