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

์•„ํŒŒ์น˜ ์นดํ”„์นด10

[์•„ํŒŒ์น˜ ์นดํ”„์นด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ with ์ž๋ฐ”] 4-4์žฅ ์Šคํ”„๋ง ์นดํ”„์นด ์Šคํ”„๋ง ์นดํ”„์นด ์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ ์นดํ”„์นด๋ฅผ ์ถ”์ƒํ™”ํ•˜์—ฌ ํšจ๊ณผ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์นดํ”„์นด ํด๋ผ์ด์–ธํŠธ์—์„œ ํ™œ์šฉํ•˜๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ํŒจํ„ด์„ ๋ฏธ๋ฆฌ ์ œ๊ณตํ•จ. ์Šคํ”„๋ง ์นดํ”„์นด ํ”„๋กœ๋“€์„œ ์Šคํ”„๋ง ์นดํ”„์นด ํ”„๋กœ๋“€์„œ๋Š” ์นดํ”„์นด ํ…œํ”Œ๋ฆฟ (Kafka Template) ์ด๋ผ๋Š” ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉ ์นดํ”„์นด ํ…œํ”Œ๋ฆฟ์€ ํ”„๋กœ๋“€์„œ ํŒฉํ† ๋ฆฌ (Producer Factory) ํด๋ž˜์Šค๋ฅผ ํ†ตํ•ด ์ƒ์„ฑ ๋ฐฉ๋ฒ• ์Šคํ”„๋ง ์นดํ”„์นด์˜ ๊ธฐ๋ณธ ์ œ๊ณต ํ…œํ”Œ๋ฆฟ application.yml ํŒŒ์ผ์— ์˜ต์…˜์„ ์ง€์ •ํ•˜๊ณ  ์‚ฌ์šฉ ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ ์นดํ”„์นด ํ…œํ”Œ๋ฆฟ์„ ํ”„๋กœ๋“€์„œ ํŒฉํ† ๋ฆฌ๋กœ ์ƒ์„ฑ ํ”„๋กœ๋“€์„œ ํŒฉํ† ๋ฆฌ๋ฅผ ํ†ตํ•ด ๋งŒ๋“  ์นดํ”„์นด ํ…œํ”Œ๋ฆฟ์„ ์Šคํ”„๋ง ๋นˆ์œผ๋กœ ๋“ฑ๋ก ํ›„ ์‚ฌ์šฉ ํ”„๋กœ๋“€์„œ์— ํ•„์š”ํ•œ ๊ฐ์ข… ์˜ต์…˜์„ ์„ ์–ธ ํ›„ ์‚ฌ์šฉ ๊ฐ€๋Šฅ ์Šคํ”„๋ง ์นดํ”„์นด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋‚ด๋ถ€์— ๋‹ค์–‘ํ•œ ํ”„๋กœ๋“€์„œ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด .. 2023. 6. 6.
[์•„ํŒŒ์น˜ ์นดํ”„์นด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ with ์ž๋ฐ”] 4-3์žฅ ์นดํ”„์นด ์ปจ์Šˆ๋จธ ์นดํ”„์นด ์ปจ์Šˆ๋จธ ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ ์ปจ์Šˆ๋จธ ํŒŒํ‹ฐ์…˜์„ ์—ฌ๋Ÿฌ ๊ฐœ ์šด์˜ํ•˜๋Š” ๊ฒฝ์šฐ, ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํŒŒํ‹ฐ์…˜, ์ปจ์Šˆ๋จธ ๊ฐœ์ˆ˜๋ฅผ ๋™์ผํ•˜๊ฒŒ ๋งž์ถฐ์•ผ ํ•œ๋‹ค. ํ† ํ”ฝ์˜ ํŒŒํ‹ฐ์…˜์€ 1๊ฐœ ์ด์ƒ์œผ๋กœ ์ด๋ฃจ์–ด์ง 1๊ฐœ์˜ ํŒŒํ‹ฐ์…˜์€ 1๊ฐœ ์ปจ์Šˆ๋จธ๊ฐ€ ํ• ๋‹น๋˜์–ด ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ํŒŒํ‹ฐ์…˜ ๊ฐœ์ˆ˜๊ฐ€ n๊ฐœ๋ผ๋ฉด, ๋™์ผ ์ปจ์Šˆ๋จธ ๊ทธ๋ฃน์œผ๋กœ ๋ฌถ์ธ ์ปจ์Šˆ๋จธ ์Šค๋ ˆ๋“œ๋ฅผ ์ตœ๋Œ€ n๊ฐœ ์šด์˜ ๊ฐ€๋Šฅ n๊ฐœ์˜ ์Šค๋ ˆ๋“œ๋ฅผ ๊ฐ€์ง„ 1๊ฐœ์˜ ํ”„๋กœ์„ธ์Šค๋ฅผ ์šด์˜ 1๊ฐœ์˜ ์Šค๋ ˆ๋“œ๋ฅผ ๊ฐ€์ง„ ํ”„๋กœ์„ธ์Šค๋ฅผ n๊ฐœ ์šด์˜ ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ ์šด์˜ํ• ์ง€๋Š” ๊ฐœ๋ฐœ์ž์˜ ์„ ํƒ ๊ณต์‹์ ์œผ๋กœ ์ง€์›ํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ธ ์ž๋ฐ”๋Š” ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ๋ฅผ ์ง€์›ํ•˜๋ฏ€๋กœ, ์ž๋ฐ” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•œ๋‹ค๋ฉด, ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ๋กœ ๋™์ž‘ํ•˜๋Š” ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ๋ฅผ ๊ฐœ๋ฐœํ•˜๊ณ  ์ ์šฉํ•˜๋ฉด ์ข‹๋‹ค. ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ ์ปจ์Šˆ๋จธ ์šด์˜ ์ค‘ ๊ณ ๋ ค ์‚ฌํ•ญ ํ•˜๋‚˜์˜ ์ปจ์Šˆ๋จธ ์Šค๋ ˆ๋“œ์—์„œ ์˜ˆ์™ธ ์ƒํ™ฉ (OOM ๋“ฑ๋“ฑ) ์ด ํ„ฐ.. 2023. 5. 18.
[์•„ํŒŒ์น˜ ์นดํ”„์นด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ with ์ž๋ฐ”] 4-2์žฅ ์นดํ”„์นด ํ”„๋กœ๋“€์„œ ์นดํ”„์นด ํ”„๋กœ๋“€์„œ ์นดํ”„์นด ํ”„๋กœ๋“€์„œ๋Š” ํ† ํ”ฝ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ์ฒซ ๋‹จ๊ณ„! acks ์˜ต์…˜ ํ”„๋กœ๋“€์„œ์˜ ์˜ต์…˜์œผ๋กœ acks ์˜ต์…˜ ํ”„๋กœ๋“€์„œ๊ฐ€ ์ „์†กํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ํด๋Ÿฌ์Šคํ„ฐ์— ์–ผ๋งˆ๋‚˜ ์‹ ๋ขฐ์„ฑ ์žˆ๊ฒŒ ์ €์žฅํ•  ์ง€ ์ง€์ • ๊ฐ€๋Šฅ ์˜ต์…˜์— ๋”ฐ๋ผ ์„ฑ๋Šฅ์ด ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ๋‹ค. acks = 0 ํ”„๋กœ๋“€์„œ๊ฐ€ ๋ฆฌ๋” ํŒŒํ‹ฐ์…˜์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ–ˆ์„ ๋•Œ ๋ฆฌ๋” ํŒŒํ‹ฐ์…˜์œผ๋กœ ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋˜์—ˆ๋Š”์ง€ ํ™•์ธ ํ•˜์ง€ ์•Š๋Š”๋‹ค ๋ฆฌ๋” ํŒŒํ‹ฐ์…˜์€ ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋œ ์ดํ›„, ๋ช‡ ๋ฒˆ์งธ ์˜คํ”„์…‹์— ์ €์žฅ๋˜์—ˆ๋Š”์ง€ return ์ด ๊ฒฝ์šฐ์—๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋œ ์—ฌ๋ถ€์— ๋”ฐ๋ฅธ ์‘๋‹ต์„ ๋ฐ›์ง€ ์•Š์Œ. ํ”„๋กœ๋“€์„œ๋Š” ๋ฐ์ดํ„ฐ ์ „์†ก ์‹คํŒจ์‹œ, ์žฌ์‹œ๋„ํ•  ์ˆ˜ ์žˆ๊ฒŒ, retries ์˜ต์…˜ ์„ค์ • ๊ฐ€๋Šฅ ํ•˜์ง€๋งŒ acks = 0 ์ผ ๊ฒฝ์šฐ, ๋ฐ์ดํ„ฐ ์ „์†ก์„ ๋ฌด์กฐ๊ฑด ์„ฑ๊ณต์œผ๋กœ ๊ฐ„์ฃผ, ํ•ด๋‹น ์˜ต์…˜์€ ๋ฌด์˜๋ฏธํ•˜๋‹ค. ํ”„๋กœ๋“€์„œ์™€ ๋ธŒ๋กœ์ปค ์‚ฌ์ด์˜ ๋„คํŠธ์›Œํฌ ์˜ค๋ฅ˜.. 2023. 5. 7.
[์•„ํŒŒ์น˜ ์นดํ”„์นด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ with ์ž๋ฐ”] 4-1์žฅ ํ† ํ”ฝ๊ณผ ํŒŒํ‹ฐ์…˜ ํ† ํ”ฝ๊ณผ ํŒŒํ‹ฐ์…˜ ํ† ํ”ฝ์ด ์‚ฌ๋ผ์ง€๋ฉด ์นดํ”„์นด ํŒŒ์ดํ”„ ๋ผ์ธ์€ ๋™์ž‘ํ•˜์ง€ ์•Š์Œ. ์ ์ • ํŒŒํ‹ฐ์…˜ ๊ฐœ์ˆ˜ ํ† ํ”ฝ์˜ ํŒŒํ‹ฐ์…˜์˜ ๊ฐœ์ˆ˜๋Š” ์นดํ”„์นด ์„ฑ๋Šฅ๊ณผ ๋ฐ€์ ‘ํ•œ ๊ด€๊ณ„๊ฐ€ ์žˆ๋‹ค. ํŒŒํ‹ฐ์…˜์˜ ๊ฐœ์ˆ˜๋ฅผ ์ ์ ˆํ•˜๊ฒŒ ์„ค์ •ํ•˜๊ณ  ์šด์˜ํ•˜์ž. ํŒŒํ‹ฐ์…˜ ๊ฐœ์ˆ˜๋ฅผ ์ •ํ•  ๋•Œ ๊ณ ๋ คํ•  ์  ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๋Ÿ‰ ๋ฉ”์‹œ์ง€ ํ‚ค ์‚ฌ์šฉ ์—ฌ๋ถ€ ๋ธŒ๋กœ์ปค์™€ ์ปจ์Šˆ๋จธ์˜ ์˜ํ–ฅ๋„ ํŒŒ์ผ ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•˜๋Š” ์นดํ”„์นด๋Š”, ํŒŒํ‹ฐ์…˜์˜ ์ˆ˜ ๋งŒํผ ํŒŒ์ผ์— ์ ‘๊ทผํ•œ๋‹ค. ์šด์˜์ฒด์ œ ํŠน์„ฑ ์ƒ ํ”„๋กœ์„ธ์Šค ๋‹น ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ ํŒŒ์ผ ๊ฐœ์ˆ˜๊ฐ€ ์ •ํ•ด์ ธ ์žˆ๋‹ค. ๋ธŒ๋กœ์ปค๊ฐ€ ์ ‘๊ทผํ•˜๋Š” ํŒŒ์ผ ๊ฐœ์ˆ˜๋ฅผ ์•ˆ์ •์ ์œผ๋กœ ์œ ์ง€ํ•˜๊ณ  ์‹ถ์„ ๊ฒฝ์šฐ๋Š”, ์นดํ”„์นด ๋ธŒ๋กœ์ปค์˜ ์ˆ˜๋ฅผ ๋Š˜๋ฆฌ๋ฉด ๋œ๋‹ค. ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์†๋„๋ฅผ ์˜ฌ๋ฆฌ์ž ์ปจ์Šˆ๋จธ์˜ ์ฒ˜๋ฆฌ๋Ÿ‰ ๋Š˜๋ฆฌ๊ธฐ ์ปจ์Šˆ๋จธ๊ฐ€ ์‹คํ–‰๋˜๋Š” ์„œ๋ฒ„๋ฅผ ์Šค์ผ€์ผ์—… GC ํŠœ๋‹ ์ปจ์Šˆ๋จธ๋Š” (S3, ํ•˜๋‘ก, ์˜ค๋ผํด ๋“ฑ๋“ฑ) ์˜ ์‹œ์Šคํ…œ๊ณผ ์—ฐ๋™๋˜๋ฏ€๋กœ, ์ผ์ • ์ˆ˜์ค€ ์ฒ˜๋ฆฌ๋Ÿ‰์„ ๋†’์ด๋Š”๋ฐ,.. 2023. 5. 5.
[์•„ํŒŒ์น˜ ์นดํ”„์นด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ with ์ž๋ฐ”] 3-6์žฅ ์นดํ”„์นด ์ปค๋„ฅํŠธ ์นดํ”„์นด ์ปค๋„ฅํŠธ๋ž€? ๋ฐ์ดํ„ฐ ํŒŒ์ดํ”„๋ผ์ธ ์ƒ์„ฑ ์‹œ ๋ฐ˜๋ณต ์ž‘์—…์„ ์ค„์ด๊ณ , ํšจ์œจ์ ์ธ ์ „์†ก์„ ์œ„ํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์˜ˆ๋กœ, ํŒŒ์ดํ”„๋ผ์ธ ์ƒ์„ฑ ์‹œ, ํ”„๋กœ๋“€์„œ | ์ปจ์Šˆ๋จธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ณ„์† ๋งŒ๋“ค ์ˆ˜ ์žˆ์ง€๋งŒ, ๋ฐ˜๋ณต ์ƒ์„ฑ ์ž‘์—…์˜ ๊ฒฝ์šฐ ๊ณ„์†์ ์œผ๋กœ ๋ฐฐํฌ ๋ฐ ์šด์˜์ด ๋น„ํšจ์œจ์ ์ด๋‹ค. ์ด๋•Œ ์‚ฌ์šฉํ•˜๋ฉด ์•ˆ์„ฑ ๋งž์ถค Source Connector ํ”„๋กœ๋“€์„œ ์—ญํ•  ํ† ํ”ฝ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ผ ๋•Œ Sink Connector ์ปจ์Šˆ๋จธ ์—ญํ•  ํ† ํ”ฝ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„ ์ €์žฅํ•  ๋•Œ ์˜ˆ์‹œ๋กœ, Mysql ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด๊ณ  ์ €์žฅํ•  ๋•Œ (JDBC ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€) ์ปค๋„ฅํ„ฐ๋ฅผ ์ด์šฉํ•˜์—ฌ ํŒŒ์ดํ”„๋ผ์ธ ์ƒ์„ฑ ๊ฐ€๋Šฅ ํŠน์ง• ์˜คํ”ˆ ์†Œ์Šค ์ปค๋„ฅํ„ฐ๋Š” ์ปค๋„ฅํ„ฐ jar ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜์—ฌ ํŽธ๋ฆฌํ•˜๊ฒŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค. gradle ์˜ Mysql connector ๋ฅผ ๋งํ•˜๋Š”๊ฑด๊ฐ€? ์ปค๋„ฅํ„ฐ๋ฅผ ์ด์šฉํ•˜์—ฌ, ํŒŒ์ดํ”„๋ผ์ธ ์ƒ์„ฑ ์‹œ.. 2023. 4. 20.
[์•„ํŒŒ์น˜ ์นดํ”„์นด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ with ์ž๋ฐ”] 3-5์žฅ ์นดํ”„์นด ์ŠคํŠธ๋ฆผ์ฆˆ ์นดํ”„์นด ์ŠคํŠธ๋ฆผ์ฆˆ ํ† ํ”ฝ์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋‹ค๋ฅธ ํ† ํ”ฝ์— ์ ์žฌํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์นดํ”„์นด ํด๋Ÿฌ์Šคํ„ฐ์™€ ์™„๋ฒฝ ํ˜ธํ™˜ ๋ฐ ์ŠคํŠธ๋ฆผ ์ฒ˜๋ฆฌ์— ํ•„์š”ํ•œ ํŽธ๋ฆฌํ•œ ๊ธฐ๋Šฅ ์ œ๊ณต ์žฅ์•  ๋ฐœ์ƒ ์‹œ Exactly Once ํ•˜๋„๋ก ์žฅ์•  ํ—ˆ์šฉ ์‹œ์Šคํ…œ ์žฅ์ฐฉ => ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์•ˆ์ •์„ฑ Up. ๊ฐœ์š” ์ŠคํŠธ๋ฆผ์ฆˆ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ๋‚ด๋ถ€์ ์œผ๋กœ 1๊ฐœ ์ด์ƒ์˜ ์Šค๋ ˆ๋“œ ์ƒ์„ฑ ๊ฐ€๋Šฅ ์Šค๋ ˆ๋“œ๋Š” 1๊ฐœ ์ด์ƒ์˜ ํƒœ์Šคํฌ๋ฅผ ๊ฐ€์ง„๋‹ค. ์ŠคํŠธ๋ฆผ์ฆˆ์˜ Task ๋Š” ์ŠคํŠธ๋ฆผ์ฆˆ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•˜๋ฉด ์ƒ๊ธฐ๋Š” ๋ฐ์ดํ„ฐ์˜ ์ตœ์†Œ ์ฒ˜๋ฆฌ ๋‹จ์œ„ 3๊ฐœ์˜ ํŒŒํ‹ฐ์…˜์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ํ† ํ”ฝ์„ ์ฒ˜๋ฆฌํ•  ๊ฒฝ์šฐ, ์ŠคํŠธ๋ฆผ์ฆˆ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ ์‹œ, ๋‚ด๋ถ€์˜ 3๊ฐœ์˜ ํƒœ์Šคํฌ๊ฐ€ ์ƒ๊น€. ์นดํ”„์นด ์ŠคํŠธ๋ฆผ์ฆˆ๋Š” ์ŠคํŠธ๋ฆผ์ฆˆ DSL (Domain Specific Language) ๊ณผ ํ”„๋กœ์„ธ์„œ API 2๊ฐœ์˜ ๋ฐฉ๋ฒ•์œผ๋กœ ๊ฐœ๋ฐœ ๊ฐ€๋Šฅ ์ŠคํŠธ๋ฆผ์ฆˆ DSL ์€ .. 2023. 4. 13.
[์•„ํŒŒ์น˜ ์นดํ”„์นด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ with ์ž๋ฐ”] 3.4 ์žฅ ์นดํ”„์นด ํด๋ผ์ด์–ธํŠธ ์นดํ”„์นด ํด๋ผ์ด์–ธํŠธ ์นดํ”„์นด ํด๋Ÿฌ์Šคํ„ฐ์— ๋ช…๋ น์„ ๋‚ด๋ฆฌ๊ฑฐ๋‚˜ ๋ฐ์ดํ„ฐ๋ฅผ ์†ก์ˆ˜์‹  ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•œ๋‹ค. ์นดํ”„์นด ํ”„๋กœ๋“€์„œ, ์ปจ์Šˆ๋จธ, ์–ด๋“œ๋ฏผ ํด๋ผ์ด์–ธํŠธ๋ฅผ ์ œ๊ณตํ•จ. ์—„์—ฐํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋ฏ€๋กœ, ํ”„๋ ˆ์ž„์›Œํฌ๋‚˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๊ตฌํ˜„ ํ›„ ์‹คํ–‰. ํ”„๋กœ๋“€์„œ API ์นดํ”„์นด์— ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์„ ์–ธํ•˜๊ณ  ๋ธŒ๋กœ์ปค์˜ ํŠน์ • ํ† ํ”ฝ์˜ ํŒŒํ‹ฐ์…˜์— ์ „์†ก. ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ๋•Œ ๋ฆฌ๋” ํŒŒํ‹ฐ์…˜ ์†Œ์œ ์˜ ์นดํ”„์นด ๋ธŒ๋กœ์ปค์™€ ์ง์ ‘ ํ†ต์‹ ํ•œ๋‹ค. ์ฃผ์š” ํŠน์ง• ์นด๋ธŒ์นด ๋ธŒ๋กœ์ปค๋กœ ๋ฐ์ดํ„ฐ ์ „์†ก ์‹œ, ๋‚ด๋ถ€์ ์œผ๋กœ ํŒŒํ‹ฐ์…”๋„ˆ ๋ฐ ๋ฐฐ์น˜ ์ƒ์„ฑ ๋‹จ๊ณ„๋ฅผ ๊ฑฐ์นจ. UniformStickyPartitioner ์™€ RoundRobinPartitioner ์˜ 2๊ฐœ ํŒŒํ‹ฐ์…˜์„ ์ œ๊ณตํ•จ. ๋ฉ”์‹œ์ง€ ํ‚ค ์œ ๋ฌด์—์„œ ์ฐจ์ด์ ์ด ๋ฐœ์ƒํ•œ๋‹ค. ํ”„๋กœ๋“€์„œ ๋™์ž‘์— ํŠนํ™”๋œ UniformStickyPartitioner๋Š” ๋†’์€ ์ฒ˜๋ฆฌ๋Ÿ‰ ๋ฐ ๋‚ฎ์€ .. 2023. 4. 9.
[์•„ํŒŒ์น˜ ์นดํ”„์นด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ with ์ž๋ฐ”] 3-2, 3์žฅ ํ† ํ”ฝ๊ณผ ํŒŒํ‹ฐ์…˜, ๋ ˆ์ฝ”๋“œ ํ† ํ”ฝ ๋ฐ์ดํ„ฐ๋ฅผ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ๋‹จ์œ„ 1๊ฐœ ์ด์ƒ์˜ ํŒŒํ‹ฐ์…˜ ์†Œ์œ  ๋ฐ์ดํ„ฐ๋ฅผ Record ๋ผ ์นญํ•จ ํŒŒํ‹ฐ์…˜ ๋ณ‘๋ ฌ์ฒ˜๋ฆฌ์˜ ํ•ต์‹ฌ ์ปจ์Šˆ๋จธ์˜ ๊ฐœ์ˆ˜๋ฅผ ๋Š˜๋ฆฌ๋Š” ์Šค์ผ€์ผ ์•„์›ƒ์œผ๋กœ ํ•œ์ •๋œ ์ปจ์Šˆ๋จธ์˜ ์ฒ˜๋ฆฌ๋Ÿ‰์„ ๋ณด์กฐ ๊ฐ€๋Šฅ. Queue์™€ ๊ฐ™์€ ๊ตฌ์กฐ ๋ ˆ์ฝ”๋“œ ํƒ€์ž„ ์Šคํƒฌํ”„, ๋ฉ”์‹œ์ง€ ํ‚ค, ๋ฉ”์‹œ์ง€ ๊ฐ’, ์˜คํ”„์…‹, ํ—ค๋” ๊ตฌ์„ฑ ํ•œ๋ฒˆ ์ ์žฌ๋œ ๋ ˆ์ฝ”๋“œ๋Š” ์ˆ˜์ • ๋ถˆ๊ฐ€ ๋ฐ log retention or capacity์— ๋”ฐ๋ผ ์‚ญ์ œ ํŠน์ง• ์ƒ์„ฑ๋œ ์‹œ์ ์— Unix Time ์„ค์ • ๋จ, ๋ ˆ์ฝ”๋“œ ์ƒ์„ฑ ์‹œ ํƒ€์ž„ ์Šคํƒฌํ”„๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์— ์œ ์˜ ๋ฉ”์‹œ์ง€ ํ‚ค๋ฅผ ์ด์šฉํ•˜์—ฌ ํ•ด์‹œ ๊ฐ’์„ ํ† ๋Œ€๋กœ ํŒŒํ‹ฐ์…˜ ์ง€์ • ๊ฐ€๋Šฅ ํ•„์š”์‹œ null ์„ค์ • ๋ฉ”์‹œ์ง€ ๊ฐ’์€ ์ง๋ ฌํ™”, ์—ญ์ง๋ ฌํ™” ๊ฐ€๋Šฅํ•œ ๊ฐ์ฒด๋กœ ์„ค์ • => ๋™์ผํ•œ ํ˜•ํƒœ๋กœ ์ƒํ˜ธ ๊ฐ„ ์ˆ˜ํ–‰ ์ปจ์Šˆ๋จธ๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ๊ฐˆ ๋•Œ, ์˜คํ”„์…‹์„ ์‚ฌ์šฉ ์ปจ์Šˆ๋จธ ๊ทธ๋ฃน์ด .. 2023. 3. 27.
[์•„ํŒŒ์น˜ ์นดํ”„์นด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ with ์ž๋ฐ”] 3-1์žฅ ์นดํ”„์นด ๋ธŒ๋กœ์ปค์™€ ํด๋Ÿฌ์Šคํ„ฐ ์ฃผํ‚คํผ ์นดํ”„์นด ๋ธŒ๋กœ์ปค ์นดํ”„์นด ํด๋ผ์ด์–ธํŠธ์™€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ์ฃผ์ฒด ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜๋”๋ผ๋„ ์•ˆ์ „ํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„์‚ฐ ์ €์žฅํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ณดํ†ต 3๋Œ€ ์ด์ƒ์˜ ํด๋Ÿฌ์Šคํ„ฐ๋กœ ์šด์˜ ๋ถ„์‚ฐ ์ €์žฅ ๋ฐ ๋ณต์ œ ์นดํ”„์นด ๋ธŒ๋กœ์ปค์˜ ํŠน์ง• ์ „๋‹ฌ ๋ฐ›์€ ๋ฐ์ดํ„ฐ๋ฅผ ํŒŒํ‹ฐ์…˜์— ์ €์žฅ ๋ฐ ์ „๋‹ฌ ํŒŒ์ผ ์‹œ์Šคํ…œ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅ ๋ฉ”๋ชจ๋ฆฌ๋‚˜ ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค๊ฐ€ ์•„๋‹Œ, ํŒŒ์ผ ์‹œ์Šคํ…œ์— ์ €์žฅ => ์†๋„ ์ด์Šˆ๋ฅผ ์บ์‹ฑ์œผ๋กœ ๊ฐœ์„  ๋ฐ์ดํ„ฐ์˜ ๋ณต์ œ๋Š” ํŒŒํ‹ฐ์…˜ ๋‹จ์œ„๋กœ ์ด๋ฃจ์–ด์ง => ๋ฆฌ๋” ํŒŒํ‹ฐ์…˜์œผ๋กœ๋ถ€ํ„ฐ ๋ฐ›์Œ ์ปจํŠธ๋กค๋Ÿฌ ๋‹ค๋ฅธ ๋ธŒ๋กœ์ปค๋“ค์˜ ์ƒํƒœ ์ฒดํฌ ๋ฐ ํ•˜๋‚˜์˜ ๋ธŒ๋กœ์ปค๊ฐ€ ์ œ์™ธ๋  ๊ฒฝ์šฐ, ๋ฆฌ๋” ํŒŒํ‹ฐ์…˜์„ ์žฌ๋ถ„๋ฐฐ ๋ฐ์ดํ„ฐ ์‚ญ์ œ ์นดํ”„์นด๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ํ† ํ”ฝ ๋ฐ์ดํ„ฐ ์‚ญ์ œํ•˜์ง€ ์•Š์Œ. ๋ธŒ๋กœ์ปค๋งŒ์ด ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œ ๊ฐ€๋Šฅํ•จ. => ์‚ญ์ œ ์šฉ๋Ÿ‰ ์˜ต์…˜ ๊ฐ’ ์„ค์ • ๊ฐ€๋Šฅ ์ฝ”๋””๋„ค์ดํ„ฐ ์ปจ์Šˆ๋จธ ๊ทธ๋ฃน ์ƒํƒœ ์ฒดํฌ ๋ฐ .. 2023. 3. 27.
[์•„ํŒŒ์น˜ ์นดํ”„์นด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ with ์ž๋ฐ”] 1์žฅ ๋“ค์–ด๊ฐ€๋ฉฐ ์•„ํŒŒ์น˜ ์นดํ”„์นด ๊ฐœ๋ฐœ ๊ณต๋ถ€๋ฅผ ํ•˜๋ฉฐ ํ•„์ˆ˜๋กœ MQ, MB ์ •๋„๋Š” ํ•˜๋‚˜ ๊ณต๋ถ€ํ•ด์•ผ ๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์„ ๊พธ์ค€ํžˆ ํ•ด์™”๋‹ค. ๊ณต๋ถ€ํ• ๋งŒํ•œ ์‹ค๋ ฅ์ด ๋˜๋Š”๊ฒŒ ๋ฒ ์ด์Šค๊ฐ€ ๋  ์‹œ๊ธฐ์™€, ์‹ค์ œ๋กœ ์‚ฌ์šฉํ•ด์•ผ ๋  ์‹œ๊ธฐ๊ฐ€ ๋”ฑ ๋งž์•„ ๋–จ์–ด์ ธ ๋ฐ”๋กœ ๊ณต๋ถ€ํ•˜๊ธฐ๋กœ ๋งˆ์Œ ๋จน์—ˆ๋‹ค. ์นดํ”„์นด๋ž€? ์นดํ”„์นด ๋‚ด๋ถ€์— ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋˜๋Š” ํŒŒํ‹ฐ์…˜ ๋™์ž‘์€ FIFO ๋ฐฉ์‹์˜ ํ ์ž๋ฃŒ๊ตฌ์กฐ์™€ ์œ ์‚ฌํ•˜๋‹ค. ํ์— ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด๋Š” ๊ฒƒ์ด ‘ํ”„๋กœ๋“€์…”' ์ด๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ๊ฐ€๋Š” ๊ฒƒ์ด ‘์ปจ์Šˆ๋จธ'. ์นดํ”„์นด๋ฅผ ํ†ตํ•ด ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ ํฌ๋งท์€ ๊ฑฐ์˜ ์ œํ•œ์ด ์—†๋‹ค. ์ง๋ ฌํ™”, ์—ญ์ง๋ ฌํ™”๋ฅผ ํ†ตํ•ด ByteArray ๋กœ ํ†ต์‹ ํ•˜๋ฏ€๋กœ ์ž๋ฐ”์—์„œ ์„ ์–ธํ•œ ๋ชจ๋“  ๊ฐ์ฒด๋ฅผ ์ง€์›ํ•œ๋‹ค. (์นดํ”„์นด ํด๋ผ์ด์–ธํŠธ์—์„œ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ByteArray, ByteBuffer, Double, Long, String ํƒ€์ž…์— ๋Œ€์‘ํ•œ ์ง๋ ฌํ™”.. 2023. 3. 13.
๋ฐ˜์‘ํ˜•