同一应用程序中的配置服务器和尤里卡服务器:尝试连接到 localhost:8761
Config server and eureka server in same application: tries to connect to localhost:8761
我有一个 spring-boot 应用程序,用于在开发和测试环境中设置 spring cloud config server
和 eureka server
。
奇怪的是,应用程序总是尝试连接到 localhost:8761
,即使我将 eureka.client.registerWithEureka
设置为 false。
我怎样才能停用它?
错误:
ERROR 3144 --- [et_localhost-12] c.n.e.cluster.ReplicationTaskProcessor : Network level connection to peer localhost; retrying after delay
com.sun.jersey.api.client.ClientHandlerException: org.apache.http.conn.ConnectTimeoutException: Connect to localhost:8761 timed out
at com.sun.jersey.client.apache4.ApacheHttpClient4Handler.handle(ApacheHttpClient4Handler.java:187) ~[jersey-apache-client4-1.19.1.jar:1.19.1]
at com.netflix.eureka.cluster.DynamicGZIPContentEncodingFilter.handle(DynamicGZIPContentEncodingFilter.java:48) ~[eureka-core-1.4.10.jar:1.4.10]
at com.netflix.discovery.EurekaIdentityHeaderFilter.handle(EurekaIdentityHeaderFilter.java:27) ~[eureka-client-1.4.10.jar:1.4.10]
at com.sun.jersey.api.client.Client.handle(Client.java:652) ~[jersey-client-1.19.1.jar:1.19.1]
at com.sun.jersey.api.client.WebResource.handle(WebResource.java:682) ~[jersey-client-1.19.1.jar:1.19.1]
at com.sun.jersey.api.client.WebResource.access0(WebResource.java:74) ~[jersey-client-1.19.1.jar:1.19.1]
at com.sun.jersey.api.client.WebResource$Builder.post(WebResource.java:570) ~[jersey-client-1.19.1.jar:1.19.1]
at com.netflix.eureka.transport.JerseyReplicationClient.submitBatchUpdates(JerseyReplicationClient.java:116) ~[eureka-core-1.4.10.jar:1.4.10]
at com.netflix.eureka.cluster.ReplicationTaskProcessor.process(ReplicationTaskProcessor.java:71) ~[eureka-core-1.4.10.jar:1.4.10]
at com.netflix.eureka.util.batcher.TaskExecutors$BatchWorkerRunnable.run(TaskExecutors.java:187) [eureka-core-1.4.10.jar:1.4.10]
at java.lang.Thread.run(Thread.java:745) [na:1.8.0_92]
Caused by: org.apache.http.conn.ConnectTimeoutException: Connect to localhost:8761 timed out
我唯一的 class 是这样的:
@EnableEurekaServer
@EnableConfigServer
@SpringBootApplication
public class MyApplication {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
}
application.yml
:
server:
port: 8888
eureka:
client:
registerWithEureka: false
fetchRegistry: false
server:
waitTimeInMsWhenSyncEmpty: 0
renewal-percent-threshold: 0.49
security:
basic:
enabled: true
user:
password: mypassword
spring:
jmx:
default-domain: ${spring.application.name}
cloud:
config:
server:
git:
uri: https://example.com/myrepo.git
username: username
password: password
clone-on-start: true
search-paths: '{application},{application}/{profile}'
endpoints:
jmx:
domain: ${spring.application.name}
unique-names: true
在 bootstrap.yml
我只设置了应用程序名称。
版本:
spring-cloud-netflix-eureka: 1.1.6
,
spring-云配置服务器:1.1.3
您可以尝试像下面这样更改您的配置吗
eureka:
client:
registerWithEureka: false
fetchRegistry: false
service-url:
defaultZone: http://localhost:8888/eureka
您指定 server.port: 8888
。所以你的 eureka 在 8888 端口上是 运行。但是你没有为尤里卡指定任何服务-url。所以我认为你的 eureka 服务器正在尝试复制到 localhost:8761 因为它是默认的并且你没有为 eureka 指定 service-url 。
请为您的 Eureka 服务器使用 8761 端口,如下所示。
server:
port: 8761
eureka:
client:
registerWithEureka: false
fetchRegistry: false
这里我们配置一个应用程序端口——8761 是 Eureka 服务器的默认端口。我们告诉内置的 Eureka 客户端不要向“自身”注册,因为我们的应用程序应该充当服务器。
对我来说,以下是对我有用的属性。
eureka.client.registerWithEureka= false
eureka.client.fetchRegistry= false
eureka.server.maxThreadsForPeerReplication=0
适合我。禁用尤里卡服务器的默认端口时。
尽管有以下设置,eureka 似乎仍尝试连接到自身:
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
你有两个选项来解决这个问题 1-保留 eureka 的默认端口 2-将下面添加到你的 eureka 服务器 application.properties
eureka.server.maxThreadsForPeerReplication=0
我有一个 spring-boot 应用程序,用于在开发和测试环境中设置 spring cloud config server
和 eureka server
。
奇怪的是,应用程序总是尝试连接到 localhost:8761
,即使我将 eureka.client.registerWithEureka
设置为 false。
我怎样才能停用它?
错误:
ERROR 3144 --- [et_localhost-12] c.n.e.cluster.ReplicationTaskProcessor : Network level connection to peer localhost; retrying after delay
com.sun.jersey.api.client.ClientHandlerException: org.apache.http.conn.ConnectTimeoutException: Connect to localhost:8761 timed out
at com.sun.jersey.client.apache4.ApacheHttpClient4Handler.handle(ApacheHttpClient4Handler.java:187) ~[jersey-apache-client4-1.19.1.jar:1.19.1]
at com.netflix.eureka.cluster.DynamicGZIPContentEncodingFilter.handle(DynamicGZIPContentEncodingFilter.java:48) ~[eureka-core-1.4.10.jar:1.4.10]
at com.netflix.discovery.EurekaIdentityHeaderFilter.handle(EurekaIdentityHeaderFilter.java:27) ~[eureka-client-1.4.10.jar:1.4.10]
at com.sun.jersey.api.client.Client.handle(Client.java:652) ~[jersey-client-1.19.1.jar:1.19.1]
at com.sun.jersey.api.client.WebResource.handle(WebResource.java:682) ~[jersey-client-1.19.1.jar:1.19.1]
at com.sun.jersey.api.client.WebResource.access0(WebResource.java:74) ~[jersey-client-1.19.1.jar:1.19.1]
at com.sun.jersey.api.client.WebResource$Builder.post(WebResource.java:570) ~[jersey-client-1.19.1.jar:1.19.1]
at com.netflix.eureka.transport.JerseyReplicationClient.submitBatchUpdates(JerseyReplicationClient.java:116) ~[eureka-core-1.4.10.jar:1.4.10]
at com.netflix.eureka.cluster.ReplicationTaskProcessor.process(ReplicationTaskProcessor.java:71) ~[eureka-core-1.4.10.jar:1.4.10]
at com.netflix.eureka.util.batcher.TaskExecutors$BatchWorkerRunnable.run(TaskExecutors.java:187) [eureka-core-1.4.10.jar:1.4.10]
at java.lang.Thread.run(Thread.java:745) [na:1.8.0_92]
Caused by: org.apache.http.conn.ConnectTimeoutException: Connect to localhost:8761 timed out
我唯一的 class 是这样的:
@EnableEurekaServer
@EnableConfigServer
@SpringBootApplication
public class MyApplication {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
}
application.yml
:
server:
port: 8888
eureka:
client:
registerWithEureka: false
fetchRegistry: false
server:
waitTimeInMsWhenSyncEmpty: 0
renewal-percent-threshold: 0.49
security:
basic:
enabled: true
user:
password: mypassword
spring:
jmx:
default-domain: ${spring.application.name}
cloud:
config:
server:
git:
uri: https://example.com/myrepo.git
username: username
password: password
clone-on-start: true
search-paths: '{application},{application}/{profile}'
endpoints:
jmx:
domain: ${spring.application.name}
unique-names: true
在 bootstrap.yml
我只设置了应用程序名称。
版本:
spring-cloud-netflix-eureka: 1.1.6
,
spring-云配置服务器:1.1.3
您可以尝试像下面这样更改您的配置吗
eureka:
client:
registerWithEureka: false
fetchRegistry: false
service-url:
defaultZone: http://localhost:8888/eureka
您指定 server.port: 8888
。所以你的 eureka 在 8888 端口上是 运行。但是你没有为尤里卡指定任何服务-url。所以我认为你的 eureka 服务器正在尝试复制到 localhost:8761 因为它是默认的并且你没有为 eureka 指定 service-url 。
请为您的 Eureka 服务器使用 8761 端口,如下所示。
server:
port: 8761
eureka:
client:
registerWithEureka: false
fetchRegistry: false
这里我们配置一个应用程序端口——8761 是 Eureka 服务器的默认端口。我们告诉内置的 Eureka 客户端不要向“自身”注册,因为我们的应用程序应该充当服务器。
对我来说,以下是对我有用的属性。
eureka.client.registerWithEureka= false
eureka.client.fetchRegistry= false
eureka.server.maxThreadsForPeerReplication=0
适合我。禁用尤里卡服务器的默认端口时。
尽管有以下设置,eureka 似乎仍尝试连接到自身:
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
你有两个选项来解决这个问题 1-保留 eureka 的默认端口 2-将下面添加到你的 eureka 服务器 application.properties
eureka.server.maxThreadsForPeerReplication=0