Eureka 대시보드에서 볼 수 있는 경고는 셀프 프리저베이션(Self-Preservation) 모드와 관련이 있으며, 이 개념을 이해하면 경고 메시지가 더 잘 이해될 것입니다.
셀프 프리저베이션 모드는 Eureka 서버가 네트워크 문제나 일시적인 지연으로 인해 서비스 인스턴스의 하트비트를 받지 못할 때, 잘못된 판단으로 서비스 인스턴스를 제거하지 않도록 하는 보호 메커니즘입니다.
Loans
마이크로서비스의 5개의 인스턴스 중 2개의 인스턴스(Instance 4
와 Instance 5
)가 하트비트를 보내지 못한다고 가정합니다.Instance 3
도 하트비트를 보내지 못하게 되면, Eureka 서버는 셀프 프리저베이션 모드에 진입하고 더 이상의 인스턴스 제거를 중단합니다.eureka.instance.lease-renewal-interval-in-seconds
: 기본값은 30초로, 하트비트 주기를 설정합니다.eureka.instance.lease-expiration-duration-in-seconds
: 기본값은 90초로, 하트비트를 수신하지 못할 때까지 기다리는 시간을 설정합니다.eureka.server.eviction-interval-timer-milliseconds
: 기본값은 60초로, 인스턴스 제거 작업의 주기를 설정합니다.eureka.server.renewal-percent-threshold
: 기본값은 85%로, 하트비트를 받을 것으로 기대되는 인스턴스의 최소 비율을 설정합니다.eureka.server.enable-self-preservation
: 기본값은 true
로, 셀프 프리저베이션 모드의 활성화 여부를 결정합니다.경고 메시지:
Emergency! Eureka may be incorrectly claiming instances are up when they are not. Renewals are lesser than threshold and hence the instances are not being expired just to be safe.
이 메시지는 하트비트를 받지 못한 인스턴스가 일정 기준치 이하일 때 Eureka 서버가 인스턴스를 제거하지 않고 셀프 프리저베이션 모드로 전환되었음을 나타냅니다. 네트워크 문제가 해결되면 이 경고는 자동으로 사라집니다.
Eureka 서버의 셀프 프리저베이션 모드는 네트워크 문제나 일시적인 시스템 지연으로 인해 발생할 수 있는 잘못된 인스턴스 제거를 방지하는 중요한 메커니즘입니다. 이 모드를 통해 마이크로서비스 네트워크의 안정성과 가용성을 유지할 수 있습니다. 경고 메시지를 봤을 때 당황하지 말고, 네트워크 상태를 점검한 후 해결될 때까지 기다리면 됩니다.