服务端
依赖
<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>de.codecentric</groupId><artifactId>spring-boot-admin-server</artifactId><version>2.2.1</version></dependency><dependency><groupId>de.codecentric</groupId><artifactId>spring-boot-admin-server-ui</artifactId><version>2.2.1</version></dependency>
</dependencies>
启动类配置
@SpringBootApplication
@EnableAdminServer
public class AdminServerApplication {public static void main(String[] args) {SpringApplication.run(AdminServerApplication.class,args);}
}
和其他的springboot应用配置类基本相同,只需要添加注解@EnableAdminServer即可
配置文件
server.port=8001
spring.application.name=admin-serverspring.boot.admin.ui.title=my monitor center
spring.boot.admin.ui.brand=Service Monitoring Center
配置项
spring.boot.admin.ui.title 表示html页面的标题内容
spring.boot.admin.ui.brand是springbootadmin页面顶部显示内容
该两项内容的说明截图如下:
客户端
依赖
<dependency><groupId>de.codecentric</groupId><artifactId>spring-boot-admin-starter-client</artifactId><version>2.2.1</version>
</dependency>
配置文件
spring:application:name: admin-clientboot:admin:client:url: http://127.0.0.1:8001instance:prefer-ip: trueregister-once: falsemanagement:endpoints:web:exposure:include: '*'endpoint:health:show-details: always
spring.boot.admin.client.url表示admin服务端的地址和端口
这里开发所有的暴露端口即可,如果需要按需暴露端口可以自行配置
dashboard端操作
可以在dashboard的主页面看到相关的应用注册信息,包括注册的应用和实例个数
切换到应用墙可以进入到对应实例中,查看相关的监控信息
以admin-client应用实例为例查看
其中列举了开发的所有端口信息内容,其中有关于应用的日志级别、jvm、spring的ioc相关信息
原理剖析
在上一章SpringMvc之映射器HandlerMapping-CSDN博客中有讲到关于自定义端点的原理,其中依赖springboot-actuator中的WebMvcEndpointHandlerMapping的实现具体的原理可以翻看一下上一章的源码分析
在springboot-admin的client端引入的依赖如下:
查看该项目的底层依赖:
可以发现有依赖springboot-actuator,可以通过暴露端点对外提供服务
端点调试发现有如下Endpoint配置类暴露:
org.springframework.boot.actuate.beans.BeansEndpoint
org.springframework.boot.actuate.cache.CachesEndpoint
org.springframework.boot.actuate.health.HealthEndpoint
org.springframework.boot.actuate.info.InfoEndpoint
org.springframework.boot.actuate.autoconfigure.condition.ConditionsReportEndpoint
org.springframework.boot.actuate.context.properties.ConfigurationPropertiesReportEndpoint
org.springframework.boot.actuate.env.EnvironmentEndpoint
org.springframework.boot.actuate.logging.LoggersEndpoint
org.springframework.boot.actuate.management.HeapDumpWebEndpoint
org.springframework.boot.actuate.management.ThreadDumpEndpoint
org.springframework.boot.actuate.metrics.MetricsEndpoint
org.springframework.boot.actuate.scheduling.ScheduledTasksEndpoint
org.springframework.boot.actuate.web.mappings.MappingsEndpoint
各endpoint配置类和自定义端点时使用基本相同
1 各配置类由ioc容器接管
2 各配置类标注注解@Endpoint
3 配置类方法被注解@ReadOperation标注 可以使用@Selector等注解标记请求参数
分别对应了dashboard上各暴露点功能,详细的各功能调试对应的源码可以自行调试