๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ“จ Apache Kafka

[์•„ํŒŒ์น˜ ์นดํ”„์นด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ with ์ž๋ฐ”] 3-6์žฅ ์นดํ”„์นด ์ปค๋„ฅํŠธ

by GroovyArea 2023. 4. 20.

์นดํ”„์นด ์ปค๋„ฅํŠธ๋ž€?

  • ๋ฐ์ดํ„ฐ ํŒŒ์ดํ”„๋ผ์ธ ์ƒ์„ฑ ์‹œ ๋ฐ˜๋ณต ์ž‘์—…์„ ์ค„์ด๊ณ , ํšจ์œจ์ ์ธ ์ „์†ก์„ ์œ„ํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜
  • ์˜ˆ๋กœ, ํŒŒ์ดํ”„๋ผ์ธ ์ƒ์„ฑ ์‹œ, ํ”„๋กœ๋“€์„œ | ์ปจ์Šˆ๋จธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ณ„์† ๋งŒ๋“ค ์ˆ˜ ์žˆ์ง€๋งŒ, ๋ฐ˜๋ณต ์ƒ์„ฑ ์ž‘์—…์˜ ๊ฒฝ์šฐ ๊ณ„์†์ ์œผ๋กœ ๋ฐฐํฌ ๋ฐ ์šด์˜์ด ๋น„ํšจ์œจ์ ์ด๋‹ค. ์ด๋•Œ ์‚ฌ์šฉํ•˜๋ฉด ์•ˆ์„ฑ ๋งž์ถค

Source Connector

  • ํ”„๋กœ๋“€์„œ ์—ญํ• 
  • ํ† ํ”ฝ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ผ ๋•Œ

Sink Connector

  • ์ปจ์Šˆ๋จธ ์—ญํ• 
  • ํ† ํ”ฝ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„ ์ €์žฅํ•  ๋•Œ

  • ์˜ˆ์‹œ๋กœ, Mysql ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด๊ณ  ์ €์žฅํ•  ๋•Œ (JDBC ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€) ์ปค๋„ฅํ„ฐ๋ฅผ ์ด์šฉํ•˜์—ฌ ํŒŒ์ดํ”„๋ผ์ธ ์ƒ์„ฑ ๊ฐ€๋Šฅ

ํŠน์ง•

  • ์˜คํ”ˆ ์†Œ์Šค ์ปค๋„ฅํ„ฐ๋Š” ์ปค๋„ฅํ„ฐ jar ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜์—ฌ ํŽธ๋ฆฌํ•˜๊ฒŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค.
    • gradle ์˜ Mysql connector ๋ฅผ ๋งํ•˜๋Š”๊ฑด๊ฐ€?
  • ์ปค๋„ฅํ„ฐ๋ฅผ ์ด์šฉํ•˜์—ฌ, ํŒŒ์ดํ”„๋ผ์ธ ์ƒ์„ฑ ์‹œ converter | transform ๊ธฐ๋Šฅ ์˜ต์…˜ ์ถ”๊ฐ€ ๊ฐ€๋Šฅ
  • converter
    • ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์ „, ์Šคํ‚ค๋งˆ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ (JsonConverter)
  • transform
    • ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์‹œ, ๊ฐ ๋ฉ”์‹œ์ง€ ๋‹จ์œ„๋กœ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•œ ์šฉ๋„
    • ์˜ˆ๋ฅผ ๋“ค์–ด json ๋ฐ์ดํ„ฐ ์ˆ˜์ • ๊ฐ€๋Šฅ

์ปค๋„ฅํ„ฐ ์‹คํ–‰ ๋ฐฉ๋ฒ•

  • ๋‹จ์ผ ๋ชจ๋“œ ์ปค๋„ฅํŠธ
    • 1๊ฐœ ํ”„๋กœ์„ธ์Šค ์‹คํ–‰
    • SPOF ๋ฐœ์ƒ ์šฐ๋ ค
  • ๋ถ„์‚ฐ ๋ชจ๋“œ ์ปค๋„ฅํŠธ
    • 2๋Œ€ ์ด์ƒ ์„œ๋ฒ„์—์„œ ํด๋Ÿฌ์Šคํ„ฐ ํ˜•ํƒœ ์šด์˜
    • ์•ˆ์ „ํ•จ
  • REST API ๋ฅผ ์ œ๊ณตํ•˜๋ฏ€๋กœ ๊ธฐ๋ณธ ํฌํŠธ์ธ 8083 POST ๋กœ ํ™•์ธ ๊ฐ€๋Šฅํ•˜๋‹ค.

Source Connector

  • ์†Œ์Šค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜, ํŒŒ์ผ๋กœ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์™€ ํ† ํ”ฝ์— ๋„ฃ์Œ
  • ์˜คํ”ˆ์†Œ์Šค๋„ ์ข‹์ง€๋งŒ, ์ง์ ‘ ๊ฐœ๋ฐœํ•ด๋„ ๋œ๋‹ค.
    • SourceConnector, SourceTask ๊ตฌํ˜„

 

  • ์ด๋Ÿฐ ์‹์œผ๋กœ~
  • ์ƒ์„ฑํ•œ ์ปค๋„ฅํ„ฐ๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ ํ˜•ํƒœ๋กœ ๋™์ž‘ํ•˜๋ฏ€๋กœ, jar ๋ฅผ ์ƒ์„ฑ ํ›„ ํ”Œ๋Ÿฌ๊ทธ์ธ ๋””๋ ‰ํ† ๋ฆฌ์— ๋„ฃ์–ด์•ผ ํ•œ๋‹ค.
  • jar ํŒŒ์ผ์„ ๋””๋ ‰ํ† ๋ฆฌ์— ๋„ฃ์€ ํ›„ ์žฌ์‹œ์ž‘ ํ•ด์•ผ ํ•œ๋‹ค.
  • ์ปค๋„ฅํŠธ๋Š” ์‹คํ–‰ ์‹œ, ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์ถ”๊ฐ€ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

์‹ฑํฌ ์ปค๋„ฅํ„ฐ

  • ํ† ํ”ฝ์˜ ๋ฐ์ดํ„ฐ๋ฅผ Target Application, File ๋กœ ์ €์žฅํ•˜๋Š” ์—ญํ• 
  • SinkConnecter, SinkTask ํด๋ž˜์Šค ๊ตฌํ˜„
  • ์ง์ ‘ ๊ตฌํ˜„ํ•œ ์ปค๋„ฅํ„ฐ๋ฅผ ๋นŒ๋“œํ•˜๊ณ  jar ๋กœ ๋งŒ๋“ค์–ด ํ”Œ๋Ÿฌ๊ทธ์ธ ํ˜•ํƒœ๋กœ ์ถ”๊ฐ€ํ•˜๊ณ  ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค.

  • ์˜ˆ์‹œ ๊ทธ๋ฆผ
๋ฐ˜์‘ํ˜•