๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

IT19

์Šคํ”„๋ง ๋ถ€ํŠธ์™€ Kafka๋ฅผ ํ™œ์šฉํ•œ ์‹ค์ „ ์‚ฌ๋ก€ ์—ฐ๊ตฌ: ๋ชจ๋ฒ” ์‚ฌ๋ก€์™€ ์ตœ์‹  ๋™ํ–ฅ Apache Kafka ๋Š” ๋Œ€๊ทœ๋ชจ ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆฌ๋ฐ์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ํ•„์ˆ˜ ๋„๊ตฌ๋กœ ์ž๋ฆฌ ์žก์•˜์œผ๋ฉฐ, ์Šคํ”„๋ง ๋ถ€ํŠธ ์™€์˜ ๊ฒฐํ•ฉ์€ ์ด๋ฅผ ๋” ์‰ฝ๊ฒŒ ํ†ตํ•ฉํ•˜๊ณ  ํ™•์žฅํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. ์ด ํฌ์ŠคํŒ…์—์„œ๋Š” ์Šคํ”„๋ง ๋ถ€ํŠธ์™€ Kafka ๋ฅผ ํ™œ์šฉํ•œ ์‹ค์ œ ์‚ฌ๋ก€๋ฅผ ํ†ตํ•ด ํ”ํžˆ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ์ ๊ณผ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•, ๊ทธ๋ฆฌ๊ณ  ๊ฐœ๋ฐœ ๋ฐ ๋ฐฐํฌ๋ฅผ ์œ„ํ•œ ๋ชจ๋ฒ” ์‚ฌ๋ก€๋ฅผ ์•Œ์•„๋ด…๋‹ˆ๋‹ค. ๋˜ํ•œ, ํ–ฅํ›„ ๋ฐœ์ „ ๋ฐฉํ–ฅ๊ณผ ์ตœ์‹  ๋™ํ–ฅ์— ๋Œ€ํ•ด์„œ๋„ ๋‹ค๋ฃฐ ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.   1. ์Šคํ”„๋ง ๋ถ€ํŠธ์™€ Kafka๋ฅผ ํ™œ์šฉํ•œ ์‹ค์ œ ์‚ฌ๋ก€์Šคํ”„๋ง ๋ถ€ํŠธ์™€ Kafka๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋Œ€ํ‘œ์ ์ธ ์‚ฌ๋ก€๋Š” ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์‹œ์Šคํ…œ ์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋กœ๊ทธ ์ฒ˜๋ฆฌ, ๋ฐ์ดํ„ฐ ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌ์ถ•, ์‹ค์‹œ๊ฐ„ ์•Œ๋ฆผ ์„œ๋น„์Šค ๋“ฑ ๋‹ค์–‘ํ•œ ๋ถ„์•ผ์—์„œ Kafka๋ฅผ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.์‚ฌ๋ก€ 1: ์‹ค์‹œ๊ฐ„ ๋กœ๊ทธ ์ฒ˜๋ฆฌ ์‹œ์Šคํ…œ๊ธฐ์—… A์—์„œ๋Š” .. IT/Kafka, ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ 2024. 10. 23.
Kafka ์„ฑ๋Šฅ ํŠœ๋‹๊ณผ ์ตœ์ ํ™”: ๊ณ ์ฒ˜๋ฆฌ๋Ÿ‰ ์š”๊ตฌ ์‚ฌํ•ญ ๋Œ€์‘ ๋ฐฉ๋ฒ• Apache Kafka ๋Š” ๊ณ ์„ฑ๋Šฅ ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆฌ๋ฐ ํ”Œ๋žซํผ์œผ๋กœ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ์ง€๋งŒ, ๋Œ€๊ทœ๋ชจ ๋ฐ์ดํ„ฐ ํŠธ๋ž˜ํ”ฝ์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ ์ ˆํ•œ ์„ฑ๋Šฅ ํŠœ๋‹ ์ด ํ•„์ˆ˜์ ์ž…๋‹ˆ๋‹ค. ์ด ํฌ์ŠคํŒ…์—์„œ๋Š” ํ”„๋กœ๋“€์„œ ์™€ ์ปจ์Šˆ๋จธ ์„ค์ • ์ตœ์ ํ™”, Kafka ํด๋Ÿฌ์Šคํ„ฐ ๊ตฌ์„ฑ ํŠœ๋‹ , ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ฑ๋Šฅ ํ”„๋กœํŒŒ์ผ๋ง , ๊ทธ๋ฆฌ๊ณ  ๊ณ ์ฒ˜๋ฆฌ๋Ÿ‰ ์š”๊ตฌ ์‚ฌํ•ญ ๋Œ€์‘ ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.   1. ํ”„๋กœ๋“€์„œ์™€ ์ปจ์Šˆ๋จธ ์„ค์ • ์ตœ์ ํ™”Kafka ์„ฑ๋Šฅ์˜ ํ•ต์‹ฌ ์š”์†Œ๋Š” ํ”„๋กœ๋“€์„œ ์™€ ์ปจ์Šˆ๋จธ ์˜ ์„ค์ •์ž…๋‹ˆ๋‹ค. ์ด ์„ค์ •๋“ค์ด ์ ์ ˆํ•˜๊ฒŒ ์กฐ์ •๋˜์ง€ ์•Š์œผ๋ฉด ์„ฑ๋Šฅ ์ €ํ•˜๋ฅผ ์ดˆ๋ž˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜๋Š” ์ฃผ์š” ํŠœ๋‹ ์˜ต์…˜๊ณผ ์„ค๋ช…์ž…๋‹ˆ๋‹ค.ํ”„๋กœ๋“€์„œ ์ตœ์ ํ™” ์„ค์ • a. acks ์„ค์ • acks=all : ๋ชจ๋“  ๋ฆฌํ”Œ๋ฆฌ์นด๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์„ ๋•Œ๊นŒ์ง€ ๋Œ€๊ธฐ. ์•ˆ์ „์„ฑ ๋†’.. IT/Kafka, ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ 2024. 10. 23.
Confluent Schema Registry๋กœ ์Šคํ‚ค๋งˆ ๊ด€๋ฆฌ: Avro ์Šคํ‚ค๋งˆ ์‚ฌ์šฉ ๋ฐ ๋ฒ„์ „ ๊ด€๋ฆฌ Confluent Schema Registry ๋Š” Kafka ๋ฐ์ดํ„ฐ์˜ ์Šคํ‚ค๋งˆ๋ฅผ ์ค‘์•™์—์„œ ๊ด€๋ฆฌ ํ•˜๊ณ , ๋ฐ์ดํ„ฐ์˜ ํ˜ธํ™˜์„ฑ์„ ๋ณด์žฅ ํ•˜๋Š” ์ค‘์š”ํ•œ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. Kafka์™€ ํ•จ๊ป˜ Avro , JSON , Protobuf ๊ฐ™์€ ๋ฐ์ดํ„ฐ ํฌ๋งท์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ์˜ ์Šคํ‚ค๋งˆ๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์Šคํ‚ค๋งˆ์˜ ๋ฒ„์ „ ๊ด€๋ฆฌ ์™€ ํ˜ธํ™˜์„ฑ ์ •์ฑ… ์„ ์ ์šฉํ•˜์—ฌ ์‹œ์Šคํ…œ์˜ ์ผ๊ด€์„ฑ์„ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” Schema Registry ์˜ ์†Œ๊ฐœ์™€ ํ•จ๊ป˜, ์Šคํ‚ค๋งˆ ๋ฒ„์ „ ๊ด€๋ฆฌ ๋ฐฉ๋ฒ•, ์Šคํ”„๋ง ๋ถ€ํŠธ์—์„œ Avro ์Šคํ‚ค๋งˆ ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•, ๊ทธ๋ฆฌ๊ณ  ์Šคํ‚ค๋งˆ ์ •์ฑ… ์„ ์–ด๋–ป๊ฒŒ ์„ค์ •ํ•˜๋Š”์ง€ ๋‹ค๋ฃจ๊ฒ ์Šต๋‹ˆ๋‹ค.   1. Schema Registry ์†Œ๊ฐœ Schema Registry ๋Š” Kafka์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋ฐ์ดํ„ฐ ์Šคํ‚ค.. IT/Kafka, ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ 2024. 10. 23.
Kafka Connect๋ฅผ ํ†ตํ•œ ๋ฐ์ดํ„ฐ ํ†ตํ•ฉ: ํšจ์œจ์ ์ธ ๋ฐ์ดํ„ฐ ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌ์ถ•ํ•˜๊ธฐ Apache Kafka Connect ๋Š” Kafka๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ์†Œ์Šค์™€ ์‹ฑํฌ๋ฅผ ์‰ฝ๊ฒŒ ํ†ตํ•ฉํ•  ์ˆ˜ ์žˆ๋Š” ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ํŒŒ์ผ ์‹œ์Šคํ…œ, ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค ๋“ฑ ์—ฌ๋Ÿฌ ์‹œ์Šคํ…œ ๊ฐ„์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ž๋™์œผ๋กœ ์ด๋™ ์‹œํ‚ค๋Š” ๋ฐ์ดํ„ฐ ํŒŒ์ดํ”„๋ผ์ธ์„ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” Kafka Connect ์˜ ๊ฐœ์š”, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๋™์„ ์œ„ํ•œ ์ปค๋„ฅํ„ฐ ์‚ฌ์šฉ , ์‚ฌ์šฉ์ž ์ •์˜ ์ปค๋„ฅํ„ฐ ๊ตฌํ˜„ , ๊ทธ๋ฆฌ๊ณ  ๋ฐ์ดํ„ฐ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์ „๋žต ์— ๋Œ€ํ•ด ๋‹ค๋ฃน๋‹ˆ๋‹ค.   1. Kafka Connect ๊ฐœ์š” Kafka Connect ๋Š” Kafka ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์‚ฌ์šฉํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค์–‘ํ•œ ์‹œ์Šคํ…œ์œผ๋กœ๋ถ€ํ„ฐ ๊ฐ€์ ธ์˜ค๊ฑฐ๋‚˜ ๋ฐ˜๋Œ€๋กœ ๋‚ด๋ณด๋‚ด๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. Source ์ปค๋„ฅํ„ฐ ๋Š” ์™ธ๋ถ€ ์‹œ์Šคํ…œ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ Kafk.. IT/Kafka, ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ 2024. 10. 23.
์ด๋ฒคํŠธ ์ฃผ๋„ํ˜• ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜: Kafka๋กœ ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์„ค๊ณ„ํ•˜๊ธฐ ์ด๋ฒคํŠธ ์ฃผ๋„ํ˜• ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜ ๋Š” ํ˜„๋Œ€ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์—์„œ ์ค‘์š”ํ•œ ํŒจ๋Ÿฌ๋‹ค์ž„์ž…๋‹ˆ๋‹ค. ์ด ์•„ํ‚คํ…์ฒ˜๋Š” ์„œ๋น„์Šค ๊ฐ„์˜ ๊ฒฐํ•ฉ๋„๋ฅผ ๋‚ฎ์ถ”๊ณ , ์‹œ์Šคํ…œ ํ™•์žฅ์„ฑ์„ ๊ทน๋Œ€ํ™”ํ•˜๋ฉฐ, ๋น„๋™๊ธฐ ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ๋ฅผ ํ†ตํ•ด ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” Kafka ๋ฅผ ํ™œ์šฉํ•œ ์ด๋ฒคํŠธ ์ฃผ๋„ํ˜• ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์„ค๊ณ„, ์ด๋ฒคํŠธ ์†Œ์‹ฑ๊ณผ CQRS ํŒจํ„ด ์ ์šฉ, ์„œ๋น„์Šค ๊ฐ„ ํ†ต์‹  ์ฒ˜๋ฆฌ , ๊ทธ๋ฆฌ๊ณ  Kafka๋กœ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋ฅผ ํ™•์žฅํ•˜๋Š” ๋ฐฉ๋ฒ• ์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค.   1. Kafka๋ฅผ ํ™œ์šฉํ•œ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์„ค๊ณ„Kafka๋Š” ๋ฉ”์‹œ์ง€ ๋ธŒ๋กœ์ปค ๋กœ์„œ ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ ์•„ํ‚คํ…์ฒ˜์—์„œ ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ์„œ๋น„์Šค ๊ฐ„ ๋น„๋™๊ธฐ ํ†ต์‹  ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋ฉฐ, ๋ฐ์ดํ„ฐ๋ฅผ ํŒŒํ‹ฐ์…˜ ์œผ๋กœ ๋ถ„ํ• ํ•˜์—ฌ ๋Œ€๊ทœ๋ชจ ํŠธ๋ž˜ํ”ฝ ์ฒ˜๋ฆฌ์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.Kafka ๊ธฐ๋ฐ˜ ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ ์˜ˆ์‹œ.. IT/Kafka, ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ 2024. 10. 23.