web-dev-qa-db-ja.com

同じアプリケーション内の構成サーバーとeurekaサーバー:localhost:8761への接続を試みます

開発環境とテスト環境でspring cloud config servereureka serverをセットアップするために使用するSpring-Bootアプリケーションがあります。不思議なことに、localhost:8761をfalseに設定していても、アプリケーションは常にeureka.client.registerWithEurekaに接続しようとします。

どうすればこれを無効にできますか?

エラー:

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

私の唯一のクラスは次のようになります。

@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-cloud-config-server:1.1.3

4
meva

以下のように構成を変更してみてください

eureka:
  client:
    registerWithEureka: false
    fetchRegistry: false
    service-url:
      defaultZone: http://localhost:8888/eureka

server.port: 8888を指定します。つまり、eurekaは8888ポートで実行されています。しかし、eurekaのservice-urlを指定していません。したがって、eurekaサーバーはlocalhost:8761に複製しようとしていると思います。これは、デフォルトであり、eurekaにservice-urlを指定していないためです。

11
yongsung.yoon

以下のように、Eurekaサーバーに8761ポートを使用してください。

server:
  port: 8761
eureka:
  client:
    registerWithEureka: false
    fetchRegistry: false

ここでは、アプリケーションポートを構成しています。8761がEurekaサーバーのデフォルトポートです。アプリケーションはサーバーとして機能する必要があるため、組み込みのEurekaクライアントに「自分自身」に登録しないように指示しています。

4
Bibhuti

私にとって、私のために働いた以下のプロパティ。

eureka.client.registerWithEureka= false
eureka.client.fetchRegistry= false
eureka.server.maxThreadsForPeerReplication=0
1
Clover

私のために働きます。 eurekaサーバーのデフォルトポートを無効にする場合。

0