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