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: "*" # 暴露所有端点


目录
相关文章
|
13天前
|
人工智能 前端开发 Java
基于开源框架Spring AI Alibaba快速构建Java应用
本文旨在帮助开发者快速掌握并应用 Spring AI Alibaba,提升基于 Java 的大模型应用开发效率和安全性。
基于开源框架Spring AI Alibaba快速构建Java应用
|
1天前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
9 2
|
21天前
|
前端开发 Java 数据库连接
Spring 框架:Java 开发者的春天
Spring 框架是一个功能强大的开源框架,主要用于简化 Java 企业级应用的开发,由被称为“Spring 之父”的 Rod Johnson 于 2002 年提出并创立,并由Pivotal团队维护。
41 1
Spring 框架:Java 开发者的春天
|
21天前
|
Java 数据库连接 开发者
Spring 框架:Java 开发者的春天
【10月更文挑战第27天】Spring 框架由 Rod Johnson 在 2002 年创建,旨在解决 Java 企业级开发中的复杂性问题。它通过控制反转(IOC)和面向切面的编程(AOP)等核心机制,提供了轻量级的容器和丰富的功能,支持 Web 开发、数据访问等领域,显著提高了开发效率和应用的可维护性。Spring 拥有强大的社区支持和丰富的生态系统,是 Java 开发不可或缺的工具。
|
21天前
|
JSON Java Maven
实现Java Spring Boot FCM推送教程
本指南介绍了如何在Spring Boot项目中集成Firebase云消息服务(FCM),包括创建项目、添加依赖、配置服务账户密钥、编写推送服务类以及发送消息等步骤,帮助开发者快速实现推送通知功能。
51 2
|
25天前
|
存储 人工智能 Java
将 Spring AI 与 LLM 结合使用以生成 Java 测试
AIDocumentLibraryChat 项目通过 GitHub URL 为指定的 Java 类生成测试代码,支持 granite-code 和 deepseek-coder-v2 模型。项目包括控制器、服务和配置,能处理源代码解析、依赖加载及测试代码生成,旨在评估 LLM 对开发测试的支持能力。
32 1
|
28天前
|
Java BI 调度
Java Spring的定时任务的配置和使用
遵循上述步骤,你就可以在Spring应用中轻松地配置和使用定时任务,满足各种定时处理需求。
117 1
|
8天前
|
安全 Java 测试技术
Java开发必读,谈谈对Spring IOC与AOP的理解
Spring的IOC和AOP机制通过依赖注入和横切关注点的分离,大大提高了代码的模块化和可维护性。IOC使得对象的创建和管理变得灵活可控,降低了对象之间的耦合度;AOP则通过动态代理机制实现了横切关注点的集中管理,减少了重复代码。理解和掌握这两个核心概念,是高效使用Spring框架的关键。希望本文对你深入理解Spring的IOC和AOP有所帮助。
14 0
|
29天前
|
Java Apache Maven
Java/Spring项目的包开头为什么是com?
本文介绍了 Maven 项目的初始结构,并详细解释了 Java 包命名惯例中的域名反转规则。通过域名反转(如 `com.example`),可以确保包名的唯一性,避免命名冲突,提高代码的可读性和逻辑分层。文章还讨论了域名反转的好处,包括避免命名冲突、全球唯一性、提高代码可读性和逻辑分层。最后,作者提出了一个关于包名的问题,引发读者思考。
Java/Spring项目的包开头为什么是com?
|
1月前
|
存储 Java API
如何使用 Java 记录简化 Spring Data 中的数据实体
如何使用 Java 记录简化 Spring Data 中的数据实体
34 9