โ ๋ฌธ์ ์ํฉ
Spring Cloud Gateway Service๋ก ์ฐ๊ฒฐํ์ ๋ ์ฐ๊ฒฐ์ด localhost๋ก ๋์๋ค๊ฐ ์๋น์คํ๊ณ ์๋ host๋ก ์ฐ๊ฒฐ์ด ๋์๋ค๊ฐ ํ๋ค..
Eureka Service url๋ก ๋ค์ด๊ฐ์ Eureka์ ๋ฑ๋ก๋ ์ฑ๊ณผ ์ธ์คํด์ค๋ค์ ํ์ธํ๋ ํ ์ฑ์ ์ฌ๋ฌ ์ธ์คํด์ค๋ค์ด ๋ฑ๋ก๋์ด ์์๋ค.
๋ง์ดํฌ๋ก์๋น์ค๋ค์ Eureka Discovery Service ์๋ฒ์ ์ฐ๊ฒฐํ์ฑ๋ก ์ฐ๋ค๊ฐ ํ ์๋ฒ์ ์ฌ๋ฌ ๊ฐ์ ์ธ์คํด์ค๋ค์ด ์์ฑ๋์๋ค. ์๋น์ค๊ฐ ์ฃฝ์์์๋ DOWN์ด ๋์ง ์์๋ค. ๊ทธ๋ ๋ค๋ฉด ์ง์ ์๋์ผ๋ก ์ธ์คํด์ค๋ฅผ ๋ด๋ ค์ผ ํ๋๋ฐ ์๋ฌด๋ฆฌ ๊ตฌ๊ธ๋งํด๋ ๋ด๋ฆฌ๋ ๋ฐฉ๋ฒ์ ์ฐพ๊ธฐ๊ฐ ์ด๋ ค์ ๋ค.
๐ก ํด๊ฒฐ
ChatGPT์๊ฒ ๋ฌผ์ด์๋ค!
SpringApplication.java
@SpringBootApplication
public class ApigatewayServiceApplication {
public static void main(String[] args) {
SpringApplication.run(ApigatewayServiceApplication.class, args);
}
@Autowired
private EurekaClient eurekaClient;
@PreDestroy
public void unregister() {
eurekaClient.shutdown();
}
}
1. ๋ด๋ฆฌ๊ณ ์ถ์ ์ธ์คํด์ค์ ๋ง์ดํฌ๋ก์๋น์ค์ `SpringApplication.java` ๋ฐ์ `EurekaClient`๋ฅผ `shutdown`์ํค๋ ์ฝ๋๋ฅผ ์ถ๊ฐํด์ค๋ค.
2. ์ดํ๋ฆฌ์บ์ด์ ์ ์คํ์ํจ๋ค. ๊ทธ๋ฆฌ๊ณ ์ข ๋ฃ์ํจ๋ค.
๊ทธ๋ฌ๋ฉด ์ฑ์ด ์ข ๋ฃ๋๊ธฐ ์ ์ EurekaClient๊ฐ ์ข ๋ฃ๊ฐ ๋๋ค. Eureka Service url๋ก ๋ค์ด๊ฐ๋ฉด ์์ด์ง ๊ฒ์ ๋ณผ ์ ์๋ค.
์ด๋ ๊ฒ ์๋์ผ๋ก ์ฃฝ์ผ ์๋ ์์ง๋ง... ์๋์ผ๋ก ์ ์์ฃฝ๋ ์ธ์คํด์ค๋ ์์๋ค. DESKTOP-DOGVPUB ์ฒ๋ผ ์ปดํจํฐ์ ๊ธฐ๊ธฐ๋ช ์ด ์๋์ผ๋ก ๋ถ์ ์ธ์คํด์ค๋ค์ด๋ค. ์ด ์ธ์คํด์ค๋ Window ํ๊ฒฝ์์ ๋ก์ปฌ๋ก ์ดํ๋ฆฌ์บ์ด์ ์ ์คํ์ํฌ ๋, Eureka instance์ hostname localhost ์ค์ ํ์ง ์์๋ค๋ฉด localhost๊ฐ ์๋๋ผ ์ปดํจํฐ ๊ธฐ๊ธฐ๋ช ์ด ๋ถ๊ฒ ๋๋ค.
`application.yml`์์ instance์ hostname์ ์ค์ ํด์ฃผ๋๋ก ํ์. ๊ทธ๋ฆฌ๊ณ ์ดํ๋ฆฌ์บ์ด์ ์ด ์ข ๋ฃ๋์์ ๋, Eureka์์๋ instance๊ฐ ์ ๊ฑฐ๋๋๋ก ํ๊ธฐ ์ํด์ heartbeat ์ฃผ๊ธฐ๋ฅผ ์งง๊ฒ ๋ฐ๊ฟ์คฌ๋ค.
application.yml
eureka:
instance:
hostname: #ํธ์คํธ๋ช
lease-renewal-interval-in-seconds: 1
lease-expiration-duration-in-seconds: 2
- `lease-renewal-interval-in-seconds` : discovery์๊ฒ 1์ด๋ง๋ค heartbeat ์ ์ก
- `lease-expiration-duration-in-seconds` : discovery๊ฐ ๋ง์ง๋ง heartbeat์์ 2์ด ๊ธฐ๋ค๋ฆฐ ํ, ์๋น์ค ๋ฑ๋ก์ ํด์ ์ํด
๐ ์ฐธ๊ณ ์๋ฃ