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

๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ107

Kafka ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ชจ๋‹ˆํ„ฐ๋ง๊ณผ ๋กœ๊น…: ์‹ค์‹œ๊ฐ„ ์šด์˜ ํšจ์œจ์„ฑ ๊ทน๋Œ€ํ™”ํ•˜๊ธฐ Apache Kafka ๋Š” ๋Œ€๊ทœ๋ชจ ์ŠคํŠธ๋ฆฌ๋ฐ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์‹œ์Šคํ…œ์˜ ํ•ต์‹ฌ์œผ๋กœ, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์•ˆ์ •์ ์œผ๋กœ ์šด์˜๋˜๋ ค๋ฉด ๋ชจ๋‹ˆํ„ฐ๋ง ๊ณผ ๋กœ๊น… ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” Logback ์ด๋‚˜ Log4j ๊ฐ™์€ ๋กœ๊น… ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Kafka ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋กœ๊น…์„ ๊ด€๋ฆฌํ•˜๊ณ , JMX ๋‚˜ Prometheus ๋ฅผ ํ†ตํ•ด Kafka ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ, Grafana ๋ฅผ ํ†ตํ•ด ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ฉ”ํŠธ๋ฆญ ์‹œ๊ฐํ™” ํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค.   1. Logback์ด๋‚˜ Log4j ๊ฐ™์€ ๋กœ๊น… ํ”„๋ ˆ์ž„์›Œํฌ ์‚ฌ์šฉKafka ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๋กœ๊น… ์€ ๋ฌธ์ œ๋ฅผ ์ถ”์ ํ•˜๊ณ  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ƒํƒœ๋ฅผ ํŒŒ์•…ํ•˜๋Š” ๋ฐ ์ค‘์š”ํ•œ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. Logback ๊ณผ Log4j ๋Š” Java ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ .. IT/Kafka, ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ 2024. 10. 23.
์†Œ๊ฐœํŒ… ๋Œ€ํ™” ์ฃผ์ œ: ์ฒซ ๋งŒ๋‚จ์—์„œ ์–ด์ƒ‰ํ•จ ์—†์ด ๋Œ€ํ™”ํ•˜๋Š” ๋ฒ• ๐Ÿ˜Š ์†Œ๊ฐœํŒ…์„ ํ•˜๊ฒŒ ๋˜๋ฉด, ๊ฐ€์žฅ ํฐ ๊ณ ๋ฏผ ์ค‘ ํ•˜๋‚˜๋Š” ๋ฐ”๋กœ “๋ฌด์Šจ ์ด์•ผ๊ธฐ๋ฅผ ํ•ด์•ผ ํ• ๊นŒ?”๋ผ๋Š” ์งˆ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋Œ€ํ™”๊ฐ€ ์ž˜ ํ’€๋ ค์•ผ ์ฒซ์ธ์ƒ๋„ ์ข‹๊ณ , ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๊ด€๊ณ„๊ฐ€ ์ด์–ด์งˆ ์ˆ˜ ์žˆ์ฃ . ํ•˜์ง€๋งŒ ์†Œ๊ฐœํŒ…์—์„œ ๋Œ€ํ™”๋ฅผ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์ด์–ด๊ฐ€๋Š” ๊ฑด ์ƒ๊ฐ๋ณด๋‹ค ์‰ฝ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ์†Œ๊ฐœํŒ…์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋Œ€ํ™” ์ฃผ์ œ์™€ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๋Œ€ํ™”๋ฅผ ์ด๋Œ์–ด๊ฐ€๋Š” ๋ฐฉ๋ฒ•์„ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค.  1. ์ฒซ์ธ์ƒ ๋Œ€ํ™”๋ฅผ ๋ถ€๋“œ๋Ÿฝ๊ฒŒ ์‹œ์ž‘ํ•˜๋Š” ๋ฐฉ๋ฒ• ๐ŸŒธ์ฒซ ๋งŒ๋‚จ์—์„œ ์–ด์ƒ‰ํ•จ์„ ํ’€๊ธฐ ์œ„ํ•ด ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฒƒ์€ ์ƒ๋Œ€๋ฐฉ์—๊ฒŒ ํŽธ์•ˆํ•œ ์ธ์ƒ์„ ์ฃผ๋Š” ๊ฒƒ ์ž…๋‹ˆ๋‹ค. ๋จผ์ € ์„œ๋กœ ๊ฐ„๋‹จํ•œ ์ž๊ธฐ์†Œ๊ฐœ๋กœ ์‹œ์ž‘ํ•˜์„ธ์š”. “์–ด๋”” ์‚ฌ์„ธ์š”?”, “๋ฌด์Šจ ์ผ์„ ํ•˜์„ธ์š”?”์™€ ๊ฐ™์€ ์งˆ๋ฌธ์€ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์ƒ๋Œ€๋ฐฉ์— ๋Œ€ํ•ด ์•Œ์•„๊ฐˆ ์ˆ˜ ์žˆ๋Š” ์งˆ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋‹จ์ˆœํžˆ ์ง์—…๋งŒ ๋ฌผ์–ด๋ณด๋Š” ๋Œ€์‹ , ์ƒ๋Œ€๋ฐฉ์˜ ์ผ์— ๋Œ€ํ•œ ๊ด€์‹ฌ๊ณผ ์กด์ค‘ ์„ ๋ณด.. ์ธ๊ฐ„๊ด€๊ณ„์™€ ์‹ฌ๋ฆฌ 2024. 10. 23.
๋น„๋™๊ธฐ ๋ฉ”์‹œ์ง€ ์ฒ˜๋ฆฌ ํŒจํ„ด: ํšจ์œจ์ ์ธ ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ์™€ ๋ฉ”์‹œ์ง€ ์ˆœ์„œ ๋ณด์žฅํ•˜๊ธฐ ๋น„๋™๊ธฐ ๋ฉ”์‹œ์ง€ ์ฒ˜๋ฆฌ ๋Š” ๋Œ€๊ทœ๋ชจ ์‹œ์Šคํ…œ์—์„œ ์„ฑ๋Šฅ๊ณผ ํšจ์œจ์„ฑ์„ ๊ทน๋Œ€ํ™”ํ•˜๋Š” ์ค‘์š”ํ•œ ํŒจํ„ด์ž…๋‹ˆ๋‹ค. ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ๋™๊ธฐ์‹ ์ฒ˜๋ฆฌ ์™€ ๋น„๋™๊ธฐ์‹ ์ฒ˜๋ฆฌ ์˜ ์ฐจ์ด๋ฅผ ์‚ดํŽด๋ณด๊ณ , CompletableFuture ์™€ ๊ฐ™์€ ๋น„๋™๊ธฐ API ํ™œ์šฉ ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ, ๋ฉ”์‹œ์ง€ ์ƒ๊ด€๊ด€๊ณ„ ๋ฐ ์ถ”์  ์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ๋ฉ”์‹œ์ง€ ์ˆœ์„œ ๋ณด์žฅ ์„ ์œ„ํ•œ ๊ธฐ๋ฒ•๋„ ๋‹ค๋ฃจ๊ฒ ์Šต๋‹ˆ๋‹ค.   1. ๋™๊ธฐ์‹ vs ๋น„๋™๊ธฐ์‹ ์ฒ˜๋ฆฌ ์ดํ•ดํ•˜๊ธฐ ๋™๊ธฐ์‹ ์ฒ˜๋ฆฌ ๋™๊ธฐ์‹ ์ฒ˜๋ฆฌ ๋Š” ํ•œ ์ž‘์—…์ด ์™„๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ๋‹ค์Œ ์ž‘์—…์ด ์‹œ์ž‘๋˜์ง€ ์•Š๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ์ด ๋ฐฉ์‹์€ ๋‹จ์ˆœํ•˜์ง€๋งŒ, ์ž‘์—…์ด ์ฐจ๋ก€๋Œ€๋กœ ์ง„ํ–‰๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ฒ˜๋ฆฌ ์†๋„๊ฐ€ ๋Š๋ ค์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค .public String processSync() { // ๋™๊ธฐ์‹ ์ฒ˜๋ฆฌ: ๋‹ค์Œ ์ž‘์—…์€ ์ด์ „ ์ž‘์—…์ด ์™„๋ฃŒ๋  ๋•Œ๊นŒ์ง€ .. IT/Kafka, ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ 2024. 10. 23.
์—ฐ๊ตฌ๋ฐฉ๋ฒ•๋ก ๊ณผ ์—ฐ๊ตฌ๋ฐฉ๋ฒ•์กฐ์‚ฌ๋ก , ์–ด๋–ป๊ฒŒ ๋‹ค๋ฅผ๊นŒ? ์‹ฌ๋ฆฌํ•™๊ณผ ํ•™์ƒ์ด๋ผ๋ฉด ์•Œ์•„๋‘์–ด์•ผ ํ•  ํ•„์ˆ˜ ์ •๋ณด ์‹ฌ๋ฆฌํ•™์„ ์ „๊ณตํ•˜๋Š” ํ•™์ƒ์ด๋ผ๋ฉด ํ•™๋ถ€ ๊ณผ์ •์—์„œ ๋‹ค์–‘ํ•œ ๊ณผ๋ชฉ์„ ์ ‘ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๊ทธ์ค‘์—์„œ ์—ฐ๊ตฌ๋ฐฉ๋ฒ•๋ก  ๊ณผ ์—ฐ๊ตฌ๋ฐฉ๋ฒ•์กฐ์‚ฌ๋ก  ์€ ์ค‘์š”ํ•œ ๊ณผ๋ชฉ์œผ๋กœ, ์—ฐ๊ตฌ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐ ํ•„์ˆ˜์ ์ธ ์ง€์‹์„ ์ œ๊ณตํ•ด ์ค๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ณผ๋ชฉ๋ช…์ด ๋น„์Šทํ•ด ํ˜ผ๋™ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ด ๋‘ ๊ณผ๋ชฉ์ด ๊ฐ™์€ ๋‚ด์šฉ์ผ๊นŒ์š”? ์•„๋‹ˆ๋ฉด ๋‹ค๋ฅธ ๋‚ด์šฉ์„ ๋‹ค๋ฃจ๊ณ  ์žˆ๋Š” ๊ฑธ๊นŒ์š”? ์ด ๊ธ€์—์„œ๋Š” ์—ฐ๊ตฌ๋ฐฉ๋ฒ•๋ก  ๊ณผ ์—ฐ๊ตฌ๋ฐฉ๋ฒ•์กฐ์‚ฌ๋ก  ์˜ ์ฐจ์ด์ ๊ณผ ํ•จ๊ป˜, ์–ด๋–ป๊ฒŒ ์ด ๊ณผ๋ชฉ๋“ค์„ ์ค€๋น„ํ•ด์•ผ ํ• ์ง€์— ๋Œ€ํ•ด ๊ตฌ์ฒด์ ์œผ๋กœ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.  ์—ฐ๊ตฌ๋ฐฉ๋ฒ•๋ก : ์—ฐ๊ตฌ ์„ค๊ณ„์™€ ์ด๋ก ์  ๊ธฐ์ดˆ๋ฅผ ๋ฐฐ์šฐ๋Š” ๊ณผ๋ชฉ ์—ฐ๊ตฌ๋ฐฉ๋ฒ•๋ก ์ด๋ž€? ์—ฐ๊ตฌ๋ฐฉ๋ฒ•๋ก  ์€ ์—ฐ๊ตฌ๋ฅผ ์ง„ํ–‰ํ•  ๋•Œ ํ•„์š”ํ•œ ๊ธฐ์ดˆ์ ์ธ ๋ฐฉ๋ฒ•๋ก ๊ณผ ์ด๋ก ์  ํ‹€์„ ๋‹ค๋ฃจ๋Š” ๊ณผ๋ชฉ์ž…๋‹ˆ๋‹ค. ์—ฐ๊ตฌ ์„ค๊ณ„, ์‹คํ—˜ ๋ฐฉ๋ฒ•, ๋ฐ์ดํ„ฐ ๋ถ„์„ ๋“ฑ ๋‹ค์–‘ํ•œ ์—ฐ๊ตฌ ํ™œ๋™์—์„œ ํ•„์ˆ˜์ ์œผ๋กœ ์š”๊ตฌ๋˜๋Š” ์ง€์‹์„ ์Šต๋“ํ•  ์ˆ˜ ์žˆ์Šต.. ํ•™์Šต๊ณผ ์„ฑ์žฅ 2024. 10. 22.
Kafka ํ”„๋กœ๋“€์„œ ๊ตฌํ˜„ํ•˜๊ธฐ: ๋ฉ”์‹œ์ง€ ์ „์†ก๋ถ€ํ„ฐ ์žฌ์‹œ๋„ ์ฒ˜๋ฆฌ๊นŒ์ง€ Apache Kafka ๋Š” ๋Œ€๊ทœ๋ชจ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š”๋ฐ ๋งค์šฐ ์œ ์šฉํ•œ ๋ถ„์‚ฐ ๋ฉ”์‹œ์ง• ์‹œ์Šคํ…œ์ž…๋‹ˆ๋‹ค. ๊ทธ ์ค‘์—์„œ๋„ Kafka ํ”„๋กœ๋“€์„œ ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ Kafka ํ† ํ”ฝ ์œผ๋กœ ์ „์†กํ•˜๋Š” ํ•ต์‹ฌ ์—ญํ• ์„ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” Kafka ํ”„๋กœ๋“€์„œ ์„œ๋น„์Šค ์ƒ์„ฑ , ๋ฉ”์‹œ์ง€ ์ „์†ก ๋ฐฉ๋ฒ• , Ack(์—ํฌ๋…ธ๋ ˆ์ง€๋จผํŠธ) ์ฒ˜๋ฆฌ , ์žฌ์‹œ๋„์™€ ๋ฒ„ํผ๋ง ์„ค์ • ๊นŒ์ง€ ๋‹ค๋ฃน๋‹ˆ๋‹ค. ์‹ค๋ฌด์—์„œ ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ์˜ˆ์ œ์™€ ํ•จ๊ป˜ ๋”ฐ๋ผ ํ•˜๋ฉด์„œ ์‰ฝ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.   1. Kafka ํ”„๋กœ๋“€์„œ ์„œ๋น„์Šค ์ƒ์„ฑKafka ํ”„๋กœ๋“€์„œ ์„œ๋น„์Šค๋Š” ์Šคํ”„๋ง ๋ถ€ํŠธ ์—์„œ KafkaTemplate ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ„๋‹จํ•˜๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. KafkaTemplate ์€ ๋ฉ”์‹œ์ง€๋ฅผ Kafka๋กœ ์ „์†กํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.@Se.. IT/Kafka, ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ 2024. 10. 22.