spring-boot-starter-actuator配置案例;附带多配置文件抽取公共配置文件;

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

需求需要为公司项目统一添加健康检查,存在很多微服务,难道要一个一个的修改配置文件吗?
可以使用公共配置文件,修改公共配置文件,做到一处修改,处处更新;


一、使用步骤

1.引入依赖

根pom.xml依赖管理:
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-dependencies</artifactId>
    <version>${spring-boot.version}</version>
    <type>pom</type>
    <scope>import</scope>
</dependency>

项目 pom.xml引入依赖
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

2.配置文件

抽取公共配置文件再引入或,将以下配置直接添加到现有配置文件中

#actuator监控
management:
  #  server:
  #    port: 8081 # 设置监控服务端口,如果没写默认就是服务器的端口
  endpoints:
    # 设置端点是否可用 默认只有shutdown可用
    enabled-by-default: true
    web:
      # 设置是否暴露端点 默认只有health和info可见
      exposure:
        # 包括所有端点
        include: "*" # 注意需要添加引号
        # 排除端点
        exclude: shutdown
      #访问地址
      #base-path: /actuator #默认
  endpoint:
    health:
      show-details: always
    #可以关闭指定的端点
    shutdown:
      enabled: false

2.1 直接添加到现有配置文件中

2.2 抽取公共配置文件再引入
  • 创建公共配置文件
    -在这里插入图片描述
  • bootstrap.yaml 引入
    shared-configs 共享配置
    dataId;group;refresh;
    在这里插入图片描述

3. 启动项目,访问地址

3.1 查询支持的检测

  ip:port/actuator  --> http://127.0.0.1:9333/actuator
{
  "_links": {
      其他 .... 
      "health": {
          "href": "http://127.0.0.1:9333/actuator/health", 
          "templated": false
      }, 
      其他 ....
  }
}

3.2 健康检测查询地址

 ip:port/actuator/health --> http://127.0.0.1:9333/actuator/health
{
    "status": "DOWN", 
    "components": {
        "db": {
            "status": "UP", 
            "details": {
                "database": "MySQL", 
                "validationQuery": "isValid()"
            }
        }, 
        "discoveryComposite": {
            "status": "UP", 
            "components": {
                "discoveryClient": {
                    "status": "UP", 
                    "details": {
                        "services": [
                            "erpa", 
                            "erpb", 
                            "mfc", 
                            "erpd", 
                            "erpe", 
                            "erpf"
                        ]
                    }
                }
            }
        }, 
        "diskSpace": {
            "status": "UP", 
            "details": {
                "total": 322122543104, 
                "free": 227919015936, 
                "threshold": 10485760, 
                "exists": true
            }
        }, 
        "elasticsearch": {
            "status": "DOWN", 
            "details": {
                "error": "java.net.ConnectException: Timeout connecting to [localhost/127.0.0.1:9200]"
            }
        }, 
        "nacosConfig": {
            "status": "UP"
        }, 
        "nacosDiscovery": {
            "status": "UP"
        }, 
        "ping": {
            "status": "UP"
        }, 
        "redis": {
            "status": "UP", 
            "details": {
                "version": "5.0.13"
            }
        }, 
        "refreshScope": {
            "status": "UP"
        }
    }
}

3.3 未使用ES导致健康检查失败

  • 排除无需检查的ES
#去除检查
management:
 health:
   elasticsearch:
     enabled: false
  • 再次检测
{
    "status": "UP", 
    "components": {
        "db": {
            "status": "UP", 
            "details": {
                "database": "MySQL", 
                "validationQuery": "isValid()"
            }
        }, 
        "discoveryComposite": {
            "status": "UP", 
            "components": {
                "discoveryClient": {
                    "status": "UP", 
                    "details": {
                        "services": [
                            "erp-a", 
                            "erp-b", 
                            "erp-c", 
                            "erp-d", 
                            "erp-e", 
                            "erp-f"
                        ]
                    }
                }
            }
        }, 
        "diskSpace": {
            "status": "UP", 
            "details": {
                "total": 322122543104, 
                "free": 227914055680, 
                "threshold": 10485760, 
                "exists": true
            }
        }, 
        "nacosConfig": {
            "status": "UP"
        }, 
        "nacosDiscovery": {
            "status": "UP"
        }, 
        "ping": {
            "status": "UP"
        }, 
        "redis": {
            "status": "UP", 
            "details": {
                "version": "5.0.13"
            }
        }, 
        "refreshScope": {
            "status": "UP"
        }
    }
}

总结

以上就是今天要讲的内容,本文仅仅简单介绍了spring-boot-actuator的简答配置使用,以及如何抽取公共配置.
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
spring-boot-starter-actuator是Spring Boot框架中的一个模块,它提供了一系列用于监控和管理应用程序的端点(endpoints),比如/health、/info、/metrics等。这些端点可以通过HTTP请求访问,返回应用程序的各种指标和状态信息。 spring-boot-starter-actuator的原理主要包括以下几个方面: 1. 自动配置:Spring Boot框架提供了自动配置功能,可以根据应用程序的依赖项和配置文件来自动配置spring-boot-starter-actuator模块。 2. 端点映射:spring-boot-starter-actuator使用Spring MVC框架来处理HTTP请求。它通过端点映射(Endpoint Mapping)将HTTP请求映射到相应的端点处理器(Endpoint Handler)上。 3. 端点处理器:每个端点都有一个对应的处理器,用于处理HTTP请求并返回响应。端点处理器可以是自定义的Java类,也可以是Spring Boot框架提供的默认实现。 4. 数据源:spring-boot-starter-actuator会从应用程序的各种数据源中收集指标和状态信息,比如JVM内存使用情况、数据库连接池状态等。这些数据源可以是应用程序本身、第三方库、操作系统等。 5. 安全性:为了保护应用程序的安全性,spring-boot-starter-actuator提供了一些安全功能,比如基于角色的访问控制、IP地址过滤等。可以通过配置文件配置这些安全功能。 总之,spring-boot-starter-actuator通过自动配置、端点映射、端点处理器、数据源和安全性等机制,实现了对应用程序的监控和管理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值