Skip to content

Latest commit

ย 

History

History
84 lines (48 loc) ยท 5.21 KB

File metadata and controls

84 lines (48 loc) ยท 5.21 KB

โœ๏ธ MSA

MSA์™€ ๋ชจ๋†€๋กœ์‹ ์•„ํ‚คํ…์ฒ˜์˜ ์ฐจ์ด์ ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

Monolithic Architecture๋ž€ ์†Œํ”„ํŠธ์›จ์–ด์˜ ๋ชจ๋“  ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ํ•œ ํ”„๋กœ์ ํŠธ์— ํ†ตํ•ฉ๋˜์–ด ์žˆ๋Š” ํ˜•ํƒœ๋กœ ๋ณดํ†ต ์†Œ๊ทœ๋ชจ๋กœ ์ด๋ฃจ์–ด์ง€๋Š” ํ”„๋กœ์ ํŠธ์— ์ ํ•ฉํ•˜๋‹ค. MSA๋Š” Micro Service Architecture๋กœ ์„œ๋น„์Šค๋“ค์ด ๊ฐ๊ฐ ๋ฐฐํฌ๋‚˜ ๊ตฌํ˜„์„ ๋…๋ฆฝ์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ๋‹ค์ˆ˜์˜ ๊ฐœ๋ฐœ์ž๋“ค์ด ๊ฐœ๋ฐœํ•˜๋Š” ๋Œ€๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ์— ์ ํ•ฉํ•˜๋‹ค.

Spring Cloud Netflix Eureka์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

๋ถ„์‚ฐ ์‹œ์Šคํ…œ์—์„œ ์„œ๋น„์Šค ๋””์Šค์ปค๋ฒ„๋ฆฌ์™€ ๊ด€๋ จ๋œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ์ž…๋‹ˆ๋‹ค.

ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ์—์„œ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ๊ฐ„์˜ ์ƒํ˜ธ์ž‘์šฉ์„ ๊ด€๋ฆฌํ•˜๊ณ  ์„œ๋น„์Šค ๋“ฑ๋ก๊ณผ ๊ฒ€์ƒ‰์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

  • ์„œ๋น„์Šค ๋“ฑ๋ก

    ๊ฐ๊ฐ์˜ ๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค๋Š” Eureka ์„œ๋ฒ„์— ์ž์‹ ์„ ๋“ฑ๋กํ•˜๋Š”๋ฐ, ์ด ๋“ฑ๋ก ๊ณผ์ •์—์„œ ์„œ๋น„์Šค๋Š” ์ž์‹ ์˜ ์ •๋ณด(ํฌํŠธ, ์ƒํƒœ ์ •๋ณด ๋“ฑ)๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

  • ์„œ๋น„์Šค ๊ฒ€์ƒ‰

    ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋Š” Eureka ์„œ๋ฒ„๋ฅผ ํ†ตํ•ด ๋‹ค๋ฅธ ์„œ๋น„์Šค์˜ ์œ„์น˜๋ฅผ ๋™์ ์œผ๋กœ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

    ํด๋ผ์ด์–ธํŠธ๋Š” ํ•„์š”ํ•œ ์„œ๋น„์Šค์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ์ฐพ์•„ ์š”์ฒญ์„ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋‹ค.

  • ํ—ฌ์Šค ์ฒดํฌ

    ์„œ๋น„์Šค ์ธ์Šคํ„ด์Šค์˜ ์ƒํƒœ๋ฅผ ์ฃผ๊ธฐ์ ์œผ๋กœ ํ™•์ธํ•˜๊ณ  ๋น„์ •์ƒ์ ์ธ ์ธ์Šคํ„ด์Šค๋Š” ์ž๋™์œผ๋กœ ๋“ฑ๋ก ํ•ด์ œํ•œ๋‹ค.

MSA๋ฅผ ๋Œ€๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”?
  • ๊ฐ๊ฐ์˜ ์„œ๋น„์Šค๋Š” ๋ชจ๋“ˆํ™”๊ฐ€ ๋˜์–ด์žˆ๊ธฐ ๋•Œ๋ฌธ์— RPC, message-driven API ๋“ฑ์„ ์ด์šฉํ•˜์—ฌ ํ†ต์‹ ํ•ด์„œ ๊ฐ๊ฐ ๊ฐœ๋ณ„ ์„œ๋น„์Šค๋ฅผ ๋น ๋ฅด๊ฒŒ ๊ฐœ๋ฐœํ•˜๊ณ  ์œ ์ง€ ๋ณด์ˆ˜๊ฐ€ ์‰ฝ๋‹ค.

  • ํŒ€ ๋‹จ์œ„๋กœ ์ ์ ˆํ•œ ์ˆ˜์ค€์— ๊ธฐ์ˆ  ์Šคํƒ์„ ๋‹ค๋ฅด๊ฒŒ ๊ฐ€์ ธ๊ฐˆ ์ˆ˜ ์žˆ๋‹ค.

  • ์„œ๋น„์Šค๋ณ„๋กœ ๋…๋ฆฝ์  ๋ฐฐํฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— CD ์ž‘์—…๋„ ๋ชจ๋†€๋กœ์‹์— ๋น„ํ•ด ๊ฐ€๋ณ๋‹ค.

  • ๊ฐœ๋ณ„์ ์œผ๋กœ Scale-out์ด ๊ฐ€๋Šฅํ•ด์„œ ๋ฉ”๋ชจ๋ฆฌ, CPU์ ์œผ๋กœ ์ƒ๋‹น ๋ถ€๋ถ„ ์ด๋“์ด๋‹ค.

MSA ํ™˜๊ฒฝ์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ •ํ•ฉ์„ฑ์„ ๋งž์ถ”๋Š” ๋ฐฉ์•ˆ์— ๋Œ€ํ•ด ๋ง์”€ํ•ด์ฃผ์„ธ์š”.

2PC(Two-Phase Commit): ์„œ๋กœ ๋‹ค๋ฅธ DB ๊ฐ„์— ์™„๋ฒฝํ•œ ์ •ํ•ฉ์„ฑ์„ ๋ณด์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ, ๋ชจ๋“  DB์— ๋ฐ˜์˜ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ๋ฌผ์–ด๋ด์„œ ํ•ฉ์˜๊ฐ€ ๋˜์—ˆ์„ ๋•Œ๋งŒ ๋ฐ˜์˜ํ•˜๊ณ  ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์ „์ฒด๋ฅผ ์ฒ ํšŒํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ์ด ๋’ค ๊ฐ DB์— ์ปค๋ฐ‹ํ•˜๋Š”๋ฐ ์ปค๋ฐ‹๋˜์ง€ ์•Š์€ ์ชฝ์˜ DB์—” ๋ฝ์ด ์žกํ˜€ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ถˆ์ผ์น˜ํ•œ ์ƒํƒœ๋กœ๋Š” ์ ˆ๋Œ€ ์กฐํšŒ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‹จ, ์ •ํ•ฉ์„ฑ์€ ๋ณด์žฅ๋˜์ง€๋งŒ ๋ฝ์ด ํ’€๋ฆฌ์ง€ ์•Š์œผ๋ฉด ์ „์—ญ ์žฅ์• ๋ฅผ ์œ ๋ฐœํ•  ์ˆ˜ ์žˆ์–ด ์ฃผ์˜๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

CDC(Change Data Capture): ์ตœ์ข… ์ผ๊ด€์„ฑ์„ ๋ณด์žฅํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ, ์ผ์‹œ์ ์œผ๋กœ ์–‘์ชฝ์˜ ํ•ฉ์ด ๋งž์ง€ ์•Š์„ ์ˆ˜ ์žˆ์œผ๋‚˜ ๊ถ๊ทน์ ์œผ๋กœ ๋งž๋„๋ก ํ•˜๋Š” ๋น„๋™๊ธฐ ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ์†Œ์ŠคDB์™€ ํƒ€๊ฒŸDB ๊ฐ„์— ๋น„๋™๊ธฐ ๋ณต์ œ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. 2PC์™€ ์ •๋ฐ˜๋Œ€๋กœ ํƒ€๊ฒŸ DB์— ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜๋”๋ผ๋„ ๋ณต๊ตฌ๋  ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณต ์ˆ˜ํ–‰ํ•˜๋ฉด์„œ ๊ผญ ๋ฐ˜์˜์‹œํ‚ต๋‹ˆ๋‹ค. ๋•Œ๋ฌธ์— ๊ณ„์ • ์ดˆ๊ธฐํ™”์™€ ๊ฐ™์ด ๋ฐ˜๋“œ์‹œ ์„ฑ๊ณตํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ์— ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

SAGA ํŒจํ„ด: ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ณด์ƒ ํŠธ๋žœ์žญ์…˜์„ ์ž˜ ์ •์˜ํ•˜๊ณ  ๋ˆ„๋ฝ๋˜์ง€ ์•Š๋„๋ก ๊ตฌ์„ฑํ•  ์ฑ…์ž„์„ ์ง‘๋‹ˆ๋‹ค. ํ‘œํ˜„๋ ฅ์ด ๋„“์–ด์„œ ๋ณด์ƒ ํŠธ๋žœ์žญ์…˜ ๊ตฌ์„ฑ ๋ฐฉ์‹์— ๋”ฐ๋ผ 2CP์™€ CDC์˜ ํšจ๊ณผ๋ฅผ ๋ชจ๋‘ ๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹จ, ๋ชจ๋“  ๋ณด์ƒ ํŠธ๋žœ์žญ์…˜์„ ์™„๋ฒฝํ•˜๊ฒŒ ๊ตฌ์„ฑํ•˜๋Š” ๊ฒƒ์€ ์–ด๋ ค์šธ ์ˆ˜ ์žˆ๊ณ  ๋‹จ๊ณ„๋ณ„ ์—๋Ÿฌ ์ผ€์ด์Šค๋ฅผ ๋ชจ๋‘ ๊ฒ€์ฆํ•ด์•ผ ํ•˜๋Š” ๋ถ€๋‹ด์ด ์žˆ์Šต๋‹ˆ๋‹ค.

MSA์™€ ๋ชจ๋†€๋ฆฌ์‹ ์•„ํ‚คํ…์ฒ˜์˜ ์žฅ๋‹จ์ ์— ๋Œ€ํ•ด ๋ง์”€ํ•ด์ฃผ์„ธ์š”.

๋ชจ๋†€๋ฆฌ์‹ ์•„ํ‚คํ…์ฒ˜๋Š” ํŠธ๋žœ์žญ์…˜ ๊ด€๋ฆฌ๊ฐ€ ์‰ฝ๊ณ  ๋ฐฐํฌ์™€ ํ…Œ์ŠคํŠธ๊ฐ€ ์šฉ์ดํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ผ๋ถ€๋ถ„์˜ ์˜ค๋ฅ˜๊ฐ€ ์ „์ฒด์— ์˜ํ–ฅ์„ ๋ผ์น  ์ˆ˜ ์žˆ๋Š” ๋‹จ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ ๋นŒ๋“œ ๋ฐ ๋ฐฐํฌ ์‹œ๊ฐ„์ด ๊ธธ์–ด ์ƒ์‚ฐ์„ฑ์ด ๋‚ฎ์•„์ง‘๋‹ˆ๋‹ค.

๋ฐ˜๋Œ€๋กœ MSA๋Š” ์„œ๋น„์Šค ๊ฐ„ ๋…๋ฆฝ์„ฑ์ด ๋†’์•„ ๋ฐฐํฌ ์‹œ ๋‹ค๋ฅธ ์„œ๋น„์Šค์— ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ณ ๋ คํ•ด์•ผ ํ•  ์‚ฌํ•ญ์ด ๋งŽ์•„ ๋ณต์žก๋„๊ฐ€ ๋†’๊ณ  ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ๊ฐ€ ์–ด๋ ค์šด ๋‹จ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ํŠธ๋žœ์žญ์…˜ ๊ด€๋ฆฌ์™€ ๋ฐ์ดํ„ฐ ์ •ํ•ฉ์„ฑ ์œ ์ง€๊ฐ€ ๊นŒ๋‹ค๋กญ์Šต๋‹ˆ๋‹ค.

MSA๋กœ ์ „ํ™˜ํ•˜๊ธฐ ์œ„ํ•œ ํ•„์ˆ˜ ์š”์†Œ๋กœ ๋ฌด์—‡์ด ์žˆ์„๊นŒ์š”?

๋จผ์ € ๋„๋ฉ”์ธ์˜ ๊ฒฝ๊ณ„๋ฅผ ๋ช…ํ™•ํžˆ ์„ค์ •ํ•ด ๊ฐ ์„œ๋น„์Šค์˜ ์ฑ…์ž„๊ณผ ์—ญํ• ์„ ๋ช…ํ™•ํžˆ ์ •์˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋˜ ๊ฐ ์„œ๋น„์Šค๋ฅผ ๋…๋ฆฝ์ ์œผ๋กœ ์šด์˜ํ•˜๊ธฐ ์œ„ํ•œ ๋…๋ฆฝ์ ์ธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ตฌ์ถ•ํ•˜๊ณ  ์—๋Ÿฌ ๋ฐœ์ƒ ์‹œ ์›์ธ์„ ๋น ๋ฅด๊ฒŒ ํŒŒ์•…ํ•˜๊ณ  ๋ณต๊ตฌํ•˜๊ธฐ ์œ„ํ•œ ๋ถ„์‚ฐ ๋กœ๊น… ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.


์ฐธ๊ณ