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