開発環境とテスト環境でspring cloud config server
とeureka 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
以下のように構成を変更してみてください
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を指定していないためです。
以下のように、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サーバーのデフォルトポートを無効にする場合。