Spring boot admin не получает реестр от eureka

Я использую весеннюю загрузку 2.0.X и хочу использовать admin-сервер, который автоматически обнаруживает другие сервисы, зарегистрированные на Eureka. Я следовал этому руководству до буквы, но ни одно из приложений не отображается в консоли администратора. Все заявки успешно зарегистрированы в Eureka.

Конфигурация админ-сервера:

server:
  port: 8762

spring:
  application:
    name: admin-server
  boot:
    admin:
      discovery:
        ignored-services: admin-server
#The admin server will automatically pick up all services at eureka and register them to itself.
eureka:
  instance:
    leaseRenewalIntervalInSeconds: 10
    health-check-url-path: /actuator/health
    metadata-map:
      startup: ${random.int}    #needed to trigger info and endpoint update after restart
  client:
    registryFetchIntervalSeconds: 5
    registerWithEureka: true #default true
    fetchRegistry: true #default true
    serviceUrl:
      defaultZone: http://localhost:8761/eureka/

management:
  endpoints:
    web:
      exposure:
        include: "*"
  endpoint:
    health:
      show-details: ALWAYS

Настройка сервера Eureka:

server:
  port: 8761
spring:
  application:
    name: discovery-server
eureka:
  instance:
    hostname: localhost
  client:
    registerWithEureka: false
    fetchRegistry: false
    serviceUrl:
      defaultZone: http://localhost:8761/eureka/

Некоторые мысли:

  • Мы перешли с весенней загрузки 1.5.x на 2.0.x, есть ли проблемы с безопасностью? Мы нигде не используем Spring-Security, но я читал, что некоторые конечные точки http больше не являются "достижимыми" или "активными" по умолчанию. Но я не вижу ошибок или предупреждений в журнале администратора или сервера eureka по этому поводу.
  • Ни одно из моих других приложений не имеет зависимости клиента начальной загрузки для весенней загрузки в их pom, потому что я не хочу, чтобы это была часть, отвечающая за регистрацию в консоли администратора, я хочу, чтобы это делалось динамически через Eureka
  • Все приложения, кроме сервера администратора и сервера eureka, используют config-сервер для получения их конфигурации. Это вызывает проблемы?

Application.yml, который все остальные приложения получают с сервера конфигурации, содержит следующее:

eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8761/eureka/
spring:
  boot:
    admin:
      url: http://localhost:8762
management: #exposing all endpoints is not safe for production, especially not if spring security gets involved
  endpoints:
    web:
      exposure:
        include: "*"
  endpoint:
    health:
      show-details: ALWAYS

1 ответ

У меня была такая же проблема при обновлении до SBA2.

Версии spring-boot, spring-cloud и SBA должны совпадать. Я использовал:

spring-boot:  2.0.7.RELEASE
spring-cloud: Finchley.SR2
SBA:          2.0.4

В моем случае хитрость заключалась в том, чтобы использовать spring-boot-admin-starter-server в качестве зависимости вместо простых зависимостей (spring-boot-admin-server, spring-boot-admin-server-ui, spring-boot-admin-server- облако), как это описано здесь: https://github.com/codecentric/spring-boot-admin/issues/776

Другие вопросы по тегам