私のeureka-serverを私のローカルホストで実行しています。ローカルホストでサービスを実行している他のすべてを登録することができ、すべてが期待どおりに機能します。
次に、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/
ただし、サービスはlocalhostのeurekaサーバーに登録できません。 (最後に、ローカルホストで実行される同じサービス)
私はそれらの例外を受け取ります:
Java.net.ConnectException: Connection refused
com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known server
しかし、localhostで実行しているconfig-serviceから構成ファイルを取得できます。
Linuxマシン(クライアント)からローカルホスト(サーバー)へのサービスをeurekaに登録するために必要な構成はどれですか?
この注釈は私が使用します:
サービス:
@SpringBootApplication
@EnableDiscoveryClient
@EnableEurekaClient
public class MyServiceApplication {
ユーレカサーバー:
@SpringBootApplication
@EnableEurekaServer
public class EurekaServiceApplication {
PS:また、反対の方法は機能していません。 Linuxマシンにeurekaサーバーがあり、ローカルホストにサービスがあることを意味します。同じ例外を取得します。
Edit1:
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
変更後.properties
〜.yml
私のサービスの1つのファイルとdefaultZone
のスペルミスを修正し、すべて期待どおりに動作します。