#spring-boot #microservices #netflix-eureka #spring-cloud-config #service-discovery
Вопрос:
Я использую Spring Boot 2.4.4 и spring-cloud-starter-netflix-eureka-клиент 3.0.2.
В своем коде я использую некоторые свойства @Value и @ConfigurationProperties, не указывая значения по умолчанию, для привязки свойств и методов из файла конфигурации, который необходимо извлечь из сервера конфигурации.
На следующем рисунке представлено представление моих экземпляров.
Я регистрирую два экземпляра сервера Eureka (spring-cloud-starter-netflix-eureka-server 3.0.2), один на порту 8081, а другой на порту 8082.
Загрузочная страница моего MyMicroService содержит оба URL-адреса в качестве зоны по умолчанию, дело в том, что всякий раз, когда запускается и запускается первая Эврика, все работает нормально: обе Эврики показывают, что микросервис зарегистрирован, ms может восстановить конфигурацию с сервера конфигурации (также полученную из Эврики). Когда первая Эврика отключена, микросервис пытается подключиться к ней, затем происходит сбой, и возникает ОШИБКА, поскольку он не может разрешить заполнитель (внутри аннотации @Value), а затем останавливается, не пытаясь использовать другой URL-адрес Эврики (8082).
Я нахожу странным, что он пытается запустить микросервис, прежде чем пробовать все URL-адреса Eureka defaultZone. Я что-то упускаю?
Кроме того, я не могу указать значения по умолчанию для этих свойств, и в другом микросервисе, без аннотаций, он работает, пытается подключиться к 8081, терпит неудачу, а затем пытается 8082.
Существует ли конфигурация, в которой указано, что нужно попробовать все зоны по умолчанию, прежде чем пытаться оценить аннотации @Value и @ConfigurationProperties?