Eureka Server 和 Spring Boot Admin 在一个应用程序中
Eureka Server and Spring Boot Admin in one Application
我尝试在一个应用程序中 运行 Eureka Server 和 Spring Boot Admin Server(SBA Docu 说这是可能的)。 Eureka 正在按预期工作,但管理应用程序仍显示零应用程序。
Spring 引导版本 2.0.3,
Spring 引导管理版本 2.0.1
Eureka 和 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/
自己找到答案
从服务器 application.yaml 中删除 fetchRegistry: false
。
服务器必须获取注册表才能看到客户端...
顺便说一句:如果您想 运行 在同一主机上使用随机端口的多个实例,您应该设置一个 instanceId。否则实例之间的 SBA 不能不同。
eureka:
instance:
instanceId : client-${random.uuid}
我尝试在一个应用程序中 运行 Eureka Server 和 Spring Boot Admin Server(SBA Docu 说这是可能的)。 Eureka 正在按预期工作,但管理应用程序仍显示零应用程序。
Spring 引导版本 2.0.3, Spring 引导管理版本 2.0.1
Eureka 和 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/
自己找到答案
从服务器 application.yaml 中删除 fetchRegistry: false
。
服务器必须获取注册表才能看到客户端...
顺便说一句:如果您想 运行 在同一主机上使用随机端口的多个实例,您应该设置一个 instanceId。否则实例之间的 SBA 不能不同。
eureka:
instance:
instanceId : client-${random.uuid}