Loading...
2020. 2. 8. 22:31

[Spring Cloud] - 6. Eureka๋ฅผ ์ด์šฉํ•œ ์„œ๋น„์Šค ๊ฒ€์ƒ‰

MSA๋กœ ์„ค๊ณ„๋œ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ๊ทธ ์ธ์Šคํ„ด์Šค๊ฐ€ ์„œ๋น„์Šค๋ณ„๋กœ ๋‚˜๋ˆ„์–ด์ ธ ์žˆ๊ณ , ๋งŒ์•ฝ ์ด๋ฅผ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ์„ ์ด์šฉํ•ด ์—ฌ๋Ÿฌ ์„œ๋น„์Šค๋ฅผ ๋ถ„์‚ฐ ์ฒ˜๋ฆฌํ•˜๊ฒŒ ๋œ๋‹ค๋ฉด, ์„œ๋กœ ๋‹ค๋ฅธ ์ธ์Šคํ„ด์Šค๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ ์ƒ๊ธฐ๊ฒŒ ๋˜๋ฉฐ, ๊ทธ๋ ‡๊ฒŒ ๋˜๋ฉด API ์š”์ฒญ๋งˆ๋‹ค ์ ์ ˆํ•œ ์ธ์Šคํ„ด์Šค์˜ Endpoint๋ฅผ ๋งค๊ฒจ์ค˜์•ผ ํ•ฉ๋‹ˆ๋‹ค. Service Discovery๋Š” ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ ์ž, Server-Client ๋ฐฉ์‹๊ณผ ์œ ์‚ฌํ•œ Self-Registration Pattern์„ ์ด์šฉํ•ด ์ž์‹ ์˜ ์„œ๋น„์Šค๋ฅผ ์ค‘์•™์˜ Registry์— ๋“ฑ๋กํ•˜๊ณ , ์ด๋ฅผ ์š”์ฒญํ•  ๋•Œ๋งˆ๋‹ค ์•Œ๋งž๋Š” Endpoint๋ฅผ ๋งค์นญํ•ด์ค€๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์•˜์Šต๋‹ˆ๋‹ค. Eureka Spring Cloud ์Šคํƒ์—์„œ ์ด๋Ÿฌํ•œ ์—ญํ• ์„ ํ•˜๋Š” ๋Œ€ํ‘œ์ ์ธ ๋ชจ๋“ˆ๋กœ Eureka๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. Eureka๋Š” Netflix OSS ์ค‘ ํ•˜๋‚˜๋กœ Spr..

2020. 1. 22. 17:53

[Spring Cloud] - 5. Zuul Gateway๋ฅผ ์ด์šฉํ•œ Filtering

์ด๋ฒˆ ํฌ์ŠคํŠธ์—์„œ๋Š” Routing์— ์ด์–ด์„œ Zuul Gateway๋ฅผ ์ด์šฉํ•œ Filtering์— ๋Œ€ํ•ด์„œ ์ด์•ผ๊ธฐํ•ด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. Filtering Spring Boot์—์„œ ํ•„ํ„ฐ๋ง์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๋Š” PreFilter์™€ ๊ฐ™์€ ์—”๋“œํฌ์ธํŠธ์˜ ๋ณด์•ˆ ๋“ฑ์—์„œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด ํ•„ํ„ฐ๋ง์„ ์ด์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” Spring Security์—์„œ ์ œ๊ณตํ•˜๋Š” JWT ๋“ฑ์˜ ๋ณด์•ˆ ์ˆ˜๋‹จ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ธ์ฆ์„ ๋ฐ›๊ณ , ์—”๋“œํฌ์ธํŠธ์— ์ ‘๊ทผํ•˜๋Š” ๋ฐฉ์‹์ด์ฃ . Zuul Gateway์—์„œ๋„ ์—”๋“œํฌ์ธํŠธ์˜ ๋ณด์•ˆ์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ•„ํ„ฐ๋ง ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์œ„ ์•„ํ‚คํ…์ฒ˜๋Š” Zuul Gateway์˜ ์ฝ”์–ด๋ฅผ ๊ทธ๋ฆฐ ์•„ํ‚คํ…์ฒ˜์ž…๋‹ˆ๋‹ค. Zuul Servlet์„ ํ†ตํ•ด ๋“ค์–ด์˜ค๋Š” ์š”์ฒญ์„ Routing ํ•˜๊ฒŒ ๋˜๋Š”๋ฐ์š”. ๊ทธ๋ฆฌ๊ณ , ๊ทธ ๋ฐ‘๋‹จ์—๋Š” ZuulFilter Runner๊ฐ€ ์žˆ์–ด์„œ ์—”๋“œ..

2019. 12. 29. 13:47

[Spring Cloud] - 3. API ์„œ๋ฒ„๋กœ ์„ค์ • ๊ฐ’ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ

์ง€๋‚œ ํฌ์ŠคํŠธ์—์„œ๋Š” Configuration Server๋ฅผ ์„ค์ •ํ•˜๋Š” ๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ดค์Šต๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ ๋ฐฉ๋ฒ•์€ ๋กœ์ปฌ์˜ ์ €์žฅ๋˜์–ด ์žˆ๋Š” ์„ค์ • ํŒŒ์ผ์„ ๊ฐ€์ ธ์˜ค๋Š” ๋ฐฉ๋ฒ•์ด์—ˆ๊ณ , ๋‘ ๋ฒˆ์จฐ ๋ฐฉ๋ฒ•์€ Github ๋“ฑ์˜ ๋ ˆํฌ์ง€ํ„ฐ๋ฆฌ์— ์žˆ๋Š” ํŒŒ์ผ์„ ๊ฐ€์ ธ์˜ค๋Š” ๋ฐฉ๋ฒ•์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ด๋Ÿฌํ•œ ์„œ๋ฒ„๊ฐ€ ์ œ๋Œ€๋กœ ๊ตฌ์ถ•๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด์„œ REST API๋ฅผ ์ง์ ‘ ํ˜ธ์ถœํ•˜์—ฌ ํ•ด๋‹น ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ํ…Œ์ŠคํŠธ๋ฅผ ํ–ˆ์—ˆ๋Š”๋ฐ์š”. ํ•˜์ง€๋งŒ ์ด๋Ÿฌํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๊ณ , ์–ด๋–ป๊ฒŒ API ์„œ๋ฒ„๊ฐ€ ์ด๋Ÿฌํ•œ ๊ฐ’์„ ๋ฐ›๋Š”์ง€์— ๋Œ€ํ•ด์„œ๋Š” ์•„๋งˆ ๊ถ๊ธˆํ•ด ํ•˜์…จ์„ ๊ฒƒ์ด๋ผ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ด๋ฒˆ ํฌ์ŠคํŠธ์—์„œ๋Š” ์ง์ ‘ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ๋งŒ๋“ค๊ณ , ํ•ด๋‹น ์„œ๋ฒ„์— ๋งž๋Š” ์„ค์ •๊ฐ’์„ ๋งŒ๋“ค์–ด, ๊ฐ€์ ธ์˜ค๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๋จผ์ € API ์„œ๋ฒ„๋ฅผ ๋งŒ๋“ค์–ด๋ณด๋„๋ก ํ•˜์ฃ . ์ƒˆ๋กœ์šด Spring Boot..

2019. 12. 26. 13:26

[Spring Cloud] - 2. Github and Configuration Server

์•ˆ๋…•ํ•˜์„ธ์š”. ์ง€๋‚œ ์‹œ๊ฐ„์—๋Š” Spring Cloud์˜ Configuration Server๋ฅผ ๋กœ์ปฌ ํ™˜๊ฒฝ์˜ ์„ค์ • ํŒŒ์ผ์„ ํ†ตํ•˜์„œ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ดค์Šต๋‹ˆ๋‹ค. ๋กœ์ปฌ ๋‚ด์— ์žˆ๋Š” ์„ค์ • ํŒŒ์ผ์„ ์ง์ ‘ ์ž‘์„ฑํ•˜์—ฌ ์ด๋ฅผ Pull ๋ฐฉ์‹์œผ๋กœ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ณ„๋„์˜ ๊ตฌ์„ฑ ์„œ๋ฒ„๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์€ ๋งค์šฐ ํšจ์œจ์ ์œผ๋กœ ์„œ๋ฒ„์˜ ๊ตฌ์„ฑ ์„ค์ •์„ ๋ณ€๊ฒฝํ•˜๊ณ  ์ƒˆ๋กœ์ด ์ž‘์„ฑํ•˜๋Š” ๋ฐ ์šฉ์ดํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ, ์—ฌ๊ธฐ์— Git์„ ์ถ”๊ฐ€ํ•œ๋‹ค๋ฉด ์–ด๋–จ๊นŒ์š”? ๊ธฐ์กด์˜ ์„ค์ •์—์„œ ์ƒˆ๋กœ์šด ์„ค์ •์œผ๋กœ ๋ณ€๊ฒฝํ•œ ๋’ค, ์–ด๋– ํ•œ ๋ฌธ์ œ์ ์ด ์ƒ๊ฒผ๋‹ค๊ฑฐ๋‚˜ ์ด์Šˆ๊ฐ€ ๋ฐœ์ƒ๋œ๋‹ค๋ฉด ๋กค๋ฐฑ์„ ํ•˜์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ํŒŒ์ผ ์‹œ์Šคํ…œ์—์„œ ๋กค๋ฐฑ์„ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์€ Volume Shadow Copy ์ •๋„๋‚˜ ํ˜น์€ RAID ๋ ˆ๋ฒจ์—์„œ ์ œ๊ณตํ•˜๋Š” Snapshot, BRTFS์—์„œ ์ œ๊ณตํ•˜๋Š” Snapshot์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ..

2019. 12. 22. 12:39

[Spring Cloud] - 1. Configuration Server ๊ตฌ์„ฑ

์ง€๋‚œ ๊ธ€์—์„œ MSA(Micro Service Architecture)์— ๋Œ€ํ•œ ๊ธฐ๋ณธ์ ์ธ ๋‚ด์šฉ์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ดค์—ˆ๋Š”๋ฐ์š”. ํ˜น์‹œ๋ผ๋„ ์ด ๊ธ€์„ ์ฝ์–ด๋ณด์ง€ ๋ชปํ–ˆ๋‹ค๋ฉด, ์•„๋ž˜์˜ ๋งํฌ๋ฅผ ํ†ตํ•ด์„œ ์ง์ ‘ ์ฝ์–ด๋ณด์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. MSA (Micro Service Architecture) ๋ž€ ๋ฌด์—‡์ผ๊นŒ? ์•ˆ๋…•ํ•˜์„ธ์š”. ์˜ค๋Š˜์€ Micro Service Architecture์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐ ํ•ด๋ณด๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ํ•œ๋™์•ˆ MSA๊ฐ€ ๊ต‰์žฅํžˆ ํ™”๋‘์˜€๋Š”๋ฐ, ์š”์ฆ˜์€ ๋ถ„์œ„๊ธฐ๊ฐ€ ์‹์–ด์ง€๋Š” ๋“ฏํ•˜์—ฌ ์˜ค๋Š˜ ๋ธ”๋กœ๊ทธ์— ์ด ๊ธ€์„ ์ ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ.. blog.neonkid.xyz ์ด๋ฒˆ ํŒŒํŠธ์—์„œ๋Š” Java ์–ธ์–ด์˜ ์›น ๊ฐœ๋ฐœ ํ”„๋ ˆ์ž„์›Œํฌ์ธ Spring์„ ์ด์šฉํ•ด์„œ ์ด Micro Service Architecture๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์ ธ๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ทธ..