Spring Boot Actuator 使用和常用配置

本文涉及的产品
云原生内存数据库 Tair,内存型 2GB
云数据库 Redis 版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: Spring Boot Actuator 使用和常用配置

转载请注明出处:

  Spring Boot Actuator是Spring Boot提供的一个非常强大的工具,它可以帮助我们监控和管理我们的Spring Boot应用。Actuator提供了一系列的端点,我们可以通过这些端点来查看我们的应用的运行状态,例如健康状态、指标、信息、数据库连接、Redis连接等等

1.配置Spring Boot Actuator

  要使用Spring Boot Actuator,我们首先需要在我们的Spring Boot项目中添加spring-boot-starter-actuator依赖。在Maven项目中,我们可以通过以下方式添加这个依赖:

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

  添加了这个依赖之后,Spring Boot Actuator会自动配置各种端点,使我们可以在生产环境中监控和管理我们的Spring Boot应用。

  Spring Boot Actuator提供了一系列的端点,可以通过访问这些端点来查看我们的应用的运行状态。例如,通过访问/actuator/health端点来查看应用的健康状态,通过访问/actuator/metrics端点来查看我们的应用的指标,通过访问/actuator/info端点来查看我们的应用的信息等。

  以下是一个示例,展示了如何在我们的Spring Boot应用中使用Spring Boot Actuator:

curl http://localhost:8080/actuator/health

  通过curl命令访问了/actuator/health端点,查看了我们的应用的健康状态。

2.Spring Boot Actuator默认配置项:

  1.management.endpoints.web.exposure.include:这个配置项用于指定哪些端点应该被暴露出来。默认情况下,它的值是*,表示所有的端点都会被暴露出来。如果你想关闭某个端点,你可以将它的值从*改为你想要暴露的端点的名称,用逗号分隔

  2.management.endpoints.web.exposure.exclude:这个配置项用于指定哪些端点不应该被暴露出来。默认情况下,它的值是空字符串,表示没有端点被排除。如果你想关闭某个端点,你可以将它的值改为你想要关闭的端点的名称,用逗号分隔

  3.management.endpoints.web.base-path:这个配置项用于指定所有端点的基础路径。默认情况下,它的值是/actuator,表示所有的端点的路径都会以/actuator开始。    

  4.management.endpoints.web.path-mapping:这个配置项用于指定端点的路径映射。默认情况下,它的值是空字符串,表示没有端点的路径被映射。如果你想改变某个端点的路径,你可以将它的值改为端点的名称和新的路径,用冒号分隔

  5.management.endpoints.web.cors.allowed-origins:这个配置项用于指定哪些源站点可以访问端点。默认情况下,它的值是空字符串,表示没有源站点被允许。如果你想允许某个源站点访问端点,你可以将它的值改为源站点的URL,用逗号分隔

  以下是一个示例,展示了如何在Spring Boot的配置文件中设置Actuator的默认配置项:

management:
 endpoints:
   web:
     exposure:
       include: '*'
     base-path: '/actuator'
     path-mapping: 'health=healthcheck'
     cors:
       allowed-origins: 'http://localhost:8080'

  在这个示例中,设置了所有的端点都会被暴露出来,所有的端点的路径都会以/actuator开始,health端点的路径被映射为healthcheckhttp://localhost:8080被允许访问所有的端点.

3.关闭健康检查

  在Spring Boot中,你可以通过配置文件来关闭Actuator的检查。具体来说,你可以使用management.endpoints.web.exposure.includemanagement.endpoints.web.exposure.exclude配置项来控制哪些端点被暴露出来。

  如果你想关闭所有的Actuator端点,你可以将management.endpoints.web.exposure.include配置项设置为空字符串。这样,Actuator就不会暴露任何端点,也就意味着Actuator的检查就不会被执行。

  以下是一个示例,展示了如何在Spring Boot的配置文件中关闭所有的Actuator端点:

management:
 endpoints:
  web:
    exposure:
      include: ''

  在这个示例中,我们将management.endpoints.web.exposure.include配置项设置为空字符串,这样Actuator就不会暴露任何端点,也就意味着Actuator的检查就不会被执行

  需要注意的是,关闭Actuator的检查可能会影响到你的应用程序的监控和管理。因此,你应该在关闭Actuator的检查之前,确保你已经准备好了其他的监控和管理方案。

4.健康检查检查示例

  如果你的management.endpoint.health.show-details=always配置项设置为always,那么/actuator/health端点会返回所有的健康检查结果,包括应用程序的各种状态信息,如数据库连接、Redis连接等

  以下是一个示例,展示了/actuator/health端点返回的健康检查结果:

{
 "status": "UP",
 "components": {
  "db": {
    "status": "UP",
    "details": {
      "database": "MySQL",
      "hello": 1
    }
  },
  "diskSpace": {
    "status": "UP",
    "details": {
      "total": 250685575168,
      "free": 66978721536,
      "threshold": 10485760
    }
  },
  "redis": {
    "status": "UP",
    "details": {
      "version": "4.0.10",
      "redis_version": "4.0.10",
      "uptime": 11038,
      "os": "Linux 3.10.0-862.11.6.el7.x86_64 x86_64",
      "redis_mode": "standalone",
      "role": "master",
      "connected_clients": 1,
      "used_memory": 610024,
      "used_memory_human": "594.09K",
      "used_memory_rss": 737008,
      "used_memory_peak": 610024,
      "used_memory_peak_human": "594.09K",
      "used_memory_lua": 37888,
      "mem_fragmentation_ratio": "1.44",
      "mem_allocator": "jemalloc-3.6.0",
      "loading": 0,
      "rdb_changes_since_last_save": 0,
      "rdb_bgsave_in_progress": 0,
      "rdb_last_save_time": 1577023058,
      "rdb_last_bgsave_status": "ok",
      "rdb_last_bgsave_time_sec": -1,
      "rdb_current_bgsave_time_sec": -1,
      "aof_enabled": 0,
      "aof_rewrite_in_progress": 0,
      "aof_rewrite_scheduled": 0,
      "aof_last_rewrite_time_sec": -1,
      "aof_current_rewrite_time_sec": -1,
      "aof_last_bgrewrite_status": "ok",
      "aof_last_write_status": "ok",
      "total_connections_received": 1,
      "total_commands_processed": 1,
      "instantaneous_ops_per_sec": 0,
      "total_net_input_bytes": 73,
      "total_net_output_bytes": 394,
      "instantaneous_input_kbps": 0.0,
      "instantaneous_output_kbps": 0.0,
      "rejected_connections": 0,
      "sync_full": 0,
      "sync_partial_ok": 0,
      "sync_partial_err": 0,
      "expired_keys": 0,
      "evicted_keys": 0,
      "keyspace_hits": 0,
      "keyspace_misses": 0,
      "pubsub_channels": 0,
      "pubsub_patterns": 0,
      "latest_fork_usec": 0,
      "migrate_cached_sockets": 0,
      "slave_expires_tracked_keys": 0,
      "active_defrag_hits": 0,
      "active_defrag_misses": 0,
      "active_defrag_key_hits": 0,
      "active_defrag_key_misses": 0,
      "active_defrag_key_hits_perc": 0.0,
      "active_defrag_key_misses_perc": 0.0,
      "active_defrag_scanned": 0,
      "active_defrag_scanned_perc": 0.0,
     ```

 

标签: spring boot

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore &nbsp; &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
8天前
|
IDE Java 开发工具
还在为繁琐的配置头疼吗?一文教你如何用 Spring Boot 快速启动,让开发效率飙升,从此告别加班——打造你的首个轻量级应用!
【9月更文挑战第2天】Spring Boot 是一款基于 Spring 框架的简化开发工具包,采用“约定优于配置”的原则,帮助开发者快速创建独立的生产级应用程序。本文将指导您完成首个 Spring Boot 项目的搭建过程,包括环境配置、项目初始化、添加依赖、编写控制器及运行应用。首先需确保 JDK 版本不低于 8,并安装支持 Spring Boot 的现代 IDE,如 IntelliJ IDEA 或 Eclipse。
34 5
|
12天前
|
Java 微服务 Spring
Spring Cloud全解析:配置中心之解决configserver单点问题
但是如果该configserver挂掉了,那就无法获取最新的配置了,微服务就出现了configserver的单点问题,那么如何避免configserver单点呢?
|
25天前
|
运维 Java Nacos
Spring Cloud应用框架:Nacos作为服务注册中心和配置中心
Spring Cloud应用框架:Nacos作为服务注册中心和配置中心
|
28天前
|
安全 前端开发 Java
Web端系统开发解决跨域问题——以Java SpringBoot框架配置Cors为例
在Web安全上下文中,源(Origin)是指一个URL的协议、域名和端口号的组合。这三个部分共同定义了资源的来源,浏览器会根据这些信息来判断两个资源是否属于同一源。例如,https://www.example.com:443和http://www.example.com虽然域名相同,但由于协议和端口号不同,它们被视为不同的源。同源(Same-Origin)是指两个URL的协议、域名和端口号完全相同。只有当这些条件都满足时,浏览器才认为这两个资源来自同一源,从而允许它们之间的交互操作。
Web端系统开发解决跨域问题——以Java SpringBoot框架配置Cors为例
|
9天前
|
Java Spring 监控
Spring Boot Actuator:守护你的应用心跳,让监控变得触手可及!
【8月更文挑战第31天】Spring Boot Actuator 是 Spring Boot 框架的核心模块之一,提供了生产就绪的特性,用于监控和管理 Spring Boot 应用程序。通过 Actuator,开发者可以轻松访问应用内部状态、执行健康检查、收集度量指标等。启用 Actuator 需在 `pom.xml` 中添加 `spring-boot-starter-actuator` 依赖,并通过配置文件调整端点暴露和安全性。Actuator 还支持与外部监控工具(如 Prometheus)集成,实现全面的应用性能监控。正确配置 Actuator 可显著提升应用的稳定性和安全性。
29 0
|
9天前
|
Java Spring 开发者
解锁 Spring Boot 自动化配置的黑科技:带你走进一键配置的高效开发新时代,再也不怕繁琐设置!
【8月更文挑战第31天】Spring Boot 的自动化配置机制极大简化了开发流程,使开发者能专注业务逻辑。通过 `@SpringBootApplication` 注解组合,特别是 `@EnableAutoConfiguration`,Spring Boot 可自动激活所需配置。例如,添加 JPA 依赖后,只需在 `application.properties` 配置数据库信息,即可自动完成 JPA 和数据源设置。这一机制基于多种条件注解(如 `@ConditionalOnClass`)实现智能配置。深入理解该机制有助于提升开发效率并更好地解决问题。
19 0
|
9天前
|
Java Spring 开发者
Spring 框架配置属性绑定大比拼:@Value 与 @ConfigurationProperties,谁才是真正的王者?
【8月更文挑战第31天】Spring 框架提供 `@Value` 和 `@ConfigurationProperties` 两种配置属性绑定方式。`@Value` 简单直接,适用于简单场景,但处理复杂配置时略显不足。`@ConfigurationProperties` 则以类级别绑定配置,简化代码并更好组织配置信息。本文通过示例对比两者特点,帮助开发者根据具体需求选择合适的绑定方式,实现高效且易维护的配置管理。
23 0
|
12天前
|
缓存 Java 数据库连接
Spring Boot 资源文件属性配置,紧跟技术热点,为你的应用注入灵动活力!
【8月更文挑战第29天】在Spring Boot开发中,资源文件属性配置至关重要,它让开发者能灵活定制应用行为而不改动代码,极大提升了可维护性和扩展性。Spring Boot支持多种配置文件类型,如`application.properties`和`application.yml`,分别位于项目的resources目录下。`.properties`文件采用键值对形式,而`yml`文件则具有更清晰的层次结构,适合复杂配置。此外,Spring Boot还支持占位符引用和其他外部来源的属性值,便于不同环境下覆盖默认配置。通过合理配置,应用能快速适应各种环境与需求变化。
23 0
|
26天前
|
安全 Java Spring
Spring Boot 关闭 Actuator ,满足安全工具扫描
Spring Boot 关闭 Actuator ,满足安全工具扫描
25 0
|
29天前
|
Java
SpringBoot 配置多数据源
SpringBoot 配置多数据源
27 0
下一篇
DDNS