Я пытаюсь зарегистрировать свою службу 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
Итак, мои вопросы:
Что я делаю неправильно, устанавливая свойства?
Я вижу во многих примерах, что у них есть файл
application.yml
илиmanifest.yml
. Для чего нужен файл .yaml в конфигурации Eureka? Это альтернатива файлам свойств?
edit: я нашел этот ответ объясняет файлы yaml. Application.yml используется Spring boot, а Manifest.yml — CLI облачного литейного производства.
- Каким должен быть eureka.vipAddress в моей локальной среде и в Pivotal?
** редактировать: методом проб и ошибок я обнаружил, что на локальном компьютере для этого установлено значение http://localhost:yourport. а для PCF это должно быть имя приложения. Ни localhost
, ни service-name
не соответствуют физическому сетевому интерфейсу. Ну что ж, наконец-то я узнал, что такое виртуальный айпи**
Дайте мне знать, если потребуется дополнительная информация. Заранее благодарю за любую помощь.