Java 如何在不同主机上向 eureka-server 注册 eureka-clients。弹簧靴

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/39242635/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-11 20:59:16  来源:igfitidea点击:

How to register eureka-clients with eureka-server on different hosts. Spring-boot

javaspringspring-bootnetflix-eureka

提问by Patrick

I'm running my eureka-server on my localhost. I'm able to register all my other on localhost running services and everthing works like expected.

我在我的本地主机上运行我的尤里卡服务器。我能够在本地主机上注册我所有的其他运行服务,一切都按预期工作。

Now I want to register a service which is running on a linux machine. My properties looks like that:

现在我想注册一个在 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/

But the service is not able to register on eureka server on localhost. (At the end its the same service which runs on localhost)

但是该服务无法在本地主机上的尤里卡服务器上注册。(最后它是在本地主机上运行的相同服务)

I get those exceptions:

我得到这些例外:

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

But I'm able to get my configuration files from my config-service running on localhost.

但是我可以从在本地主机上运行的配置服务中获取我的配置文件。

Which configurations do I need to register my service to eureka from linux machine(client) to localhost(server)?

我需要哪些配置才能将我的服务从 linux 机器(客户端)注册到 eureka 到本地主机(服务器)?

This annotations do I use:

我使用这个注释:

Service:

服务:

@SpringBootApplication
@EnableDiscoveryClient
@EnableEurekaClient
public class MyServiceApplication {

Eureka-Server:

尤里卡服务器:

@SpringBootApplication
@EnableEurekaServer
public class EurekaServiceApplication {

P.S.:Also the opposit way is not working. Means having eureka server on linux machine and the services on localhost. Get the same exceptions.

PS:相反的方式也不起作用。意味着在 linux 机器上有 eureka 服务器,在 localhost 上有服务。得到相同的例外。

Edit1:

编辑1:

Eureka-Server properties:

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:

编辑2:

testsrv is the linux machine. (172.25.82.108)

testrv 是 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:

编辑3:

Dependencies:

依赖项:

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

采纳答案by Patrick

After changing .propertiesto .ymlfile of one of my service and corrected misspelling of defaultZoneeverything works like expected.

更改.properties.yml我的其中一项服务的文件并更正了defaultZone所有内容的拼写错误后,按预期工作。