Балансировщик нагрузки не имеет доступного сервера для клиента. Как решить? - PullRequest
0 голосов
/ 06 ноября 2018

Я заметил, что многие люди задавали один и тот же вопрос, но я попробовал их, но моя проблема все еще там.

использую spring-boot + eureka + zuul,

spring.cloud.version: 2.0.2.RELEASE

Вот сервер Eureka:

@SpringBootApplication
@EnableEurekaServer
@Slf4j
public class EurekaServerApplication {

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

и application.yml для сервера eureka:

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 --");
    }
}

и application.yml для Zuul

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 голосов
/ 08 ноября 2018

После того, как я провел исследование, я решил свою проблему. Я поставил здесь свое решение и надеюсь, что это поможет людям решить ту же проблему.

Как я решил:

  1. в приложении для управления файлами добавлено:

    весна: приложение: имя: управление файлами

  2. в приложении zuul.yml добавлено:

    эврика: клиент: fetchRegistry: true

Тогда это работает.

Причина в том, что много итоговых сумм, и примеры основаны на какой-то старой версии, поэтому я думаю, что в более новой версии они кое-что изменили.

Чтобы люди сталкивались с той же проблемой, что и я, убедитесь, что прочитанные вами документы или примеры соответствуют используемой вами версии. И надеюсь, что этот ответ кому-нибудь поможет.

0 голосов
/ 06 ноября 2018

У меня не было проблем с этой конфигурацией:

 server:
    port: 8881

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

Вы можете проверить мой репо здесь .

Также не могли бы вы прокомментировать имя приложения: управление файлами и выравнивание defaultZone. Иногда свойства yml не загружаются, если нет правильного форматирования.

...