同一应用程序中的配置服务器和eureka服务器:尝试连接到localhost:8761

mev*_*eva 4 spring-boot spring-cloud-netflix spring-cloud-config

我有一个spring-boot应用程序,我用它来设置spring cloud config servereureka 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.access$200(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
Run Code Online (Sandbox Code Playgroud)

我唯一的课程看起来像这样:

@EnableEurekaServer
@EnableConfigServer
@SpringBootApplication
public class MyApplication {
  public static void main(String[] args) {
    SpringApplication.run(MyApplication.class, args);
  }
}
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

bootstrap.yml我只有应用程序名称集.

版本:

spring-cloud-netflix-eureka : 1.1.6, spring-cloud-config-server:1.1.3

yon*_*oon 14

您可以尝试更改您的配置,如下所示

eureka:
  client:
    registerWithEureka: false
    fetchRegistry: false
    service-url:
      defaultZone: http://localhost:8888/eureka
Run Code Online (Sandbox Code Playgroud)

你指定server.port: 8888.所以你的eureka运行在8888端口上.但是您没有为eureka指定任何se​​rvice-url.所以我认为您的eureka服务器正在尝试复制到localhost:8761,因为它是默认的,并且您没有为eureka指定service-url.


小智 5

请为您的 Eureka 服务器使用 8761 端口,如下所示。

server:
  port: 8761
eureka:
  client:
    registerWithEureka: false
    fetchRegistry: false
Run Code Online (Sandbox Code Playgroud)

这里我们配置了一个应用程序端口——8761 是 Eureka 服务器的默认端口。我们告诉内置的 Eureka 客户端不要注册“自身”,因为我们的应用程序应该充当服务器。


Clo*_*ver 5

对我来说,以下属性对我有用。

eureka.client.registerWithEureka= false
eureka.client.fetchRegistry= false
eureka.server.maxThreadsForPeerReplication=0
Run Code Online (Sandbox Code Playgroud)