当前位置: 首页 > 知识库问答 >
问题:

DiscoveryClient看不到来自Eureka的服务

喻高寒
2023-03-14

当我问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>

有人知道原因是什么吗?

作为提示,WEBFRONT应用程序是一个带有eureka插件的nodejs应用程序。路由器和订单都是引导。显然前端的记录是正确的,尤里卡认为它是上升的。我逐行比较了订单和前端的eureka XML输出,并没有看到真正的任何关键区别...

共有1个答案

孔扬
2023-03-14

我发现的一件事是前端服务的vipaddress字段,它是true,但我认为在您的情况下,它应该是frontendfrontend。因为在底层,EurekadiscoveryClient使用了com.netflix.discovery.Eurekaclient getInstancesByVipAddress(String,bool)函数(来自spring-cloud-netflix-eureka-client项目),该函数通过其VipAddress查询可用服务。

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

 类似资料:
  • 因此,once more-os不会看到在ldap中配置的其他组,但在ldap中输入的主组是OK的。 在nsswitch.conf中: 在sssd.conf中:

  • 遵循spring指南构建了eureka服务器、spring cloud gateway和一个示例rest服务。 但是,网关无法使用eureka服务器的服务名称检索URL。网关和服务的注册似乎没有问题。当提供实际endpoint而不是服务ID时,它工作得很好。我无法理解为什么网关不从尤里卡解析服务id。我是否遗漏了任何配置? 错误消息: 尤里卡服务器 春云网关 Rest服务

  • 错误:不知道这样的主机 我在努力 并且做 bootstrap-spring.application.name=pluralsight-toll-service 应用道具 应用程序 如何使用名称从客户端调用服务

  • 我想把公司artifactory添加到Zeppelin spark解释器中,并尝试使用这份文档。 因此,我们的artifactory的URL看起来像 访问不限于特定的用户,工件可以从我的机器和运行Zepplin的机器下载(我用curl尝试了这一点)。 设置解释器“spark.spark”的属性时出错:找不到项目com.feedvisor.dataplatform:data-platform-sch

  • 我使用Spring创建微服务。我使用Eureka进行服务发现,使用Zuul进行路由。现在我想切换到Spring Cloud Gateway(因为它的非阻塞特性),但是我没有找到自动路由到每个Eureka服务的方法。 例如,如果一个服务'eureka-client'注册到了Eureka,那么Zuul本身就为这个服务提供了类似于localhost:8762/eureka-client的路径。使用Spr

  • 我试图构建自己的,它将使用Docker Swarm作为服务源。我已经让它与Spring Cloud Gateway和Spring Cloud Loadbalancer一起工作了。但是,当我试图通过设置来使用它对进行发现时,我得到了以下错误