Я пытаюсь запустить Eureka Server и Spring Boot Admin Server в одном приложении (в документе SBA говорится, что это возможно). Eureka работает так, как задумано, но приложение администратора по-прежнему не показывает никаких приложений.
Spring Boot версии 2.0.3, Spring Boot Admin версии 2.0.1
Эврика и сервер SBA
@SpringBootApplication
@EnableEurekaServer
@EnableDiscoveryClient
@EnableAdminServer
class KotlintestApplication
fun main(args: Array<String>) {
SpringApplication.run(KotlintestApplication::class.java, *args)
}
Сервер bootstrap.yml
spring:
application:
name: server
Сервер application.yml
spring:
boot:
admin:
context-path: /admin
eureka:
instance:
leaseRenewalIntervalInSeconds: 10
client:
registerWithEureka: false
fetchRegistry: false
serviceUrl:
defaultZone: http://localhost:8080/eureka
Клиент
@EnableDiscoveryClient
@SpringBootApplication
class KotlintestApplication
fun main(args: Array<String>) {
SpringApplication.run(KotlintestApplication::class.java, *args)
}
@Configuration
class SecurityPermitAllConfig : WebSecurityConfigurerAdapter() {
@Throws(Exception::class)
override fun configure(http: HttpSecurity) {
http.authorizeRequests().anyRequest().permitAll()
.and().csrf().disable()
}
}
Клиент bootstrap.yml
spring:
application:
name: client
server:
port: 0
Клиент application.yml
management:
endpoints:
web:
exposure:
include: "*"
endpoint:
health:
show-details: ALWAYS
eureka:
instance:
hostname: localhost
health-check-url-path: /actuator/health
status-page-url-path: /actuator/info
client:
serviceUrl:
defaultZone: http://127.0.0.1:8080/eureka/




Сам нашел ответ
Удалите fetchRegistry: false с сервера application.yaml.
Сервер должен получить реестр, чтобы увидеть клиентов ...
Кстати: вы должны установить instanceId, если хотите запускать несколько экземпляров со случайным портом на одном хосте. В противном случае SBA не может различаться между экземплярами.
eureka:
instance:
instanceId : client-${random.uuid}
@EnableDiscoveryClient на сервере SBA больше не требуется