๐ฑ Spring Cloud - API Gateway Service (Load Balancing) ๐ฑ
Spring Cloud Gateway๋ฅผ ์ด์ฉํ Routing, Load Balancing Test
- API Gateway ํ๋ก์ ํธ ์ค์
- Spring-boot: 2.4.x
- Dependency
- Lombok, Spring Cloud Routing(Gateway), Eureka Client
- ํ
์คํธ๋ฅผ ์ํ ์๋น์ค ํ๋ก์ ํธ ์ค์
- Spring-boot: 2.4.x
- Dependency
- Spring web, Eureka Client
- Eureka Server๋ ์ด์ ํฌ์คํธ์์ ๊ตฌํํ ์๋ฒ๋ฅผ ์ฌ์ฉ
- ๋จ์ Routing์ ๋ํ ์ ๋ณด๋ ์ด์ ํฌ์คํธ๋ฅผ ํ์ธํด์ฃผ์ธ์.
Load Balancing์ ์ํ Routing ์ค์ ๋ณ๊ฒฝ
- API gateway service yml์ค์
- ๊ธฐ์กด ๋จ์ํ Routing๋ง์ ์ํํ๋ api gateway service์ ์ค์ ์ด๋ค.
- ๋ถํ๋ถ์ฐ์ ํ
์คํธ ํ๊ธฐ ์ํด ๋ณ๊ฒฝํด๋ณด์.
- yml ์ค์ ๋ณ๊ฒฝ
- ๋ถํ๋ถ์ฐ์ ์ํด ์ผ๋จ eureka์๋ฒ์ ํด๋ผ์ด์ธํธ๋ก ๋ฑ๋กํ๋ค.
- uri๊ฐ ๋ณ๊ฒฝ๋์๋ค. lb๋ Load Balancer์ ์ฝ์์ด๊ณ // ์ดํ ๋ฌธ์์ด์ ์๋ณํ ์๋น์ค์ ์ด๋ฆ์ด๋ค.
- eureka server์ ๋์๋ณด๋๋ฅผ ํ์ธํ๋ฉด ์ฝ๊ฒ ์ ์ ์๋ค.
- ์๋น์ค์ uri, ํฌํธ๋ฒํธ๋ก ์๋น์ค๋ฅผ ์๋ณํ์ง ์๊ธฐ ๋๋ฌธ์ ๋์ ์ผ๋ก ์์ฒญ์ ๋ถ์ฐ์ํฌ ์ ์๋ ๊ฒ์ด๋ค.
Load Balancing Test
- first-service๋ง์ผ๋ก Test๋ฅผ ์งํํ๋ค.
- first-service์๋ ์๋ ๋ฉ์๋๊ฐ ์ ์๋์ด ์๋ค.
- ์์ฒญ์ ๋ฐ์ ๊ฒฝ์ฐ ๋จ์ํ ์์ ์ ํฌํธ๋ฒํธ๋ฅผ ์ถ๋ ฅํ๋ ๋ฉ์๋์ด๋ค.
- ํ
์คํธ ๋ฐฉ์
- first-service๋ฅผ 2๊ฐ ์คํํ๋ค.
- eureka์๋ฒ์๋ api-gateway service์ ๋ ๊ฐ first-service๊ฐ ๋ฑ๋ก๋๋ค.
- ๋์ผํ ์๋น์ค์ ๋์ผํ ์์ฒญ์ ๋ณด๋ธ๋ค.
- ์ ์์ ์ผ๋ก ๋ถํ๋ถ์ฐ์ด ์ด๋ฃจ์ด์ง๋ค๋ฉด ๋งค ์์ฒญ๋ง๋ค ๋ค๋ฅธ ํฌํธ ๋ฒํธ๊ฐ ์ถ๋ ฅ๋์ด์ผ ํ๋ค. (spring cloud์์๋ Round Robbin๋ฐฉ์์ผ๋ก ๋ถํ๋ถ์ฐ์ ์ฒ๋ฆฌํ๋ ๋ฏ ํ๋ค..)
- ํ
์คํธ ์ํ
- Eureka server
- api gateway service์ 2๊ฐ first-service๊ฐ ๋ฑ๋ก๋์๋ค.
- ์ฒซ ๋ฒ์งธ ์์ฒญ (postman)
- 51638๋ฒ ํฌํธ๋ก ์์ฒญ๋์๋ค.
- ๋ ๋ฒ์งธ ์์ฒญ
- 51754๋ฒ ํฌํธ๋ก ์์ฒญ๋์๋ค.
- ๊ฐ์ ํฌํธ, ๊ฐ์ ์๋น์ค ์ด๋ฆ์ผ๋ก ๊ฐ์ api ํธ์ถ์ ๋ํด ๋ถํ๋ถ์ฐ ์ฒ๋ฆฌ๊ฐ ๋์๋ค. :)