5:SpringBoot-Actuator-Java Spring

简介: 5:SpringBoot-Actuator-Java Spring

5.1 SpringBoot-Actuator介绍

Actuator是Spring Boot 的监控系统健康情况的工具,可帮将应用程序推送到生产环境时对其进行监控和管理,可以选择使用 HTTP 端点或 JMX 来管理和监视您的应用程序

由spring-boot-starter-actuator 提供很多监控所需的接口,可以对应用系统进行配置查看,例如自动化配置信息、创建的Spring beans信息、系统环境变量的配置信息等


Actuator 参考文档:Spring Boot Actuator: Production-ready Features

5.2 Endpoints 介绍

Spring Boot 提供了 Endpoints (端点)给外部与应用程序进行访问和交互

例如health端点可以提供基本的应用程序健康信息,映射到/actuator/health

默认情况下,除shutdown之外的所有端点都启用了,可使用management.endpoint.<id>.enabled属性配置端点的启动,例如启用shutdown端点management.endpoint.shutdown.enabled=true


Sensors类Endpoints

名称 说明
autoconfig 提供 SpringBoot 的自动配置报告,告诉我们哪些自动配置模块生效了,以及哪些 没有生效,原因是什么
beans 给出当前应用的容器中所有 bean 的信息
configprops 对现有容器中的 ConfigurationProperties 提供的信息进行“消毒”处理后给出汇总信息
info 提供当前 SpringBoot 应用的任意信息
health 针对当前 SpringBoot 应用的健康检查用的 endpoint
env 关于当前 SpringBoot 应用对应的 Environment 信息
metrics 显示应用多样的度量信息
trace 当前 SpringBoot 应用的 trace 信息
mapping 如果是基于 SpringMVC 的 Web 应用,将给出 @RequestMapping 相关信息

Actuator类Endpoints

名称 说明
shutdown 用于关闭当前 SpringBoot 应用的 endpoint
dump 用于执行线程的 dump 操作

5.3 Actuator原理

Spring Boot Actuator 提供了一些 Actuator Endpoints端点用于应用程序交互,比如在项目出错时,自动报警、监控内容况等,Actuator原理可以归结为执行器端点的实现原理

  • 将端点适配委托给MVC层策略端点(MvcEndpoint)

通过端点MVC适配器(EndpointMvcAdapter),将端点暴露为HTTP请求方式的MVC端点

分别使用端点自动配置(EndpointAutoConfiguration)和MVC方式暴露端点的配置(EndpointWebMvcManagementContextConfiguration)

注入端点组件和端点处理程序映射组件、MVC端点注册表组件、MVC端点组件

其中,端点处理程序映射(EndpointHandlerMapping)通过SpringMVC方式来暴露MVC端点

以上原理参考:Spring Boot之执行器端点(Actuator Endpoint)实现剖析

使用Actuator

  • 健康检查
  • 审计
  • 统计
  • 监控

5.4 Actuator依赖引入

要实现SpringBoot应用程序启用Actuator Endpoints,需要在构建配置文件中添加spring-boot-starter-actuator依赖项

Pom文件添加依赖

<dependency>  
    <groupId>org.springframework.boot</groupId>  
    <artifactId>spring-boot-starter-actuator</artifactId>  
</dependency>  

使用HTTP调用

<dependency>  
    <groupId>org.springframework.boot</groupId>  
    <artifactId>spring-boot-starter-web</artifactId>  
</dependency>  

例如导入Actuator依赖后,想要监控或操作Actuator的所有功能,将所有的端点开放,访问http://localhost:8080/actuator查看暴露出来的端点

server:
  port: 8080
management:
  endpoints:
    web:
      exposure:
        include: "*" # 暴露所有端点


目录
相关文章
|
5天前
|
监控 Java 应用服务中间件
spring和springboot的区别
spring和springboot的区别
14 1
|
22天前
|
安全 数据安全/隐私保护
Springboot+Spring security +jwt认证+动态授权
Springboot+Spring security +jwt认证+动态授权
|
4天前
|
Java Maven Docker
0.07 秒启动一个 SpringBoot 项目!Spring Native 很强!!
0.07 秒启动一个 SpringBoot 项目!Spring Native 很强!!
17 2
|
6天前
|
Java Nacos 开发者
Java从入门到精通:4.2.1学习新技术与框架——以Spring Boot和Spring Cloud Alibaba为例
Java从入门到精通:4.2.1学习新技术与框架——以Spring Boot和Spring Cloud Alibaba为例
|
6天前
|
Dubbo Java 应用服务中间件
Java从入门到精通:3.2.2分布式与并发编程——了解分布式系统的基本概念,学习使用Dubbo、Spring Cloud等分布式框架
Java从入门到精通:3.2.2分布式与并发编程——了解分布式系统的基本概念,学习使用Dubbo、Spring Cloud等分布式框架
|
6天前
|
开发框架 前端开发 安全
Java从入门到精通:2.2.2学习使用Spring框架进行Web应用开发
Java从入门到精通:2.2.2学习使用Spring框架进行Web应用开发
|
12天前
|
Java 关系型数据库 MySQL
一套java+ spring boot与vue+ mysql技术开发的UWB高精度工厂人员定位全套系统源码有应用案例
UWB (ULTRA WIDE BAND, UWB) 技术是一种无线载波通讯技术,它不采用正弦载波,而是利用纳秒级的非正弦波窄脉冲传输数据,因此其所占的频谱范围很宽。一套UWB精确定位系统,最高定位精度可达10cm,具有高精度,高动态,高容量,低功耗的应用。
一套java+ spring boot与vue+ mysql技术开发的UWB高精度工厂人员定位全套系统源码有应用案例
|
12天前
|
人工智能 监控 安全
Java+Spring Cloud +Vue+UniApp微服务智慧工地云平台源码
视频监控系统、人员实名制与分账制管理系统、车辆管理系统、环境监测系统、大型设备监测(龙门吊、塔吊、升降机、卸料平台等)、用电监测系统、基坑监测系统、AI算法分析(安全帽佩戴、火焰识别、周界报警、人员聚众报警、升降机超载报警)、安全培训、设备监测。
20 4
|
13天前
|
负载均衡 Java 开发者
细解微服务架构实践:如何使用Spring Cloud进行Java微服务治理
【4月更文挑战第17天】Spring Cloud是Java微服务治理的首选框架,整合了Eureka(服务发现)、Ribbon(客户端负载均衡)、Hystrix(熔断器)、Zuul(API网关)和Config Server(配置中心)。通过Eureka实现服务注册与发现,Ribbon提供负载均衡,Hystrix实现熔断保护,Zuul作为API网关,Config Server集中管理配置。理解并运用Spring Cloud进行微服务治理是现代Java开发者的关键技能。
|
14天前
|
安全 Java 数据安全/隐私保护
使用Spring Security进行Java身份验证与授权
【4月更文挑战第16天】Spring Security是Java应用的安全框架,提供认证和授权解决方案。通过添加相关依赖到`pom.xml`,然后配置`SecurityConfig`,如设置用户认证信息和URL访问规则,可以实现应用的安全保护。认证流程包括请求拦截、身份验证、响应生成和访问控制。授权则涉及访问决策管理器,如基于角色的投票。Spring Security为开发者构建安全应用提供了全面且灵活的工具,涵盖OAuth2、CSRF保护等功能。