Как зарегистрировать eureka-клиентов с eureka-server на разных хостах. Пружина-ботинок

Я запускаю свой эврика-сервер на своем локальном хосте. Я могу зарегистрировать все остальные на запущенных службах localhost, и все работает, как ожидалось.

Теперь я хочу зарегистрировать службу, работающую на Linux-машине. Мои свойства выглядят так:

spring.application.name=myService-service
spring.cloud.config.uri=http://myMachine.domain.lan:8888
server.port=8002
eureka.client.service-url.default-zone=http://myMachine.domain.lan:8761/eureka/

Но сервис не может зарегистрироваться на сервере eureka на локальном хосте. (В конце концов, это та же служба, которая работает на localhost)

Я получаю исключения:

java.net.ConnectException: Connection refused
com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known server

Но я могу получить свои файлы конфигурации из моей службы конфигурации, работающей на локальном хосте.

Какие конфигурации мне нужны для регистрации моей службы в eureka с Linux-машины (клиента) на localhost (сервер)?

Я использую следующие аннотации:

Услуга:

@SpringBootApplication
@EnableDiscoveryClient
@EnableEurekaClient
public class MyServiceApplication {

Эврика-Сервер:

@SpringBootApplication
@EnableEurekaServer
public class EurekaServiceApplication {

P.S. Не работает и обратный способ. Означает наличие сервера eureka на Linux-машине и сервисов на localhost. Получите те же исключения.

Редактировать1:

Свойства Eureka-Server:

spring.application.name=eureka-service
spring.cloud.config.uri=http://myMachine.domain.lan:8888
server.port=8761
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
eureka.instance.hostname=KBHWS242.myDomain.lan
eureka.instance.prefer-ip-address=true

Edit2:

testsrv - это Linux-машина. (172.25.82.108)

2016-08-31 09:17:01.912  INFO 27105 --- [           main] com.netflix.discovery.DiscoveryClient    : Starting heartbeat executor: renew interval is: 30
2016-08-31 09:17:01.919  INFO 27105 --- [           main] c.n.discovery.InstanceInfoReplicator     : InstanceInfoReplicator onDemand update allowed rate per min is 4
2016-08-31 09:17:01.923  INFO 27105 --- [           main] com.netflix.discovery.DiscoveryClient    : Discovery Client initialized at timestamp 1472627821923 with initial instances count: 0
2016-08-31 09:17:02.068  INFO 27105 --- [           main] c.n.e.EurekaDiscoveryClientConfiguration : Registering application reservation-service with eureka with status UP
2016-08-31 09:17:02.070  INFO 27105 --- [           main] com.netflix.discovery.DiscoveryClient    : Saw local status change event StatusChangeEvent [timestamp=1472627822070, current=UP, previous=STARTING]
2016-08-31 09:17:02.073  INFO 27105 --- [nfoReplicator-0] com.netflix.discovery.DiscoveryClient    : DiscoveryClient_RESERVATION-SERVICE/testsrv1.myDomain.lan:reservation-service:8002: registering service...
2016-08-31 09:17:02.173 ERROR 27105 --- [nfoReplicator-0] c.n.d.s.t.d.RedirectingEurekaHttpClient  : Request execution error

com.sun.jersey.api.client.ClientHandlerException: java.net.ConnectException: Connection refused

Caused by: java.net.ConnectException: Connection refused


2016-08-31 09:17:02.174  WARN 27105 --- [nfoReplicator-0] c.n.d.s.t.d.RetryableEurekaHttpClient    : Request execution failure
2016-08-31 09:17:02.175  WARN 27105 --- [nfoReplicator-0] com.netflix.discovery.DiscoveryClient    : DiscoveryClient_RESERVATION-SERVICE/testsrv1.myDomain.lan:reservation-service:8002 - registration failed Cannot execute request on any known server

com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known server


2016-08-31 09:17:02.175  WARN 27105 --- [nfoReplicator-0] c.n.discovery.InstanceInfoReplicator     : There was a problem with the instance info replicator

com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known server

2016-08-31 09:17:02.594  INFO 27105 --- [           main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8002 (http)
2016-08-31 09:17:02.596  INFO 27105 --- [           main] c.n.e.EurekaDiscoveryClientConfiguration : Updating port to 8002
2016-08-31 09:17:04.134  INFO 27105 --- [           main] o.h.h.i.QueryTranslatorFactoryInitiator  : HHH000397: Using ASTQueryTranslatorFactory
2016-08-31 09:17:04.659  INFO 27105 --- [           main] a.e.ReservationServiceApplication        : Started ReservationServiceApplication in 44.893 seconds (JVM running for 47.272)
2016-08-31 09:17:31.913  INFO 27105 --- [freshExecutor-0] com.netflix.discovery.DiscoveryClient    : Disable delta property : false
2016-08-31 09:17:31.914  INFO 27105 --- [freshExecutor-0] com.netflix.discovery.DiscoveryClient    : Single vip registry refresh property : null
2016-08-31 09:17:31.914  INFO 27105 --- [freshExecutor-0] com.netflix.discovery.DiscoveryClient    : Force full registry fetch : false
2016-08-31 09:17:31.914  INFO 27105 --- [freshExecutor-0] com.netflix.discovery.DiscoveryClient    : Application is null : false
2016-08-31 09:17:31.914  INFO 27105 --- [freshExecutor-0] com.netflix.discovery.DiscoveryClient    : Registered Applications size is zero : true
2016-08-31 09:17:31.914  INFO 27105 --- [freshExecutor-0] com.netflix.discovery.DiscoveryClient    : Application version is -1: true
2016-08-31 09:17:31.914  INFO 27105 --- [freshExecutor-0] com.netflix.discovery.DiscoveryClient    : Getting all instance registry info from the eureka server
2016-08-31 09:17:31.917 ERROR 27105 --- [freshExecutor-0] c.n.d.s.t.d.RedirectingEurekaHttpClient  : Request execution error

com.sun.jersey.api.client.ClientHandlerException: java.net.ConnectException: Connection refused

Caused by: java.net.ConnectException: Connection refused

2016-08-31 09:17:31.917  WARN 27105 --- [freshExecutor-0] c.n.d.s.t.d.RetryableEurekaHttpClient    : Request execution failure
2016-08-31 09:17:31.918 ERROR 27105 --- [freshExecutor-0] com.netflix.discovery.DiscoveryClient    : DiscoveryClient_RESERVATION-SERVICE/testsrv1.myDomain.lan:reservation-service:8002 - was unable to refresh its cache! status = Cannot execute request on any known server

com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known server

2016-08-31 09:17:31.924 ERROR 27105 --- [tbeatExecutor-0] c.n.d.s.t.d.RedirectingEurekaHttpClient  : Request execution error

com.sun.jersey.api.client.ClientHandlerException: java.net.ConnectException: Connection refused

Caused by: java.net.ConnectException: Connection refused

DiscoveryClient_RESERVATION-SERVICE/testsrv1.myDomain.lan:reservation-service:8002 - was unable to send heartbeat!

Edit3:

Зависимости:

Maven: org.springframework.cloud:spring-cloud-commons:1.1.1.RELEASE
Maven: org.springframework.cloud:spring-cloud-config-client:1.1.2.RELEASE
Maven: org.springframework.cloud:spring-cloud-context:1.1.1.RELEASE
Maven: org.springframework.cloud:spring-cloud-netflix-core:1.1.5.RELEASE
Maven: org.springframework.cloud:spring-cloud-netflix-eureka-client:1.1.5.RELEASE
Maven: org.springframework.cloud:spring-cloud-starter:1.1.1.RELEASE
Maven: org.springframework.cloud:spring-cloud-starter-archaius:1.1.5.RELEASE
Maven: org.springframework.cloud:spring-cloud-starter-config:1.1.3.RELEASE
Maven: org.springframework.cloud:spring-cloud-starter-eureka:1.1.5.RELEASE
Maven: org.springframework.cloud:spring-cloud-starter-ribbon:1.1.5.RELEASE


Maven: org.springframework.cloud:spring-cloud-netflix-eureka-server:1.1.5.RELEASE

person Patrick    schedule 31.08.2016    source источник
comment
Разве URL-адрес eureka не должен заканчиваться на / discovery / eureka?   -  person freakman    schedule 31.08.2016
comment
@freakman в большинстве сообщений, которые я читал, было без / discovery, но с использованием / discovery тот же результат. Есть другие предложения?   -  person Patrick    schedule 31.08.2016
comment
Вы действительно привязываете сервер eurake к правильному IP-адресу? Может быть, он привязан только к localhost, а не ко всем IP-адресам. Можете ли вы получить доступ к этому URL-адресу с любого компьютера, кроме вашего локального ...   -  person M. Deinum    schedule 31.08.2016
comment
@ M.Deinum Я могу получить конфигурацию моего сервера конфигурации с linux на localhost. Так что это работает. Я также могу позвонить по http на http://172.25.82.108:8761/ и получить панель управления eureka. И еще я думаю о том, что для localhost есть просто серверная конфигурация. Но это как раз та проблема, которая у меня есть. Добавлены мои свойства сервера.   -  person Patrick    schedule 31.08.2016
comment
config и eureka - это две отдельные службы, поэтому тот факт, что вы можете получить доступ к одной, не означает, что вы можете получить доступ к другой. Вы пробовали использовать IP вместо имени хоста вашего компьютера для подключения? Также где вы попробуете http://172.25.82.108:8761/, если это с той же машины, что и у нее есть IP-адрес, который вы ничего не тестируете. для eureka.instance.hostname попробуйте фактическое имя хоста (вместо IP-адреса).   -  person M. Deinum    schedule 31.08.2016
comment
@ M.Deinum Пытался использовать IP, но результат тот же. Я сделал wget с Linux-машины на панели управления eureka, работающей на моем локальном хосте. Это было нормально. Я также пробовал с именем хоста для eureka.instance.hostname, но получил тот же результат. Добавлено больше трассировки исключения.   -  person Patrick    schedule 31.08.2016
comment
eureka.instance.preferIpAddress: true eureka.instance.ip-address: 172.25.82.108 eureka.client.serviceUrl.defaultZone: http://{eureka server ip}:{eureka server port}/eureka/ Может, попробуете?   -  person nurgasemetey    schedule 31.08.2016
comment
@nurgasemetey на клиенте или сервере?   -  person Patrick    schedule 31.08.2016
comment
@ Патрик на клиенте   -  person nurgasemetey    schedule 31.08.2016
comment
@Patrick, вы также должны указать ip и порт сервера eureka. Я намеренно оставил их без назначения.   -  person nurgasemetey    schedule 31.08.2016
comment
@nurgasemetey извините, не работает. У вас есть другие предложения. Или можно дать полный файл конфигурации для сервера и клиента?   -  person Patrick    schedule 31.08.2016
comment
А какую версию spring cloud вы используете?   -  person nurgasemetey    schedule 31.08.2016
comment
@nurgasemetey обновленный вопрос   -  person Patrick    schedule 31.08.2016
comment
Думал, что есть конфликт версий. Я предлагаю вам спросить у gitter.im/spring-cloud/spring-cloud или открытый вопрос в github.   -  person nurgasemetey    schedule 31.08.2016


Ответы (1)


После изменения файла .properties на .yml одного из моих сервисов и исправления орфографических ошибок в defaultZone все работает, как ожидалось.

person Patrick    schedule 05.09.2016