Этот вопрос может быть автоответчиком, но меня все равно попросили задать.
Мы работаем над набором приложений, который построен на Spring Boot 1.3.6.RELEASE и Spring-Cloud Brixton.РЕЛИЗ.Да, я понимаю, что это не только «мертвый и похороненный», но и полностью законченный срок службы.
В конкретной установке мы развернули диспетчер отказоустойчивого кластера в режиме активной пассивной работы.Основная часть наших приложений развернута как группа ресурсов узлов и связана с ролью.
При запуске на одном из узлов функциональность Spring-Cloud распознает основной адаптер как «Windows».Виртуальный адаптер отказоустойчивого кластера ".Это адрес с префиксом 169.254.Это автоматически настроенный адрес.Далее в списке сетевых интерфейсов находится фактическая сетевая карта, подключенная к ЛВС.
Из-за того, как записана логика, она определяет первый интерфейс, который является UP и имеет адрес без обратной связи.
С этого момента он пытается разрешить имя хоста и IP-адрес.
Попытки разрешить этот IP-адрес к имени хоста, конечно же, потерпят неудачу и предоставят «localhost».
Поскольку мы имеемне настроил службу, иначе это поведение.
Я немного покопался в этом и определил, что NetworkInterface.getInterfaces () в конечном счете (в Windows) вызывает GetIFTable ().Особенностью этого вызова является то, что он сортирует результат на основе индекса.Документация GetIFTable указывает, что это значение индекса не является постоянным и может фактически измениться, когда интерфейс переключается из включенного / отключенного / включенного (или других случаев).
В Brixton.RELEASE, рекомендуемый способ гарантироватьчто адаптер кластера не используется, мы должны установить свойство spring.cloud.inetutils.ignoredInterfaces="Microsoft Failover Cluster Virtual Adapter"
?
. Мы работаем над тем, чтобы извлечь это из Spring-Boot 1.3.6.RELEASE / Brixton.RELEASE, поэтому, пожалуйста, не предоставляйте этов качестве предложения.
Заранее спасибо.