Server端
1.添加依赖
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-server</artifactId>
<version>2.1.4</version>
</dependency>
2.启动类添加@EnableAdminServer 注解,有注册中心的话需要把该服务添加到注册服务,以便发现其他服务
@EnableDiscoveryClient
@EnableAdminServer
@SpringBootApplication
public class AdminServerApplication {
public static void main(String[] args) {
SpringApplication.run(AdminServerApplication.class, args);
}
}
3.yml配置
spring:
application:
name: admin-server
cloud:
nacos:
discovery:
server-addr: localhost:8848
server:
port: 7777
Client端
1.添加依赖
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-client</artifactId>
<version>2.1.4</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
2.添加服务发现注解
@EnableDiscoveryClient
@SpringBootApplication
public class AdminClientApplication {
public static void main(String[] args) {
SpringApplication.run(AdminClientApplication.class, args);
}
}
3.在yml中配置以下参数,注意boot.admin.client.url 必须以http://开头,不然注册不上
spring:
application:
name: admin-client
boot:
admin:
client:
url: http://localhost:7777
instance:
prefer-ip: true # 使用IP注册
service-base-url: http://localhost:${server.port} # 防止当ip为内网时无法注册
# 我这里使用了nacos作为注册中心
cloud:
nacos:
discovery:
server-addr: localhost:8848
# 默认只公开了/health和/info端点,要想暴露所有端点只需设置成星号即可
management:
endpoints:
web:
exposure:
include: "*"
endpoint:
health:
show-details: ALWAYS
启动admin-server 和admin-client,访问localhost:7777
注册成功,但是会发现注册实例的信息各不相同,有ip,有localhost,有主机名。
所以需要在spring.boot.admin.client.instance中配置你所需要的。