728x90
๋ฐ˜์‘ํ˜•

MSA ๊ตฌ์ถ•ํ•˜๊ธฐ 7

[MSA ๊ตฌ์ถ•ํ•˜๊ธฐ] 9. API Gateway์™€ Eureka ์„œ๋ฒ„ ์—ฐ๋™ํ•˜๊ธฐ (API Gateway)

๐Ÿ”Š ์šฐ๋ฆฌ๋Š” Spring Cloud๋ฅผ ํ™œ์šฉํ•˜์—ฌ MSA๋ฅผ ๊ตฌ์ถ•ํ•œ๋‹ค. ๐Ÿ”Š ์ด๋ฒˆ์—๋Š”, API Gateway๋ฅผ Eureka ํด๋ผ์ด์–ธํŠธ๋กœ ๋“ฑ๋กํ•˜์—ฌ API Gateway์™€ Eureka ์„œ๋ฒ„๋ฅผ ์—ฐ๋™ํ•  ๊ฒƒ์ด๋‹ค. API Gateway์™€ Eureka ์„œ๋ฒ„ ์—ฐ๋™ ํ”„๋กœ์„ธ์Šค ํด๋ผ์ด์–ธํŠธ๊ฐ€ API Gateway์— ์š”์ฒญ์„ ํ•˜๋ฉด API Gateway ๊ฐ€ Eureka server์— ๋“ฑ๋ก๋œ ์„œ๋น„์Šค๋“ค์„ ์กฐํšŒํ•˜๊ณ  ํ•ด๋‹น ์„œ๋น„์Šค๋กœ ๋ผ์šฐํŒ…์„ ํ•ด์ค€๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋กœ๊ทธ์ธ์„ ํ•œ๋‹ค๋Š” ๊ฐ€์ƒ์˜ ์‹œ๋‚˜๋ฆฌ์˜ค์— ๋Œ€ํ•ด ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋Š”์ง€ ์‚ดํŽด๋ณด์ž. โ‘ : ๊ฐ ์ธ์Šคํ„ด์Šค๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์œ ๋ ˆ์นด ์„œ๋ฒ„์— ๋“ฑ๋กํ•œ๋‹ค. ์ƒˆ๋กœ์šด ์ธ์Šคํ„ด์Šค๋Š” ์‹œ์ž‘ํ•  ๋•Œ ์œ ๋ ˆ์นด ์„œ๋ฒ„์— IP, ํ˜ธ์ŠคํŠธ ์ฃผ์†Œ, ํฌํŠธ ์ •๋ณด ๋“ฑ์„ ์ „๋‹ฌํ•œ๋‹ค. ์œ ๋ ˆ์นด ์„œ๋ฒ„๋Š” ๋“ฑ๋ก๋œ ์ธ์Šคํ„ด์Šค๋“ค์„ ์ฃผ๊ธฐ์ ์œผ๋กœ ์ƒํƒœ๋ฅผ ์ฒดํฌํ•˜๋ฉด์„œ ํ•ด๋‹น ์ธ์Šคํ„ด์Šค๋ฅผ..

[MSA ๊ตฌ์ถ•ํ•˜๊ธฐ] 7. Spring Cloud Gateway๋ฅผ ํ™œ์šฉํ•œ ๊ฒฝ๋กœ ์ˆ˜์ • (API Gateway)

๐Ÿ”Š ์šฐ๋ฆฌ๋Š” Spring Cloud๋ฅผ ํ™œ์šฉํ•˜์—ฌ MSA๋ฅผ ๊ตฌ์ถ•ํ•œ๋‹ค. ๐Ÿ”Š ์•ž์„œ, API Gateway์˜ ๋ผ์šฐํŒ…์„ ์„ค์ •ํ–ˆ๋Š”๋ฐ ์‹คํ–‰ํ–ˆ์„ ๋•Œ ๊ฒฐ๊ณผ ๊ฐ’์ด ๋‹ค๋ฅด๊ฒŒ ๋‚˜ํƒ€๋‚ฌ๋‹ค. ๊ทธ ์ด์œ ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž. API Gateway ํŒŒํŠธ 3 ์šฐ์„ , ์ž‘์„ฑํ•œ ์ฝ”๋“œ๋ฅผ ์‚ดํŽด๋ณด์ž. 1. user-service์˜ UserController.java ํŒŒ์ผ // user-service: UserController.java (8081 ํฌํŠธ ์‚ฌ์šฉ) package com.caffeinedoctor.userservice.controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestControll..

[MSA ๊ตฌ์ถ•ํ•˜๊ธฐ] 6. Spring Cloud Gateway ๋ผ์šฐํŒ… ์„ค์ •ํ•˜๊ธฐ (API Gateway)

๐Ÿ”Š ์šฐ๋ฆฌ๋Š” Spring Cloud๋ฅผ ํ™œ์šฉํ•˜์—ฌ MSA๋ฅผ ๊ตฌ์ถ•ํ•œ๋‹ค. ๐Ÿ”Š ์ด๋ฒˆ์—๋Š”, API Gateway์˜ ๋ผ์šฐํŒ…์„ ์„ค์ •ํ•  ๊ฒƒ์ด๋‹ค. API Gateway ํŒŒํŠธ 2 ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์„œ๋ฒ„๋ฅผ 2๊ฐœ ์ด์ƒ ์ค€๋น„ํ•˜์ž. ๋ผ์šฐํŒ…์„ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์—๋Š” 3๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. application.properties๋ฅผ ํ†ตํ•œ ๊ฒฝ๋กœ ์„ค์ • application.yml๋ฅผ ํ†ตํ•œ ๊ฒฝ๋กœ ์„ค์ • Config ํด๋ž˜์Šค๋ฅผ ํ™œ์šฉํ•œ ๊ฒฝ๋กœ ์„ค์ • (์ง์ ‘ Java ์ฝ”๋“œ ์ž‘์„ฑ) Spring Cloud Gateway ๊ณต์‹๋ฌธ์„œ์˜ 5๋ฒˆ์งธ ์นดํ…Œ๊ณ ๋ฆฌ 5. Route Predicate Factories์— ๋‹ค์–‘ํ•œ ๋ผ์šฐํŒ…์ „๋žต์ด ์žˆ๋‹ค. Spring Cloud Gateway ๊ณต์‹๋ฌธ์„œ https://docs.spring.io/spring-cloud-gateway/docs/current/r..

[MSA ๊ตฌ์ถ•ํ•˜๊ธฐ] 5. Spring Cloud Gateway ํ”„๋กœ์ ํŠธ ์ƒ์„ฑํ•˜๊ธฐ (API Gateway)

๐Ÿ”Š ์šฐ๋ฆฌ๋Š” Spring Cloud๋ฅผ ํ™œ์šฉํ•˜์—ฌ MSA๋ฅผ ๊ตฌ์ถ•ํ•œ๋‹ค. ๐Ÿ”Š ์ด๋ฒˆ์—๋Š”, Spring Cloud Gateway๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ API Gateway๋ฅผ ๊ตฌ์ถ•ํ•  ๊ฒƒ์ด๋‹ค. API Gateway ํŒŒํŠธ 1 API Gateway๋ž€? ์‚ฌ์šฉ์ž๊ฐ€ ์„ค์ •ํ•œ Routing ์„ค์ •์— ๋”ฐ๋ผ ๊ฐ endpoint๋กœ client๋ฅผ ๋Œ€์‹ ํ•ด์„œ ์š”์ฒญํ•˜๊ณ , ์‘๋‹ต์„ ๋ฐ›์œผ๋ฉด ๋‹ค์‹œ client์—๊ฒŒ ์ „๋‹ฌํ•ด์ฃผ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. Spring Cloud์—์„œ๋Š” Spring Cloud Gateway๊ฐ€ API Gateway์˜ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. Spring Cloud Gateway๋ž€? ์Šคํ”„๋ง ํด๋ผ์šฐ๋“œ ๊ฒŒ์ดํŠธ์›จ์ด๋Š” MSA ๊ฐ€์žฅ ์•ž๋‹จ์—์„œ ํด๋ผ์ด์–ธํŠธ๋“ค๋กœ ๋ถ€ํ„ฐ ์˜ค๋Š” ์š”์ฒญ์„ ๋ฐ›์€ ํ›„ ๊ฒฝ๋กœ์™€ ์กฐ๊ฑด์— ์•Œ๋งž์€ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ๋กœ์ง์— ์š”์ฒญ์„ ์ „๋‹ฌํ•˜๋Š” ๊ฒŒ์ดํŠธ์›จ์ด์ด๋‹ค. ๊ฒŒ์ดํŠธ์›จ์ด๋Š” ๊ฐœ..

[MSA ๊ตฌ์ถ•ํ•˜๊ธฐ] 4. Eureka ํด๋ผ์ด์–ธํŠธ์— ๋žœ๋ค ํฌํŠธ ํ• ๋‹นํ•˜๊ธฐ (Service Discovery)

๐Ÿ”Š ์šฐ๋ฆฌ๋Š” Spring Cloud๋ฅผ ํ™œ์šฉํ•˜์—ฌ MSA๋ฅผ ๊ตฌ์ถ•ํ•œ๋‹ค. Service Discovery ํŒŒํŠธ 3 Service Discovery์˜ ์—ญํ• ์„ ๊ฐ„๋žตํ•˜๊ฒŒ ์ •๋ฆฌํ•˜์ž๋ฉด, Service Discovery๋ž€? ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์˜ ์ •๋ณด(์œ„์น˜ ๋“ฑ)๋ฅผ ๋“ฑ๋กํ•  ์ˆ˜ ์žˆ๋‹ค. ์™ธ๋ถ€์˜ ์š”์ฒญ์ด๋‚˜ ์„œ๋น„์Šค๊ฐ€ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์˜ ์ •๋ณด๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋œ๋‹ค. Spring Cloud์—์„œ๋Š” Spring Cloud Netflix Eureka๊ฐ€ Service Discovery์˜ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. Eureka๋Š” Eureka Server์™€ Eureka Client๋กœ ๊ตฌ์„ฑ๋œ๋‹ค. Eureka ํด๋ผ์ด์–ธํŠธ๋ž€? MSA๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ์š”์†Œ๋“ค ์ค‘ Eureka ์„œ๋ฒ„์—์„œ ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ๊ด€๋ฆฌ๋ฅผ ์›ํ•˜๋Š” ์š”์†Œ๋ฅผ Eureka ํด๋ผ์ด์–ธํŠธ ์„ค์ •์„ ์ง„ํ–‰ํ•ด์„œ ๋“ฑ๋กํ•  ์ˆ˜ ์žˆ๋‹ค. ๐Ÿ”Š ..

[MSA ๊ตฌ์ถ•ํ•˜๊ธฐ] 3. Eureka ํด๋ผ์ด์–ธํŠธ ์„ค์ • (Service Discovery)

๐Ÿ”Š ์šฐ๋ฆฌ๋Š” Spring Cloud๋ฅผ ํ™œ์šฉํ•˜์—ฌ MSA๋ฅผ ๊ตฌ์ถ•ํ•œ๋‹ค. Service Discovery ํŒŒํŠธ 2 Service Discovery์˜ ์—ญํ• ์„ ๊ฐ„๋žตํ•˜๊ฒŒ ์ •๋ฆฌํ•˜์ž๋ฉด, Service Discovery๋ž€? ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์˜ ์ •๋ณด(์œ„์น˜ ๋“ฑ)๋ฅผ ๋“ฑ๋กํ•  ์ˆ˜ ์žˆ๋‹ค. ์™ธ๋ถ€์˜ ์š”์ฒญ์ด๋‚˜ ์„œ๋น„์Šค๊ฐ€ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์˜ ์ •๋ณด๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋œ๋‹ค. Spring Cloud์—์„œ๋Š” Spring Cloud Netflix Eureka๊ฐ€ Service Discovery์˜ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. Eureka๋Š” Eureka Server์™€ Eureka Client๋กœ ๊ตฌ์„ฑ๋œ๋‹ค. Eureka ํด๋ผ์ด์–ธํŠธ๋ž€? MSA๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ์š”์†Œ๋“ค ์ค‘ Eureka ์„œ๋ฒ„์—์„œ ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ๊ด€๋ฆฌ๋ฅผ ์›ํ•˜๋Š” ์š”์†Œ๋ฅผ Eureka ํด๋ผ์ด์–ธํŠธ ์„ค์ •์„ ์ง„ํ–‰ํ•ด์„œ ๋“ฑ๋กํ•  ์ˆ˜ ์žˆ๋‹ค. ๐Ÿ”Š ..

[MSA ๊ตฌ์ถ•ํ•˜๊ธฐ] 2. Eureka ์„œ๋ฒ„ ๊ตฌ์ถ• (Service Discovery)

๐Ÿ”Š ์šฐ๋ฆฌ๋Š” Spring Cloud๋ฅผ ํ™œ์šฉํ•˜์—ฌ MSA๋ฅผ ๊ตฌ์ถ•ํ•œ๋‹ค. ๐Ÿ”Š ์ด๋ฒˆ์—๋Š”, Service Discovery๋ฅผ ๊ตฌ์ถ•ํ•  ๊ฒƒ์ด๋‹ค. Service Discovery ํŒŒํŠธ 1 Service Discovery์˜ ์—ญํ• ์„ ๊ฐ„๋žตํ•˜๊ฒŒ ์ •๋ฆฌํ•˜์ž๋ฉด, Service Discovery๋ž€? ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์˜ ์ •๋ณด(์œ„์น˜ ๋“ฑ)๋ฅผ ๋“ฑ๋กํ•  ์ˆ˜ ์žˆ๋‹ค. ์™ธ๋ถ€์˜ ์š”์ฒญ์ด๋‚˜ ์„œ๋น„์Šค๊ฐ€ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์˜ ์ •๋ณด๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋œ๋‹ค. Spring Cloud์—์„œ๋Š” Spring Cloud Netflix Eureka๊ฐ€ Service Discovery์˜ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. Eureka๋Š” Eureka Server์™€ Eureka Client๋กœ ๊ตฌ์„ฑ๋œ๋‹ค. Eureka ์„œ๋ฒ„๋ž€? Eureka ์„œ๋ฒ„๋Š” ๋‹จ์ˆœํ•˜๊ฒŒ MSA๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค๋“ค์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๋Š” ๊ฐ์‹œ์ž ..

728x90
๋ฐ˜์‘ํ˜•