eurekaクライアント起動エラー(eurekaから登録サービスを取得する接続エラー):java.net.ConnectException: Connection refused: connect


2019-06-04 18:37:36.525  INFO 7128 --- [           main] com.netflix.discovery.DiscoveryClient    : Application version is -1: true
2019-06-04 18:37:36.525  INFO 7128 --- [           main] com.netflix.discovery.DiscoveryClient    : Getting all instance registry info from the eureka server
2019-06-04 18:37:38.729 ERROR 7128 --- [           main] c.n.d.s.t.d.RedirectingEurekaHttpClient  : Request execution error. endpoint=DefaultEndpoint{ serviceUrl='http://localhost:8761/eureka/}

com.sun.jersey.api.client.ClientHandlerException: java.net.ConnectException: Connection refused: connect
	at com.sun.jersey.client.apache4.ApacheHttpClient4Handler.handle(ApacheHttpClient4Handler.java:187) ~[jersey-apache-client4-1.19.1.jar:1.19.1]
	at com.sun.jersey.api.client.filter.GZIPContentEncodingFilter.handle(GZIPContentEncodingFilter.java:123) ~[jersey-client-1.19.1.jar:1.19.1]
	at com.netflix.discovery.EurekaIdentityHeaderFilter.handle(EurekaIdentityHeaderFilter.java:27) ~[eureka-client-1.9.8.jar:1.9.8]
	at com.sun.jersey.api.client.Client.handle(Client.java:652) ~[jersey-client-1.19.1.jar:1.19.1]

簡単に紹介しますが、私はローカルでeurekaサービス、config-serverサービス、クライアントclientサービスをかけました.
クライアントサービスをconfig-serverサービスで構成します.bootstrap.yml:
spring:
  cloud:
    config:
      uri: http://localhost:8551/ #          
      name: spring-config  #   {application}  
      profile: master  #   {profile}  
      label: master  #   git   ,              ,      

これにより、サービスが正常に起動し、プロファイルにアクセスできます.
クライアントサービスにeurekaでconfig-serverを発見させたいのですが、コンフィギュレーションファイルでconfig-serverのurlをハードコーディングするのではなく、コンフィギュレーションファイルを変更しました.
spring:
  cloud:
    config:
      discovery:
        enabled: true
        serviceId: config-server-my
#      uri: http://localhost:8551/ #          
      name: spring-config  #   {application}  
      profile: master  #   {profile}  
      label: master  #   git   ,              ,      

discoveryでeurekaに行ってサービスを発見し、起動するとエラーを報告します.エラー情報は上のものです.エラーは、Getting all instance registry info from the eureka serverではeurekaサービスに接続されず、eurekaのデフォルトアドレス({serviceUrl='http://localhost:8761/eureka/})探しに行く.しかし、私はeurekaのアドレスをアプリケーションに配置しました.ymlでは、次のようになります.
eureka:
  client:
    serviceUrl:
      defaultZone: http://127.0.0.1:7001/eureka/
  instance:
    instanceId: client-01
    preferIpAddress: true

私はネットで原因を調べて、多くは配置に問題があると言って、アルパカの命名とかを含めて、しかしすべて役に立たない.
解決策:
なぜならymlとアプリケーションymlのロード順によるでしょう、プロジェクトが起動するときはbootstrapに追加します.yml、アプリケーションに追加します.yml.最初はuriを使用します.http://localhost:8551/#config-serverを構成します.この時点でeurekaは使用されませんので、正常に起動できます.しかしeurekaでサービスを発見するように変更すると、前のbootstrap.ymlにはeurekaの構成がないので、eurekaのアクセス経路が全然分からないので、エラーを報告し、eurekaにアクセスできません.
eurekaの構成をbootstrapに言及するだけですymlでは、すべて正常です.
eureka:
  client:
    serviceUrl:
      defaultZone: http://127.0.0.1:7001/eureka/
  instance:
    instanceId: client-01
    preferIpAddress: true

spring:
  cloud:
    config:
      discovery:
        enabled: true
        serviceId: config-server-my
#      uri: http://localhost:8551/ #          
      name: spring-config  #   {application}  
      profile: master  #   {profile}  
      label: master  #   git   ,              ,