dhk22.log
๋ก๊ทธ์ธ
dhk22.log
๋ก๊ทธ์ธ
๐ฑ Spring Cloud - API Gateway Service (Load Balancing) ๐ฑ
Kim Dae Hyun
ยท
2021๋ 5์ 30์ผ
ํ๋ก์ฐ
1
Spring
msa
spring cloud
1
Spring-Cloud
๋ชฉ๋ก ๋ณด๊ธฐ
3/4
Github ์์ค์ฝ๋
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 ํธ์ถ์ ๋ํด ๋ถํ๋ถ์ฐ ์ฒ๋ฆฌ๊ฐ ๋์๋ค. :)
Kim Dae Hyun
์ข ๋ ์ฒ์ฒํ ๊น๋จน๊ธฐ ์ํด ๊ธฐ๋กํฉ๋๋ค. ๐ง
ํ๋ก์ฐ
์ด์ ํฌ์คํธ
๐ฑ Spring Cloud - API Gateway Service (Routing) ๐ฑ
๋ค์ ํฌ์คํธ
๐ฑ Spring Cloud - MSA๊ฐ ํต์ (RestTemplate, Feign Client) ๐ฑ
0๊ฐ์ ๋๊ธ
๋๊ธ ์์ฑ