Spring Boot Admin
Spring Boot Actuator 提供了各种端点,Spring Boot Admin 能够将 Actuator 中的信息进行界面化的展示,并提供实时报警功能。
在微服务环境中,使用 Spring Boot Admin,通常包括服务端和客户端,服务端只运行 Spring Boot Admin Server,收集各个客户端的数据,并以可视化界面显示出来。客户端运行 Spring Boot Admin Client,或者通过服务发现与注册获取应用的信息。
Admin服务端配置
1.添加依赖
添加spring-boot-admin-starter-server依赖
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.3.12.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.powernode</groupId> <artifactId>admin-server</artifactId> <version>0.0.1-SNAPSHOT</version> <name>05-admin-server</name> <description>Demo project for Spring Boot</description> <properties> <java.version>1.8</java.version> <spring-boot-admin.version>2.3.0</spring-boot-admin.version> <spring-cloud.version>Hoxton.SR12</spring-cloud.version> </properties> <dependencies> <!--eureka客户端依赖--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency> <!--Web依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!--Admin服务端依赖--> <dependency> <groupId>de.codecentric</groupId> <artifactId>spring-boot-admin-starter-server</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <!--添加依赖管理器--> <dependencyManagement> <dependencies> <dependency> <groupId>de.codecentric</groupId> <artifactId>spring-boot-admin-dependencies</artifactId> <version>${spring-boot-admin.version}</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>${spring-cloud.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
2.开启Admin Server
在启动类 AdminServerApplication 上添加注解 @EnableAdminServer 开启 Spring Boot Admin Server。
@SpringBootApplication @EnableEurekaClient @EnableAdminServer public class AdminServerApplication { public static void main(String[] args) { SpringApplication.run(AdminServerApplication.class, args); } }
3.修改配置文件
暴露endpoints端点信息
server: port: 10086 #端口号范围:0-65535 spring: application: name: admin-service eureka: client: service-url: defaultZone: http://xxx.xxx.xxx.xxx:8761/eureka instance: hostname: localhost instance-id: ${eureka.instance.hostname}:${spring.application.name}:${server.port} management: endpoints: web: exposure: include: '*' #暴露所有的监控端点 如果一个服务需要被监控,那么就要讲自身的一些情况(一些信息接口)暴露出去
端点 Endpoint 是 Actuator 的核心组成部分,用来监视应用程序的各种状态。 Spring Boot Actuator 内置很多 Endpoint,总体上看分成三类:
- 应用配置类:主要包括配置信息、Spring Bean 的信息、配置文件信息、环境信息等;
- 度量指标类:应用在运行期间的信息,包括堆栈、健康状态、线程池信息、HTTP请求统计等;
- 操作控制类:如 shutdown,提供了对应用的关闭等操作类功能。
Admin客户端配置
1.添加依赖
添加spring-boot-starter-actuator依赖
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <parent> <artifactId>04-feign-project</artifactId> <groupId>com.powernode</groupId> <version>1.0-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>user-center</artifactId> <properties> <maven.compiler.source>8</maven.compiler.source> <maven.compiler.target>8</maven.compiler.target> </properties> <dependencies> <dependency> <groupId>com.powernode</groupId> <artifactId>common-api</artifactId> <version>1.0-SNAPSHOT</version> </dependency> <!--暴露自身检测端点 endPoints 的一个依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>2.3.12.RELEASE</version> </plugin> </plugins> </build> </project>
2.修改配置文件
暴露endpoints端点信息
server: port: 8082 spring: application: name: user-service eureka: client: service-url: defaultZone: http://192.168.105.3:8761/eureka instance: hostname: localhost instance-id: ${eureka.instance.hostname}:${spring.application.name}:${server.port} feign: hystrix: enabled: true #启动熔断 management: endpoints: web: exposure: include: '*' #暴露所有的监控端点 如果一个服务需要被监控,那么就要讲自身的一些情况(一些信息接口)暴露出去
访问 Admin Server
浏览器访问:http://localhost:10086/applications
可以将项目里的包括源码的映射关系全部展示出来
双击即可快速找到相应接口的位置
这样做有什么好处呢?
一个公司如果经营了很久,会有很多成型的jar工具,比如login-jar等,这样我们开发的时候就可以不用写login登录的相关接口的,只需要添加login相关的依赖调用接口即可。
如果此时我们想看相应源码(比如login)的时候就比较不方便查看。
我们如果使用Admin监控的方式即可快速找到相应接口的位置(不管这个方法在我们的项目中还是在源码中)
参考自:https://blog.csdn.net/java1527/article/details/126831544
标签:Admin,Spring,boot,springframework,Boot,spring From: https://www.cnblogs.com/galo/p/17023284.html