Zuul负载均衡器没有可用于客户端的服务器

问题描述 投票:0回答:1

我一直在尝试使用Zuul和Eureka连接微服务,并且除了基于serviceId通过Zuul重新路由之外,大部分都成功了。我所拥有的是Spring Boot Zuul和Eureka应用程序,以及一个向Eureka注册的基于节点的微服务。 Zuul和微服务都在Eureka注册并显示在Eureka控制面板上,但是,当我尝试通过Zuul路由到微服务时,我得到以下异常:

com.netflix.zuul.exception.ZuulException: Forwarding error
Caused by: com.netflix.client.ClientException: Load balancer does not have available server for client: steam-auth-service

通过IP路由似乎工作,但我不需要。

Zuul application.properties:

server.port=8079
eureka.client.service-url.defaultZone=http://localhost:8088/eureka
zuul.routes.steam-auth-service.serviceId=steam-auth-service
zuul.routes.steam-auth-service.path=/steam/**

Node.JS Eureka客户注册:

// Discovery service info
const eurekaServer = {
  host: process.env.EUREKA_HOST,
  port: process.env.EUREKA_PORT,
  servicePath: '/eureka/apps/',
};

// Client to connect to Eureka discovery service
const eurekaClient = new Eureka({
  instance: {
    app: 'steam-auth-service',
    hostName: 'localhost',
    ipAddr: '127.0.0.1',
    port: {
      $: process.env.PORT,
      '@enabled': true,
    },
    vipAddress: 'steamauth.pubgtrade.com',
    dataCenterInfo: {
      '@class': 'com.netflix.appinfo.InstanceInfo$DefaultDataCenterInfo',
      name: 'MyOwn',
    },
  },
  eureka: eurekaServer,
});

正如我所说,Zuul应用程序和微服务都在Eureka注册并显示在控制面板中。

/ eureka / apps回复:

<applications>
<versions__delta>1</versions__delta>
<apps__hashcode>UP_2_</apps__hashcode>
<application>
<name>STEAM-AUTH-SERVICE</name>
<instance>
<hostName>localhost</hostName>
<app>STEAM-AUTH-SERVICE</app>
<ipAddr>127.0.0.1</ipAddr>
<status>UP</status>
<overriddenstatus>UNKNOWN</overriddenstatus>
<port enabled="true">3001</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>1514334766260</registrationTimestamp>
<lastRenewalTimestamp>1514334886300</lastRenewalTimestamp>
<evictionTimestamp>0</evictionTimestamp>
<serviceUpTimestamp>1514333831189</serviceUpTimestamp>
</leaseInfo>
<metadata class="java.util.Collections$EmptyMap"/>
<vipAddress>steamauth.pubgtrade.com</vipAddress>
<isCoordinatingDiscoveryServer>false</isCoordinatingDiscoveryServer>
<lastUpdatedTimestamp>1514334766260</lastUpdatedTimestamp>
<lastDirtyTimestamp>1514334766260</lastDirtyTimestamp>
<actionType>ADDED</actionType>
</instance>
</application>
<application>
<name>PUBG-API-GATEWAY</name>
<instance>
<instanceId>192.168.0.13:pubg-api-gateway:8079</instanceId>
<hostName>192.168.0.13</hostName>
<app>PUBG-API-GATEWAY</app>
<ipAddr>192.168.0.13</ipAddr>
<status>UP</status>
<overriddenstatus>UNKNOWN</overriddenstatus>
<port enabled="true">8079</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>1514334380413</registrationTimestamp>
<lastRenewalTimestamp>1514334890454</lastRenewalTimestamp>
<evictionTimestamp>0</evictionTimestamp>
<serviceUpTimestamp>1514334380413</serviceUpTimestamp>
</leaseInfo>
<metadata>
<management.port>8079</management.port>
<jmx.port>36983</jmx.port>
</metadata>
<homePageUrl>http://192.168.0.13:8079/</homePageUrl>
<statusPageUrl>http://192.168.0.13:8079/info</statusPageUrl>
<healthCheckUrl>http://192.168.0.13:8079/health</healthCheckUrl>
<vipAddress>pubg-api-gateway</vipAddress>
<secureVipAddress>pubg-api-gateway</secureVipAddress>
<isCoordinatingDiscoveryServer>false</isCoordinatingDiscoveryServer>
<lastUpdatedTimestamp>1514334380413</lastUpdatedTimestamp>
<lastDirtyTimestamp>1514334380381</lastDirtyTimestamp>
<actionType>ADDED</actionType>
</instance>
</application>
</applications>

任何帮助表示赞赏。谢谢!

netflix-eureka netflix-zuul spring-cloud-netflix
1个回答
-1
投票

为什么不使用application.yml而不是属性,这就是我在我的设置中的设置。你能直接进入这项服务吗?即不是通过ZUUL。

zuul:
  routes:
     path: /steam/**
     service-id: steam-auth-service
     strip-prefix: false
eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8088/eureka
© www.soinside.com 2019 - 2024. All rights reserved.