spring-boot-admin源码分析及单机监控spring-boot-monitor的实现(一)
来源:互联网 发布:js添加dom resize事件 编辑:程序博客网 时间:2024/06/08 01:06
SpringBootMonitor
spring-boot-admin源码分析及单机监控spring-boot-monitor的实现(一)
spring-boot-admin源码分析及单机监控spring-boot-monitor的实现(二)
spring-boot-admin源码分析及单机监控spring-boot-monitor的实现(三)
1.spring-boot-admin简介
spring-boot-admin为springboot提供一套可视化监控页面,spring-boot-admin可以方便监控集群各节点的使用及访问情况。单机使用spring-boot-admin,需要同时引入spring-boot-admin-server和spring-boot-admin-client。
2.spring-boot-monitor
了解了spring-boot-admin之后,我们可以仿照spring-boot-admin写一个简单的单机监控工具,不需要既用server又用client。
3.程序入口
spring-boot-admin通过注解@EnableAdminServer启用spring-boot-admin的相关功能,@EnableAdminServer是程序唯一入口,它的源码是这样的:
@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documented@Import(AdminServerImportSelector.class)public @interface EnableAdminServer {}
重点是@Import(AdminServerImportSelector.class),使用@Import注解可以引入三种类
a.使用了@Configuration注解的类
这个比较简单,如果明确知道需要引入哪个配置类,直接引入就可以。
b.ImportSelector的子类
如果并不确定引入哪个配置类,需要根据@Import注解所标识的类或者另一个注解(通常是注解)里的定义信息选择配置类的话,用这种方式。
c.注解@EnableTransactionManagement
参考:http://weiqingfei.iteye.com/blog/2361152
4. ImportSelector
AdminServerImportSelector实现了DeferredImportSelector,DeferredImportSelector继承ImportSelector,SpringBoot里的ImportSelector是通过SpringBoot提供的
@EnableAutoConfiguration这个注解里完成的。这个@EnableAutoConfiguration注解可以显式地调用,否则它会在
@SpringBootApplication注解中隐式地被调用。AdminServerImportSelector实现了selectImports方法,引入了NotifierConfiguration、
HazelcastStoreConfiguration、AdminServerCoreConfiguration、AdminServerWebConfiguration、DiscoveryClientConfiguration、
RevereseZuulProxyConfiguration。这些类都有@Configuration注解。
而监控页面的配置,主要是AdminServerCoreConfiguration和AdminServerWebConfiguration这两个类完成配置的。
至此,我们可以仿照实现自己的注解:
注解:
package com.cff.boot.monitor.config;import java.lang.annotation.Documented;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;import java.lang.annotation.ElementType;import org.springframework.context.annotation.Import;@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documented@Import(MonitorConfigImportSelector.class)public @interface EnableMonitorServer {}
ImportSelector:
package com.cff.boot.monitor.config;import org.springframework.context.annotation.DeferredImportSelector;import org.springframework.core.type.AnnotationMetadata;public class MonitorConfigImportSelector implements DeferredImportSelector {@Overridepublic String[] selectImports(AnnotationMetadata importingClassMetadata) {return new String[] { MonitorConfiguration.class.getCanonicalName(),MonitorWebConfiguration.class.getCanonicalName()};}}
项目git地址:
https://gitee.com/xiaoyaofeiyang/SpringBootMonitor
阅读全文
0 0
- spring-boot-admin源码分析及单机监控spring-boot-monitor的实现(一)
- spring-boot-admin源码分析及单机监控spring-boot-monitor的实现(二)
- spring-boot-admin源码分析及单机监控spring-boot-monitor的实现(三)
- Spring boot(14) 监控spring boot的运行spring boot actuator和spring boot admin
- spring boot 添加admin监控
- Spring Boot Admin服务监控
- spring boot 添加admin监控
- 使用spring-boot-admin对spring-boot服务进行监控
- spring Boot 微服务监控(Spring boot admin )
- spring boot admin + spring boot actuator + erueka 微服务监控
- spring-boot 之 使用Admin监控应用
- spring-boot 之 使用Admin监控应用
- spring-boot 之 使用Admin监控应用
- spring-boot 之 使用Admin监控应用
- spring-boot 之 使用Admin监控应用
- spring boot admin系统监控处理
- Spring boot Admin 使用eureka监控服务
- Spring Boot Admin管理监控数据
- Java学习---8
- Java学习笔记之IO(三):OutputStream输出字节流
- sql语句无错误 order by 和limit一起用数据查询不准有重复
- MFC程序逆向 – 消息篇
- hashcode与equals详解
- spring-boot-admin源码分析及单机监控spring-boot-monitor的实现(一)
- 690. Employee Importance
- Island of Survival LightOJ
- 115个Java面试题和答案——终极列表(上)
- 服务管理(systemctl)
- java 读取excel
- linux lsof用法
- 策略模式
- 配置hibernate根据实体类自动建表功能