Spring-boot-admin功能说明
1.      准备
1.1  介绍
在Spring Boot Actuator的基础上提供简洁的可视化WEB UI,是⽤来管理 Spring Boot 应⽤程序的⼀个简单的界⾯,提供如下功能:显⽰ name/id 和版本号
显⽰在线状态
Logging⽇志级别管理
JMX beans管理
Threads会话和线程管理
Trace应⽤请求跟踪
应⽤运⾏参数信息,如:
系统属性
Java 环境变量属性
内存信息
Spring 环境属性
1.2组成部分
Spring-boot-admin由服务器端和客户端组成
服务器端配置(gradle⼯程):
compile("de.codecentric:spring-boot-admin-server-ui:1.4.1")
application.properties:server.port= 8090  (⾃定义)
spring.application.name=Spring Boot Admin Web (⾃定义)
spring.jackson.serialization.indent_output=true
endpoints.health.sensitive=false
info.version=1.0.0(⾃定义)
启动spring-boot项⽬时需要加上@SpringBootApplication和 @EnableAdminServer 标签
客户端配置(gradle⼯程):
application.properties:
spring.application.name=spring-boot-admin-client (⾃定义)
server.port=8080(⾃定义)
info.version=1.0.0 (⾃定义)
spring-boot-admin-server:服务器后端处理逻辑代码
spring-boot-admin-server-ui:前端界⾯展⽰
spring-boot-admin-starter-client:客户端,需要添加到spring-boot项⽬中
2.1  客户端注册
客户端启动后会实例化RegistrationApplicationListener,listener默认会每隔10s到服务端去注册下,如果已经存在,会refresh
具体代码如下:
在跟服务器注册之前,客户端会先实例化Application信息,获取相应的信息,然后通过restful http post请求跟服务器交互
服务端代码逻辑:服务器端⾸先会根据客户端的HealthUrl,通过SHA-1 得到客户端的id值,借此区分不同的客户端节点
获取到客户端id后,从服务端保存的ConcurrentHashMap 对象中,根据id获取客户端状态信息,如果存在状态信息,则refresh或者replace,否则往map中新加客户端信息
2.2  路由
客户端注册到服务端,会由服务端维护⼀层路由映射,会在路径上添加前缀、客户端id和后缀,默认前缀为:/api/applications  后缀:/** Mapped URL path [/api/applications/73abdba9/health/**] onto handler of type [class
Mapped URL path [/api/applications/73abdba9/env/**] onto handler of type [class
Mapped URL path [/api/applications/73abdba9/metrics/**] onto handler of type [class
Mapped URL path [/api/applications/73abdba9/trace/**] onto handler of type [class
Mapped URL path [/api/applications/73abdba9/dump/**] onto handler of type [classspringboot原理图解
Mapped URL path [/api/applications/73abdba9/jolokia/**] onto handler of type [class
Mapped URL path [/api/applications/73abdba9/info/**] onto handler of type [class
Mapped URL path [/api/applications/73abdba9/activiti/**] onto handler of type [class
Mapped URL path [/api/applications/73abdba9/logfile/**] onto handler of type [class
Mapped URL path [/api/applications/73abdba9/refresh/**] onto handler of type [class
Mapped URL path [/api/applications/73abdba9/flyway/**] onto handler of type [class
Mapped URL path [/api/applications/73abdba9/liquibase/**] onto handler of type [class
Mapped URL path [/api/applications/73abdba9/heapdump/**] onto handler of type [class
73abdba9 为客户端的id值
具体代码如下:
具体的路由信息如下:
包含请求的路径,以及具体节点的实际访问路径(location)
2.3 具体请求执⾏路径
⽤户触发界⾯ -> 界⾯发起请求(带有具体的客户端id)  -> 经过服务器端路由映射-> 具体节点的访问路径 -> 调⽤Spring Boot Autuator 监控接⼝获取数据返回
经过发现health 接⼝,默认每隔20秒都会触发⼀次,其它接⼝只有刷新后才会触发接⼝调⽤,也许health被设计成⼼跳连接(猜测)
3.Spring Boot Autuator 监控
Spring boot autuator 提供很多的Endpoints 访问
endpoints = { "env", "metrics","trace", "dump", "jolokia", "info","activiti", "logfile", "refresh","flyway", "liquibase", "heapdump" }; endpoints说明以及⾃定义:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。