Как настроить свойства клиента и службы Eureka?

Я пытаюсь зарегистрировать свою службу Java в Eureka - безуспешно. У меня есть существующая кодовая база, использующая платформу Spark-Java, так что «добавьте только 2 строки аннотаций Spring и вуаля!» примеры, к сожалению, мне не помогут.

Я прочитал документацию Eureka Configuration, создал каталог eureka-conf и поместите следующие два файла в eureka-conf:

  • eureka-client.properties
  • eureka-service.properties

Я добавил путь eureka_conf в свою переменную $CLASSPATH с помощью export CLASSPATH=.:${CLASSPATH}:${EUREKA_CONF}/eureka-client.properties:${EUREKA_CONF}/eureka-service.properties

Я скопировал содержимое файлов свойств из здесь . Итак, они выглядят так:

#eureka-client.properties
eureka.registration.enabled=false
eureka.preferSameZone=true
eureka.shouldUseDns=false
eureka.serviceUrl.default=http://localhost:8080/eureka/v2/
eureka.decoderName=JacksonJson

#eureka-service.properties
eureka.region=us-west-1
eureka.name=qb-acm
eureka.vipAddress=mysampleservice.mydomain.net
eureka.port=8001
eureka.preferSameZone=true
eureka.shouldUseDns=false
eureka.serviceUrl.default=http://localhost:8080/eureka/v2/

Как видите, я изменил eureka.name и eureka.region, чтобы видеть в журналах, обнаруживаются свойства или нет. Их не найти.

Когда я запускаю свою службу, я вижу, что com.netflix.discovery.internal.util.Archaius1Utils выдает следующее предупреждение:

Cannot find the properties specified : eureka-client. This may be okay if there are other environment specific properties or the configuration is installed with a different mechanism.

Далее следует: INFO com.netflix.discovery.DiscoveryClient - Initializing Eureka in region us-east-1.

Я создал пример сервера и клиента Eureka (с Spring) просто для примера, и клиент Spring зарегистрирован. Теперь я пытаюсь зарегистрировать свою службу Java, отличную от Spring, на локальном сервере Eureka. Моя конечная цель — настроить эту службу для регистрации и отправки сердечных сокращений на наш удаленный сервер Eureka, который размещен на Pivotal.

Читателю могут быть полезны и другие ошибки:

[main] ERROR com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver - Cannot resolve to any endpoints from provided configuration: {defaultZone=[]}
[main] ERROR com.netflix.discovery.shared.transport.EurekaHttpClients - Initial resolution of Eureka server endpoints failed. Check ConfigClusterResolver logs for more info

Итак, мои вопросы:

  1. Что я делаю неправильно, устанавливая свойства?

  2. Я вижу во многих примерах, что у них есть файл application.yml или manifest.yml. Для чего нужен файл .yaml в конфигурации Eureka? Это альтернатива файлам свойств?

edit: я нашел этот ответ объясняет файлы yaml. Application.yml используется Spring boot, а Manifest.yml — CLI облачного литейного производства.

  1. Каким должен быть eureka.vipAddress в моей локальной среде и в Pivotal?

** редактировать: методом проб и ошибок я обнаружил, что на локальном компьютере для этого установлено значение http://localhost:yourport. а для PCF это должно быть имя приложения. Ни localhost, ни service-name не соответствуют физическому сетевому интерфейсу. Ну что ж, наконец-то я узнал, что такое виртуальный айпи**

Дайте мне знать, если потребуется дополнительная информация. Заранее благодарю за любую помощь.


person melis    schedule 28.08.2017    source источник


Ответы (2)


Кажется, что ваши файлы конфигурации не найдены во время запуска. Файлы конфигурации eureka должны находиться в пути к классам. Иногда они не упакованы в файл jar. Убедитесь, что в вашем jar-файле есть файлы (try jar xf <your-jar-file> для анализа содержимого вашего jar-файла.

Вы строите с maven? Затем добавьте блок ресурсов/включения в раздел сборки вашего pom-файла, чтобы обеспечить включение файлов конфигурации.

Некоторые свойства eureka можно установить в файлах application.yml, которые аналогичны applicaiton.properties, за исключением формата, в котором вы пишете свои конфигурации. Я не уверен, есть ли эквивалент eureka-client.properties для yaml. Сначала запустите *.properties, а затем проверьте, понимает ли он yaml.

person centerworker    schedule 23.09.2017

У меня работают eureka-client.properties и eureka-service.properties в пути к классам. Я поместил эти файлы в каталог ресурсов моего веб-приложения. Эти файлы используются Eureka Client и Eureka Server.

application.yml используется реализацией Spring Cloud и представляет собой отдельный способ работы с реестром Eureka или любым другим реестром в этом отношении.

vipAddress — это имя, под которым ваше приложение будет зарегистрировано в Eureka.

Служба, которая регистрируется, будет иметь eureka.registration.enabled=true в eureka-client.properties. Похоже, что все свойства регистрации службы берутся только из этого файла. Служба, которая выполняет только обнаружение, будет иметь eureka.registration.enabled=false в своих свойствах eureka-client.properties.

По следующей ссылке приведен пример приложения, которое выполняет регистрацию и обнаружение:
https://github.com/Netflix/eureka/tree/master/eureka-examples

Обратите внимание, что здесь задействованы три компонента
1) Сервер Eureka
2) Служба (использует клиент Eureka) — выполняет регистрацию
3) клиент (использует клиент Eureka) — выполняет обнаружение< бр/>

В приведенном выше примере говорится о 2 и 3. Чтобы запустить службу Eureka, вы можете перейти по следующей ссылке, которая попросит вас создать файл войны Eureka Server и поместить его на сервер Tomcat.
https://github.com/Netflix/eureka/wiki/Building-Eureka-Client-and-Server

Чтобы выполнить тестирование, вы можете напрямую запросить сервер Eureka, используя его интерфейс REST с помощью http-клиента, такого как curl или браузер.
https://github.com/Netflix/eureka/wiki/Eureka-REST-операции

person Anurag    schedule 14.06.2019