赞
踩
Actuator是spring boot的一个附加功能,可帮助你在应用程序生产环境时监视和管理应用程序。可以使用HTTP的各种请求来监管,审计,收集应用的运行情况。Spring Boot Actuator提供了对单个Spring Boot的监控,信息包含:应用状态、内存、线程、堆栈等等,比较全面的监控了Spring Boot应用的整个生命周期。特别对于微服务管理十分有意义。
缺点:没有可视化界面。
解决:后面将要讲到的Admin-UI解决弥补这一缺陷
pom.xml
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-web</artifactId>
- </dependency>
-
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-actuator</artifactId>
- </dependency>
application.yml
- server:
- port: 8080
- #自定义配置信息用于"/actuator/info"读取
- info:
- name: 老王
- age: 100
- phone: 110
-
- #通过下面的配置启用所有的监控端点,默认情况下,这些端点是禁用的;
- management:
- endpoints:
- web:
- exposure:
- include: "*"
app.java
-
- @RestController
- @SpringBootApplication
- public class App {
-
- public static void main(String[] args) {
- SpringApplication.run(App.class, args);
- }
-
- @RequestMapping("/index")
- public String index() {
- return "这是 index";
- }
-
- @RequestMapping("/home")
- public String home() {
- return "这是 home";
- }
-
- }
运行:
说明: 默认情况下,在不配置启用所有监控站点时,只拥有3个接口的监控权限,把 application.yml改成:
- server:
- port: 8080
- #自定义配置信息用于"/actuator/info"读取
- info:
- name: 老王
- age: 100
- phone: 110
-
- #通过下面的配置启用所有的监控端点,默认情况下,这些端点是禁用的;
- #management:
- # endpoints:
- # web:
- # exposure:
- # include: "*"
-
Spring Boot Admin 是一个针对spring-boot的actuator接口进行UI美化封装的监控工具。他可以返回在列表中浏览所有被监控spring-boot项目的基本信息比如:Spring容器管理的所有的bean、详细的Health信息、内存信息、JVM信息、垃圾回收信息、各种配置信息(比如数据源、缓存列表和命中率)等,Threads 线程管理,Environment 管理等。
Spring Boot Admin 是由Client端和Server端组成,在 Spring Boot 项目中,Spring Boot Admin 作为 Server 端,其他的要被监控的应用作为 Client 端, 基于这种的配置如下步骤:
pom.xml
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-web</artifactId>
- </dependency>
-
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-actuator</artifactId>
- </dependency>
-
- <dependency>
- <groupId>de.codecentric</groupId>
- <artifactId>spring-boot-admin-starter-server</artifactId>
- <version>2.0.0</version>
- </dependency>
applicaiton.yml
- server:
- port: 8081
app.java
- @RestController
- @EnableAdminServer
- @SpringBootApplication
- public class App {
-
- public static void main(String[] args) {
- SpringApplication.run(App.class, args);
- }
-
- }
启动服务端:
这时不没有数据。
pom.xml
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-web</artifactId>
- </dependency>
-
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-actuator</artifactId>
- </dependency>
-
- <dependency>
- <groupId>de.codecentric</groupId>
- <artifactId>spring-boot-admin-starter-client</artifactId>
- <version>2.0.0</version>
- </dependency>
application.yml
- server:
- port: 8080
- #自定义配置信息用于"/actuator/info"读取
- info:
- name: 老王
- age: 100
- phone: 110
-
- #通过下面的配置启用所有的监控端点,默认情况下,这些端点是禁用的;
- management:
- endpoints:
- web:
- exposure:
- include: "*"
- endpoint:
- health:
- show-details: always
-
- ## 将Client作为服务注册到Server,通过Server来监听项目的运行情况
- spring:
- boot:
- admin:
- client:
- url: http://localhost:8081
- ##application实例名
- application:
- name : spring-boot-admin-client
-
-
app.java
- @RestController
- @SpringBootApplication
- public class App {
-
- public static void main(String[] args) {
- SpringApplication.run(App.class, args);
- }
-
- @RequestMapping("/index")
- public String index() {
- return "这是 index";
- }
-
- @RequestMapping("/home")
- public String home() {
- return "这是 home";
- }
-
- }
启动 client……
几秒后刷新,可以看到 client 端已注册到 server。
查看 client 详细信息:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。