[MSA] - 4. Circuit Breaker๋ฅผ ์ด์šฉํ•œ ์žฅ์•  ์ฒ˜๋ฆฌ

๋ฐ˜์‘ํ˜•

MSA์— ๋Œ€ํ•ด์„œ ์šฐ๋ฆฌ๋Š” ๊ฐ API ์„œ๋ฒ„๋ฅผ ๋ถ„๋ฆฌํ•˜์—ฌ ์šฉ๋„๋ณ„๋กœ ์ธ์Šคํ„ด์Šค๋ฅผ ๋‚˜๋ˆ„๊ณ , ์•ž๋‹จ์—์„œ Gateway๋ฅผ ์‚ฌ์šฉํ•ด ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์›ํ•˜๋Š” ์„œ๋น„์Šค๋ฅผ ์ฃผ๊ณ , ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ ๋“ฑ์˜ ์ž‘์—…์ด ๋“ค์–ด๊ฐˆ ๊ฒฝ์šฐ, Service Discovery๋ฅผ ํ†ตํ•˜์—ฌ ์›ํ•˜๋Š” ์„œ๋น„์Šค๋ฅผ ๋™์ ์œผ๋กœ ์ฐพ์•„์ฃผ๋Š” ๋ฐฉ๋ฒ•๊นŒ์ง€ ์•Œ์•˜์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ๋ฐ, ์ด๋ ‡๊ฒŒ ์„œ๋น„์Šค๋ฅผ ๋ถ„๋ฆฌํ•จ์œผ๋กœ์จ ํ•œ ์ธ์Šคํ„ด์Šค๊ฐ€ ๋ชจ๋“  ์„œ๋น„์Šค๋ฅผ ๊ฐ๋‹นํ•˜๋Š” ๋ถ€๋ถ„์ด ์™„ํ™”๋˜๋Š” ๋“ฑ์˜ ์žฅ์ ์ด ์ƒ๊ฒผ์ง€๋งŒ, ๋งŒ์•ฝ ์„œ๋น„์Šค์— ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค๋ฉด ๊ทธ ์žฅ์• ๋Š” ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์„๊นŒ์š”?

์„œ๋น„์Šค๊ฐ€ ๋ถ„๋ฆฌ๋˜์–ด ์žˆ๋Š” ์ƒํƒœ์—์„œ ํด๋ผ์ด์–ธํŠธ์˜ ์ž˜๋ชป๋œ ์ž…๋ ฅ ๊ฐ’ ๋“ฑ์œผ๋กœ ์ƒ๊ธฐ๋Š” ์˜ค๋ฅ˜๋Š” ๋…ผ๋ฆฌ์ ์ธ ์˜ค๋ฅ˜์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด๋Ÿฐ ์˜ค๋ฅ˜๋Š” Exception ๋“ฑ์˜ ์ฒ˜๋ฆฌ๋ฅผ ํ†ตํ•ด์„œ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์˜ค๋ฅ˜๋ฅผ ์•Œ๋ ค์ฃผ๊ณ , ์ด๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ MSA์—์„œ ์„œ๋น„์Šค ์žฅ์•  ์ฒ˜๋ฆฌ์˜ ์–ด๋ ค์›€์€ ๋…ผ๋ฆฌ์ ์ธ ์˜ค๋ฅ˜๊ฐ€ ์•„๋‹Œ ๋ฌผ๋ฆฌ์ ์ธ ์˜ค๋ฅ˜์— ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด์„œ, MSA๋Š” ์‹œ์Šคํ…œ์„ ์—ฌ๋Ÿฌ ๊ฐœ ์„œ๋น„์Šค ์ปดํฌ๋„ŒํŠธ๋กœ ๋‚˜๋ˆ„์–ด์„œ ์„œ๋น„์Šค ์ปดํฌ๋„ŒํŠธ ๊ฐ„์— ํ˜ธ์ถœํ•˜๋Š” ๊ฐœ๋…์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”๋ฐ, ๊ทธ๋ ‡๊ฒŒ ๋˜๋ฉด ์ปดํฌ๋„ŒํŠธ๋ผ๋ฆฌ ํ†ต์‹ ์„ ํ•˜๊ฒŒ ๋  ๊ฒƒ์ด๊ณ , ํ†ต์‹  ์ค‘ ํ•˜๋‚˜์˜ ์ปดํฌ๋„ŒํŠธ์—์„œ ์ธ์Šคํ„ด์Šค๊ฐ€ ๋Š๋ ค์ง€๊ฑฐ๋‚˜, ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ๊ทธ๊ฒƒ์ด ๋‹ค๋ฅธ ์ปดํฌ๋„ŒํŠธ์—์„œ๋„ ๋˜‘๊ฐ™์ด ์ ์šฉ๋˜๋Š” ์ด๋ฅธ ๋ฐ” '์ „ํŒŒ'๋ผ๋Š” ํŠน์„ฑ์ด ์žˆ๋Š” ๊ฒƒ์ด์ฃ .

 

์‰ฌ์šด ์„ค๋ช…์„ ์œ„ํ•ด์„œ ์œ„ ์ด๋ฏธ์ง€๋ฅผ ๋ณด๋ฉด, User API์— ์ €์žฅ๋œ ์นดํŽ˜ ์ฃผ๋ฌธ ๋ฉ”๋‰ด๋ฅผ ๊ฐ€์ ธ์˜ค๊ธฐ ์œ„ํ•ด Cafe API์—์„œ ์ •๋ณด๋ฅผ ์š”์ฒญํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ Cafe Service์—์„œ๋Š” ์‘๋‹ต์ด ์—†๋Š” ๊ฒฝ์šฐ, ์ด๋Ÿฌํ•œ ํ˜„์ƒ์ด User Service์—๋„ ๋™์ผํ•˜๊ฒŒ ๋‚˜ํƒ€๋‚˜๋ฉฐ ์˜ค๋ฅ˜๋ฅผ ์ „ํŒŒ์‹œํ‚ค๋Š” ํ˜„์ƒ์„ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

 

Circuit Breaker

์œ„์™€ ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์šฐ๋ฆฌ๋Š” Circuit Breaker๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Circuit Breaker๋ฅผ ๊ฐ„๋‹จํžˆ ์„ค๋ช…๋“œ๋ฆฌ์ž๋ฉด, ๊ฐ ์ปดํฌ๋„ŒํŠธ ๊ตฌ๊ฐ„ ์ค‘๊ฐ„์— ์ถ”๊ฐ€์ ์œผ๋กœ ์ปดํฌ๋„ŒํŠธ๋ฅผ ํ•˜๋‚˜ ๋‘๊ณ , ์ด ์ปดํฌ๋„ŒํŠธ์—์„œ ๋ณด๋‚ด๊ณ ์ž ํ•˜๋Š” ์„œ๋น„์Šค์˜ ์ƒํƒœ๋ฅผ ๋ฏธ๋ฆฌ ํ™•์ธํ•œ ๋‹ค์Œ, ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ๋Š” Observer ์—ญํ• ์„ ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

 

์„œ๋น„์Šค๊ฐ€ ์ •์ƒ์ ์ธ ์ƒํƒœ๋กœ ์šด์˜ ์ค‘์ด๋ผ๋ฉด, Circuit Breaker๋Š” ๋Œ€์ƒ ์„œ๋น„์Šค๋กœ ํ†ต์‹ ์„ ์‹œํ‚ค๊ฒŒ ๋˜๊ณ , ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ์—๋Š” ์˜ค๋ฅ˜๋ฅผ ๋ฐ˜ํ™˜์‹œํ‚ต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ์ค‘๊ฐ„ ์—ญํ• ์„ ํ•˜์—ฌ, ์„œ๋ฒ„์˜ ์ƒํƒœ๋ฅผ ์ ๊ฒ€ํ•ด์คŒ์œผ๋กœ์จ ์˜ค๋ฅ˜์˜ ์ „ํŒŒ๋ฅผ ๋ง‰์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๋งˆ์น˜๋ฉฐ...

์ด๋ฒˆ ํŒŒํŠธ์—์„œ๋Š” ๊ฐ„๋‹จํ•˜๊ฒŒ Circuit Breaker๊ฐ€ ์™œ ํ•„์š”ํ•œ์ง€, ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋Š”์ง€์— ๋Œ€ํ•ด์„œ ๋‹ค๋ค„๋ดค์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์„œ๋น„์Šค์— ๋Œ€ํ‘œ์ ์ธ ๊ฒƒ์—๋Š” Netflix์—์„œ ๊ฐœ๋ฐœํ•œ Hystrix๊ฐ€ ์žˆ๊ณ , Spring Cloud์˜ Spring Circuit Breaker๋„ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ ํฌ์ŠคํŠธ์—์„œ๋Š” Spring Stack์˜ Circuit Breaker๋ฅผ ๋‹ค๋ค„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

 

๋ฐ˜์‘ํ˜•
TAGS.

Tistory Comments