Приложение Spring Cloud не регистрирует правильный порт для Eureka

У меня есть хороший набор приложений Spring Cloud, но фактические приложения регистрируются с неправильным портом на DiscoveryServer.

У меня есть Config-сервер, Eureka-сервер и Zuul-сервер, которые хорошо общаются друг с другом и все блестит.

Затем я добавил свое фактическое приложение, и все больше не было блестящим. Мое приложение работает на порту 9001 и работает, но каким-то образом оно регистрируется с Eureka на порту 8080.

Я совершенно сбит с толку тем, что происходит.

файл градиента: https://gist.github.com/2ee0b2b9a8490e6f25c0

application.yml: https://gist.github.com/f0e811d01eae83020bad

bootstrap.yml: https://gist.github.com/e947ac49a01ca1dfad0e


person deiga    schedule 12.01.2015    source источник
comment
Вы запускаете несколько приложений на одном хосте? Я не вижу никакой конфигурации instanceId сервера, поэтому сервер 8080, вероятно, является другим приложением.   -  person Dave Syer    schedule 12.01.2015
comment
@DaveSyer Да, я запускаю несколько приложений на одном хосте. У всех разные порты, чтобы не конфликтовать. Дело в том, что на 8080 ничего не запущено.   -  person deiga    schedule 12.01.2015


Ответы (1)


См. документацию по как сделать идентификатор экземпляра Eureka уникальным. Если вы используете несколько серверов на одном хосте, вам необходимо настроить instanceId в файле eureka.intance.metadataMap. Кроме того, поскольку вы используете Eureka для обнаружения сервера конфигурации, вся конфигурация eureka должна находиться в bootstrap.yml, включая server.port, чтобы клиент отправлял правильные метаданные при запуске.

person Dave Syer    schedule 12.01.2015
comment
Это только для клиентов? - person deiga; 12.01.2015
comment
Почему только? Это относится ко всем клиентам, работающим на одном хосте. - person Dave Syer; 12.01.2015
comment
Я имел в виду, добавить ли это на сервер тоже? - person deiga; 12.01.2015
comment
Но я добавил это в свой configserver, который правильно отправляет новое имя, но мое приложение не регистрирует правильное имя и порт... - person deiga; 12.01.2015
comment
EurekaInstanceConfigBean по умолчанию 8080 (github.com/spring-cloud/spring-cloud-netflix/blob/master/), если вы его не установили. Может быть, вам нужно переместить server.port в bootstrap.yml? - person Dave Syer; 12.01.2015
comment
это сработало, мне просто интересно, почему это сработало и почему server.port может быть в application.yml для моих configserver и zuul-server? - person deiga; 12.01.2015
comment
Я думаю, это потому, что вы используете eureka для обнаружения сервера конфигурации. У вас должны быть правильные элементы эврики во время начальной загрузки, чтобы это работало. - person Dave Syer; 12.01.2015
comment
Хотите отредактировать свой ответ, чтобы я мог его принять? :) - person deiga; 13.01.2015