Eureka
๐ฟ Eureka
์ ๋ ์นด๋ ํด๋ผ์ด์ธํธ์ ์๋ฒ๋ก ๋๋์ด์ ์๋ค.
- ์ ๋ ์นด ์๋ฒ
- ๋ชจ๋ ๋ง์ดํฌ๋ก ์๋น์ค๊ฐ ์์ ์ ๊ฐ์ฉ์ฑ์ ๋ฑ๋กํ๋ ๋ ์ง์คํธ๋ฆฌ
- ๋ฑ๋ก๋๋ ์ ๋ณด๋ ์๋น์ค ID ์ URL์ด ํฌํจ๋๋๋ฐ ์ ๋ ์นด ํด๋ผ์ด์ธํธ๋ฅผ ํตํด์ ์ด ์ ๋ณด๋ฅผ ์๋ฒ์ ๋ฑ๋ก
- ๋ฑ๋ก๋ ์ ๋ณด๋ฅผ ํตํด์ ์๋น์ค์ ๋์ ๋ฐ๊ฒฌ์ด ๊ฐ๋ฅ
- ์ ๋ ์นด ํด๋ผ์ด์ธํธ
- ๋ฑ๋ก๋ ๋ง์ดํฌ๋ก ์๋น์ค๋ฅผ ํธ์ถํด์ ์ฌ์ฉํ ์ ๋ ์นด ํด๋ผ์ด์ธํธ๋ฅผ ๋ฐ๊ฒฌ(gateway)
- ์ ๋ ์นด ์๋ฒ๋ ๋์์ ์ ๋ ์นด ํด๋ผ์ด์ธํธ์ด๊ธฐ๋ ํด์ ๋ค๋ฅธ ์ ๋ ์นด ์๋ฒ์ ์ํ๋ฅผ ๋๊ธฐํ ํจ
- ์ฌ๋ฌ๋์ ์ ๋ ์นด ์๋ฒ๋ฅผ ์ด์์ ๊ณ ๊ฐ์ฉ์ฑ
Service Discovery: Eureka Server / Service Router: Api Gateway
๐ฟ Eureka ๊ตฌ์ถ
Eureka Server
์ฃผ์ Component
- @EnableEurekaServer(main ํด๋์ค): ์ ๋ถ์ด๋ฉฐ ์ ๋ ์นด ์๋ฒ๋ฅผ ์ฐ๊ฒ ๋ค๋ ๋ป
- ์ฌ๊ธฐ ์๋ฒ์ index๋ฅผ ํธ์ถํ๋ฉด ํ์ฌ ๊ฐ์ฉ ์ํ์ ์๋ฒ๋ฅผ ๋ณผ ์ ์์
- register-with-eureka(yml)
- ๋ ์ง์คํธ๋ฆฌ์ ์์ ์ ๋ฑ๋กํ ์ง ์ฌ๋ถ
- ํด๋ฌ์คํฐ๋ง ๋ชจ๋์ ์ ๋ ์นด ์๋ฒ ๊ตฌ์ฑ์ ์๋ก peering ๊ตฌ์ฑ์ด ๊ฐ๋ฅ. (์ ๋ ์นด ์๋ฒ ์ค์ ์ ์ ์๋ peering ๋ ธ๋๋ฅผ ์ฐพ์์ ๋ ์ง์คํธ๋ฆฌ ์ ๋ณด์ sync๋ฅผ ๋ง์ถค)
- fetch-registry(yml)
- ๋ ์ง์คํธ๋ฆฌ์ ์๋ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ฌ ์ง์ ๋ํ ์ฌ๋ถ
- wait-time-in-ms-when-sync-empty
- registry๋ฅผ ๊ฐฑ์ ํ ์ ์์๋ ์ฌ์๋๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ์๊ฐ
- ํ ์คํธ ์ ์งง์ ์๊ฐ์ผ๋ก ๋ฑ๋กํด๋์ผ๋ฉด ์ ๋ ์นด ์๋น์ค์ ์์ ์๊ฐ๊ณผ ๋ฑ๋ก๋ ์๋น์ค๋ฅผ ๋ณด์ฌ์ฃผ๋ ์๊ฐ ๋จ์ถ ๊ฐ๋ฅ
- ์ ๋ ์นด๋ ๋ฑ๋ก๋ ์๋น์ค์์ 10์ด ๊ฐ๊ฒฉ์ผ๋ก ์ฐ์ 3ํ์ ์ํ ์ ๋ณด(heartbeat)๋ฅผ ๋ฐ์์ผ ํ๋ฏ๋ก ๋ฑ๋ก๋ ๊ฐ๋ณ ์๋น์ค๋ฅผ ๋ณด์ฌ์ฃผ๋๋ฐ 30์ด ์์
์ฃผ์ ์ฌํญ
- ์ ๋ ์นด ํด๋ผ์ด์ธํธ๋ฅผ 1๊ฐ ๊ตฌ์ฑํ ๋๋ register-with-eureka, fetch-registry ๋๋ค false