搭建SpringCloud Alibaba的过程这里不再赘述,本文假设以你现在已有一个以Nacos为注册中心的SpringCloud项目。
Spring Boot Admin Server
首先,你需要创建一个新的SpringBoot项目(可以用 start.spring.io),Spring Boot Admin Server可以作为servlet或webflux应用程序运行.
- 将Spring Boot Admin Server启动器添加到您的依赖项中:
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-server</artifactId>
<version>2.1.6</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
- 通过添加@EnableAdminServer到配置中来引入Spring Boot Admin Server 配置:
@EnableAdminServer
@SpringBootApplication
@EnableDiscoveryClient
public class SpringbootAdminApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootAdminApplication.class, args);
}
}
- 在
bootstrap.properties
中配置 Nacos server 的地址和应用名:
spring:
application:
name: springboot-admin
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
server:
port: 8000
说明:nacos配置必须是在 bootstrap.properties
,具体细节请查看Nacos文档。
至此,SpringBoot Admin Server已经配置完毕,启动该模块。
Spring Boot Admin Client
您可以使用任何Spring Cloud DiscoveryClient实现(Eureka、Consul、Nacos),这里以SpringCloud Alibaba Nacos为例。
- 将依赖添加进你的项目中:
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-client</artifactId>
<version>2.1.6</version>
</dependency>
- 通过添加@EnableDiscoveryClient到配置中来启用发现:
@SpringBootApplication
@EnableDiscoveryClient
public class GatewayApplication {
public static void main(String[] args) {
SpringApplication.run(GatewayApplication.class, args);
}
}
- 告诉Nacos客户端在哪里可以找到服务注册表:
bootstrap.yml
spring:
application:
name: gateway
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
profiles:
active: dev
server:
port: 9999
application.yml
management:
endpoints:
web:
exposure:
include: "*"
endpoint:
health:
show-details: ALWAYS
与Spring Boot 2一样,默认情况下,大多数端点都不通过http公开,我们公开了所有端点。对于生产,您应该仔细选择要公开的端点。
启动Client:
应用列表:
服务详情: