Spring Cloud Basic
Spring Cloud๋ ๋ถ์ฐ ์์คํ , ํนํ ๋ง์ดํฌ๋ก์๋น์ค ์ํคํ ์ฒ(MSA)๋ฅผ ๊ตฌ์ถํ ๋ ๊ณตํต์ ์ผ๋ก ๋ฐ์ํ๋ ๋ฌธ์ ๋ค์ ํด๊ฒฐํ๊ธฐ ์ํ ๊ธฐ๋ฅ๋ค ์ ๊ณตํ๋ ํ๋ ์์ํฌ๋ค.
์๋น์ค ๋์ค์ปค๋ฒ๋ฆฌ
Eureka
์๋น์ค ์ธ์คํด์ค์ ๋์ ์์น๋ฅผ ์ด๋ฆ์ผ๋ก ์ฐพ๊ณ ๊ด๋ฆฌ
๋ผ์ฐํ ๋ฐ API ๊ฒ์ดํธ์จ์ด
Spring Cloud Gateway
๋ชจ๋ ์์ฒญ์ ๋จ์ผ ์ง์ ์ ์ญํ ๋ฐ ๋ผ์ฐํ , ํํฐ๋ง
์ค์ ์ง์ค์ ์ค์
Spring Cloud Config
์ฌ๋ฌ ์๋น์ค์ ์ค์ ํ์ผ ์ค์ ๊ด๋ฆฌ
ํ๋ ฅ์ฑ ๋ฐ ๋ณต์๋ ฅ
Resilience4J
์ฅ์ ๊ฐ ์ ์ฒด ์์คํ ์ผ๋ก ์ ํ๋๋ ๊ฒ์ ๋ฐฉ์ง
Spring Cloud ๋ชจ๋ ๋ฆฌ์คํธ
Spring Cloud๋ ๋ค์ํ ํ์ ํ๋ก์ ํธ(๋ชจ๋)๋ก ๊ตฌ์ฑ๋์ด ์์ผ๋ฉฐ, ํ์ํ ๊ธฐ๋ฅ์ ๋ง๊ฒ ์ ์ ํ ๋ชจ๋์ ์ ํํ์ฌ ์ฌ์ฉํ ์ ์๋ค.
Spring Cloud Gateway
API ๊ฒ์ดํธ์จ์ด, ๋ผ์ฐํ , ํํฐ๋ง(๋น๋๊ธฐ ๋ ผ๋ธ๋กํน)
Spring Cloud Netflix Eureka
์๋น์ค ํ์(Service Discovery)
Spring Cloud Config
์ค์ํ๋ ์ธ๋ถ ์ค์ ๊ด๋ฆฌ
Spring Cloud OpenFeign
์ ์ธ์ (Declarative) REST ํด๋ผ์ด์ธํธ
Resilience4j
ํ๋ณต์ฑ ํจํด (์ํท ๋ธ๋ ์ด์ปค, ์ฌ์๋ ๋ฑ)
Spring Cloud Sleuth
๋ถ์ฐ ์ถ์ (๋ก๊น )
Spring Cloud Stream
๋ฉ์์ง ๊ธฐ๋ฐ ๋ง์ดํฌ๋ก์๋น์ค ๊ตฌ์ถ ํ๋ ์์ํฌ
Spring Cloud Bus
์ค์ ๋ณ๊ฒฝ ๋ฑ ์ํ ๋ณ๊ฒฝ ์ด๋ฒคํธ๋ฅผ ์ฌ๋ฌ ์ธ์คํด์ค์ ์ ํ
ํต์ฌ ๋ชจ๋
Spring Cloud Gateway
์์คํ ์ ๋ชจ๋ ์ธ๋ถ ์์ฒญ์ด ๊ฑฐ์ณ๊ฐ๋ ๋จ์ผ ์ง์ ์ (Single Point of Entry) ์ญํ ์ ํ๋ API ๊ฒ์ดํธ์จ์ด๋ก, ๋น๋๊ธฐ ๋ ผ๋ธ๋กํน ๋ฐฉ์์ผ๋ก ๋์ํ์ฌ ๋์ ์ฑ๋ฅ์ ์ ๊ณตํ๋ค.
Route: ID, ๋ชฉ์ ์ง URI, ์กฐ๊ฑด(Predicate) ๋ฐ ํํฐ(Filter)๋ก ๊ตฌ์ฑ
Predicate: ๋ค์ด์จ ์์ฒญ์ ํ๊ฐํ์ฌ Route์ ๋งค์นญ์ํค๋ ์กฐ๊ฑด. ๊ฒฝ๋ก(Path), ํค๋(Header), ์ฟ ํค(Cookie) ๋ฑ ๋ค์ํ ์กฐ๊ฑด์ผ๋ก ์ค์ ๊ฐ๋ฅ
Filter: ๋งค์นญ๋ ์์ฒญ์ด ๋ค์ด์คํธ๋ฆผ ์๋น์ค๋ก ์ ๋ฌ๋๊ธฐ ์ ํ์ ํน์ ๋ก์ง์ ์ํ
GatewayFilter: ํน์ ๋ผ์ฐํธ์๋ง ์ ์ฉ
GlobalFilter: ๋ชจ๋ ๋ผ์ฐํธ์ ๊ณตํต์ผ๋ก ์ ์ฉ
Eureka
MSA ํ๊ฒฝ์์ ๊ฐ ์๋น์ค์ ์์น ์ ๋ณด(IP, Port)๋ฅผ ๋ฑ๋กํ๊ณ ์กฐํํ ์ ์๋ ์๋น์ค ๋์ค์ปค๋ฒ๋ฆฌ(Service Discovery) ์๋ฒ์ด๋ค.
๋์ ๋ฐฉ์
Register(๋ฑ๋ก): ๊ฐ ์๋น์ค ์ธ์คํด์ค(Eureka Client)๋ ์์ ์ ์์ ์ ๋ฉํ๋ฐ์ดํฐ(์ด๋ฆ, IP, ํฌํธ ๋ฑ)๋ฅผ Eureka Server์ ๋ฑ๋ก
Renew(๊ฐฑ์ ): ํด๋ผ์ด์ธํธ๋ ์ฃผ๊ธฐ์ ์ผ๋ก ํํธ๋นํธ(Heartbeat)๋ฅผ ์๋ฒ์ ๋ณด๋ด ์์ ์ด ์ด์์์์ ์๋ฆผ
Fetch Registry(๋ชฉ๋ก ์กฐํ): ํด๋ผ์ด์ธํธ๋ ์๋ฒ๋ก๋ถํฐ ์ ์ฒด ์๋น์ค ๋ฑ๋ก ์ ๋ณด๋ฅผ ์ฃผ๊ธฐ์ ์ผ๋ก ๊ฐ์ ธ์ ๋ก์ปฌ์ ์บ์ฑ
Cancel(์ทจ์): ์๋น์ค๊ฐ ์ ์์ ์ผ๋ก ์ข ๋ฃ๋ ๋, ์๋ฒ์ ๋ฑ๋ก ํด์ ์์ฒญ
ํน์ง
Self-Preservation Mode(์๊ธฐ๋ณดํธ ๋ชจ๋)
๋ชฉ์ : ๊ฐ๋ณ ์๋น์ค์ ์ฅ์ ๊ฐ ์๋๋ผ, ์ผ์์ ์ธ ๋คํธ์ํฌ ๋จ์ ๋ก ์ธํด ๋ค์์ ํด๋ผ์ด์ธํธ๋ก๋ถํฐ ํํธ๋นํธ๋ฅผ ๋ฐ์ง ๋ชปํ๋ ์ํฉ์ ๋๋นํ ๋ฐฉ์ด ๋ฉ์ปค๋์ฆ
๋์: Eureka Server๊ฐ ๋ค์์ ํด๋ผ์ด์ธํธ๋ก๋ถํฐ ํํธ๋นํธ๋ฅผ ๋ฐ์ง ๋ชปํ๋ ๊ฒฝ์ฐ ์ผ์์ ์ธ ๋ฌธ์ ๋ก ํ๋จํ์ฌ ๊ธฐ์กด ๋ ์ง์คํธ๋ฆฌ๋ฅผ ์ ์ง
๋ง์ฝ ์ ๊ฑฐํ๋ฉด ๋คํธ์ํฌ๊ฐ ๋ณต๊ตฌ๋์์ ๋ ์ ์์ ์ธ ์๋น์ค๋ค์ด ์๋ก๋ฅผ ์ฐพ์ง ๋ชปํ๋ ์ฐ์ ์ฅ์ ๋ก ์ด์ด์ง ์ ์์
Client-Side Load Balancing
Eureka ์์ฒด๋ ๋ก๋ ๋ฐธ๋ฐ์๊ฐ ์๋๋ฉฐ,
Client-Side Load Balancing๋ฐฉ์ ์ฌ์ฉํด๋ผ์ด์ธํธ(Spring Cloud Gateway๋ RestTemplate)๊ฐ Eureka๋ก๋ถํฐ ํน์ ์๋น์ค์ ์ธ์คํด์ค ๋ชฉ๋ก์ ๋ฐ์์ ์์ฒด์ ์ผ๋ก ์์ฒญ์ ๋ถ์ฐ ์ฒ๋ฆฌ
Last updated
Was this helpful?