负载平衡器没有可供客户端使用的服务器。怎么解决?

时间:2018-11-06 11:31:52

标签: configuration microservices spring-cloud netflix-eureka netflix-zuul

我注意到很多人问了同样的问题,但是我尝试了他们的方法,但是我的问题仍然存在。

我使用spring-boot + eureka + zuul,

spring.cloud.version:2.0.2。发布

这是Eureka服务器:

@SpringBootApplication
@EnableEurekaServer
@Slf4j
public class EurekaServerApplication {

    public static void main(String[] args) {
        SpringApplication.run(EurekaServerApplication.class, args);
        log.info("-- EurekaServerApplication started --");
    }
}

和适用于eureka服务器的application.yml:

server:
port: 8888

eureka:
  client:
    registerWithEureka: false
    fetchRegistry: false
    healthcheck:
      enabled: true
    service-url:
      defaultZone: http://localhost:8888/eureka

然后是Zuul服务器:

@SpringBootApplication
@EnableZuulProxy
@EnableEurekaClient
@Slf4j
public class ZuulServerApplication{

    public static void main(String[] args) {
        SpringApplication.run(ZuulServerApplication.class, args);
        log.info("-- ZuulServerApplication started --");
    }
}

和Zuul的application.yml

server:
  port: 7777

eureka:
  instance:
    appname: zuul-server
  client:
    serviceUrl:
    defaultZone: http://localhost:8888/eureka

zuul:
  ignoredServices: '*'
  routes:
    file-management:
      path: /file-management/**
      serviceId: file-management

和微服务文件管理:

@SpringBootApplication
@EnableEurekaClient
@EnableSwagger2
@Slf4j
public class FileManagementApplication {
    public static void main(String[] args) {
        SpringApplication.run(FileManagementApplication.class, args);
        log.info("-- FileManagement started --");
    }
}

application.yml

... some other configs
server:
  port: 8081
eureka:
  instance:
    appname: file-management
  client:
    serviceUrl:
    defaultZone: http://localhost:8888/eureka

我有几天这个问题了,任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:1)

研究之后,我解决了我的问题。我将解决方案放在这里,希望这可以帮助人们解决相同的问题。

我如何解决:

    在文件管理application.yml中添加了
  1. 春天:   应用:     名称:文件管理

  2. 在zuul application.yml中添加了
  3. 尤里卡:   客户:     fetchRegistry:true

然后它起作用。

原因是很多折腾,示例基于某些旧版本,所以我猜在新版本中它们做了一些调整。

因此,对于像我一样遇到同样问题的人们,请确保您阅读的文档或示例与您使用的版本相匹配。希望这个答案可以对某人有所帮助。

答案 1 :(得分:0)

此配置没有任何问题:

 server:
    port: 8881

 eureka:
   client:
     eureka-connection-idle-timeout-seconds: 60
     serviceUrl:
       defaultZone: http://localhost:8882/eureka/
     healthcheck:
       enabled: true

您可以查看我的仓库here

您还可以尝试注释应用名称:文件管理和对齐defaultZone。如果格式不正确,有时yml属性将无法加载。