代码之家  ›  专栏  ›  技术社区  ›  Tomasz

DiscoveryClient未看到来自Eureka的服务

  •  0
  • Tomasz  · 技术社区  · 7 年前

    当我问eureka它知道的服务(localhost:8071/eureka/apps/)时,它说有3个:

    <applications>
      <versions__delta>1</versions__delta>
      <apps__hashcode>UP_3_</apps__hashcode>
      <application>
        <name>ROUTER</name>
        <instance>
          <instanceId>localhost:router:8765</instanceId>
          <hostName>localhost</hostName>
          <app>ROUTER</app>
          <ipAddr>10.0.75.1</ipAddr>
          <status>UP</status>
          <overriddenstatus>UNKNOWN</overriddenstatus>
          <port enabled="true">8765</port>
          <securePort enabled="false">443</securePort>
          <countryId>1</countryId>
          <dataCenterInfo class="com.netflix.appinfo.InstanceInfo$DefaultDataCenterInfo">
            <name>MyOwn</name>
          </dataCenterInfo>
          <leaseInfo>
            <renewalIntervalInSecs>30</renewalIntervalInSecs>
            <durationInSecs>90</durationInSecs>
            <registrationTimestamp>1502197927458</registrationTimestamp>
            <lastRenewalTimestamp>1502198527594</lastRenewalTimestamp>
            <evictionTimestamp>0</evictionTimestamp>
            <serviceUpTimestamp>1502197927458</serviceUpTimestamp>
          </leaseInfo>
          <metadata class="java.util.Collections$EmptyMap"/>
          <homePageUrl>http://localhost:8765/</homePageUrl>
          <statusPageUrl>http://localhost:8765/info</statusPageUrl>
          <healthCheckUrl>http://localhost:8765/health</healthCheckUrl>
          <vipAddress>router</vipAddress>
          <secureVipAddress>router</secureVipAddress>
          <isCoordinatingDiscoveryServer>false</isCoordinatingDiscoveryServer>
          <lastUpdatedTimestamp>1502197927458</lastUpdatedTimestamp>
          <lastDirtyTimestamp>1502197825173</lastDirtyTimestamp>
          <actionType>ADDED</actionType>
        </instance>
      </application>
      <application>
        <name>ORDERS</name>
        <instance>
          <instanceId>localhost:ORDERS:8081</instanceId>
          <hostName>localhost</hostName>
          <app>ORDERS</app>
          <ipAddr>10.0.75.1</ipAddr>
          <status>UP</status>
          <overriddenstatus>UNKNOWN</overriddenstatus>
          <port enabled="true">8081</port>
          <securePort enabled="false">443</securePort>
          <countryId>1</countryId>
          <dataCenterInfo class="com.netflix.appinfo.InstanceInfo$DefaultDataCenterInfo">
            <name>MyOwn</name>
          </dataCenterInfo>
          <leaseInfo>
            <renewalIntervalInSecs>30</renewalIntervalInSecs>
            <durationInSecs>90</durationInSecs>
            <registrationTimestamp>1502198168983</registrationTimestamp>
            <lastRenewalTimestamp>1502198528945</lastRenewalTimestamp>
            <evictionTimestamp>0</evictionTimestamp>
            <serviceUpTimestamp>1502198088982</serviceUpTimestamp>
          </leaseInfo>
          <metadata class="java.util.Collections$EmptyMap"/>
          <homePageUrl>http://localhost:8081/</homePageUrl>
          <statusPageUrl>http://localhost:8081/info</statusPageUrl>
          <healthCheckUrl>http://localhost:8081/health</healthCheckUrl>
          <vipAddress>ORDERS</vipAddress>
          <secureVipAddress>ORDERS</secureVipAddress>
          <isCoordinatingDiscoveryServer>false</isCoordinatingDiscoveryServer>
          <lastUpdatedTimestamp>1502198168983</lastUpdatedTimestamp>
          <lastDirtyTimestamp>1502198168956</lastDirtyTimestamp>
          <actionType>ADDED</actionType>
        </instance>
      </application>
      <application>
        <name>FRONTEND</name>
        <instance>
          <instanceId>32e1ed7e75ba:8080</instanceId>
          <hostName>32e1ed7e75ba</hostName>
          <app>FRONTEND</app>
          <ipAddr>172.17.0.3</ipAddr>
          <status>UP</status>
          <overriddenstatus>UNKNOWN</overriddenstatus>
          <port enabled="true">8080</port>
          <securePort enabled="false">7002</securePort>
          <countryId>1</countryId>
          <dataCenterInfo class="com.netflix.appinfo.InstanceInfo$DefaultDataCenterInfo">
            <name>MyOwn</name>
          </dataCenterInfo>
          <leaseInfo>
            <renewalIntervalInSecs>30</renewalIntervalInSecs>
            <durationInSecs>90</durationInSecs>
            <registrationTimestamp>1502197928887</registrationTimestamp>
            <lastRenewalTimestamp>1502198529372</lastRenewalTimestamp>
            <evictionTimestamp>0</evictionTimestamp>
            <serviceUpTimestamp>1502197928887</serviceUpTimestamp>
          </leaseInfo>
          <metadata class="java.util.Collections$EmptyMap"/>
          <homePageUrl>http://32e1ed7e75ba:8080</homePageUrl>
          <statusPageUrl>http://32e1ed7e75ba:8080/info</statusPageUrl>
          <healthCheckUrl>http://32e1ed7e75ba:8080/health</healthCheckUrl>
          <vipAddress>true</vipAddress>
          <isCoordinatingDiscoveryServer>false</isCoordinatingDiscoveryServer>
          <lastUpdatedTimestamp>1502197928887</lastUpdatedTimestamp>
          <lastDirtyTimestamp>1502197928886</lastDirtyTimestamp>
          <actionType>ADDED</actionType>
        </instance>
      </application>
    </applications>
    

    但是我问我的路由器,它知道哪些(使用来自的ServiceInstanceRestController) https://spring.io/guides/gs/service-registration-and-discovery/

    有人知道原因是什么吗?

    作为提示,WEBFRONT应用程序是一个带有eureka插件的nodejs应用程序。路由器和订单都是靴子。 显然,前端注册正确,尤里卡认为它是向上的。我对订单和前端的eureka XML输出进行了逐行比较,没有发现任何关键差异。。。

    1 回复  |  直到 7 年前
        1
  •  1
  •   mgyongyosi    7 年前

    我发现前端服务 vipAddress 字段,即 true FRONTEND frontend 就你而言。因为在引擎盖下面 EurekaDiscoveryClient 使用 com.netflix.discovery.EurekaClient getInstancesByVipAddress(String,bool) source in the spring-cloud-netflix-eureka-client project )由其查询可用服务 vipAddress女士

    更改后,您应该在路由器服务的响应中看到该服务 /service-instances/frontend