A-A+

Chatgpt-Springboot readiness的后续实践

2023年03月01日 技术, 默认 暂无评论 阅读 301 次

先说结论吧:

  1. 大部分情况下,当需要了解某个知识点的时候,可以由chatgpt的回答入手和拓展。
  2. 看起来知识点是成体系的,但是细节上仍旧需要通过官方文档和动手试验来确定可靠性。
  3. 对于经常更新的技术来说,chatgpt的信息相对滞后。

下面就开始动手确认一下吧。

增加maven坐标

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

版本号:2.2.5.RELEASE

在application.yaml中增加如下配置:

management:
  endpoint:
    health:
      show-details: always
      group:
        readiness:
          include: db
  health:
    defaults:
      enabled: false
    db:
      enabled: true

启动应用后,GET请求地址:

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

页面输出:

{
    "status""UP",
    "components": {
        "db": {
            "status""UP",
            "details": {
                "database""MySQL",
                "result"1,
                "validationQuery""/* ping */ SELECT 1"
            }
        },
        "my": {
            "status""UP"
        }
    },
    "groups": [
        "readiness"
    ]
}

基本上符合Chatgpt给出的答案:

  1. 设置 management.endpoint.health.show-details 属性为 always 来启用 readiness 端点。
  2. group用来分组,include用来控制该分组中包含哪些检查器。
  3. 通过自定义编码实现datasource,使用默认的db检查器也可以监控。

但是有一些并没有提示:

  1. 使用health.defaults.enable来开启或关闭默认检查器。
  2. readiness只是分组,并不是自带的原生接口。

通过试验后,有一些问题需要注意:

  1. 当db意外停止后,如果没有设置数据库超时时间,整个接口就会挂起没响应。

整体上来说,2.2.x这个版本,组件并不太完善,所以之后我又测试了2.6.x,体验就完全不一样了。

版本号:2.6.4

在application.yaml中增加如下配置:

management:
  endpoint:
    health:
      show-details: always
      #永远打开k8s的健康检查,否则只有在k8s容器中会开启liveness和readiness
      probes:
        enabled: true
      #readiness包含db检查器,不配置就不检查db
      group:
        readiness:
          include: db
  #开启哪些检查器
  health:
    defaults:
      enabled: false
    db:
      enabled: true
    diskspace:
      enabled: true

和之前主要有两个不同点:

  1. 增加了probes属性,专门用来适配k8s。
  2. db检查器很丝滑,不会产生挂起没响应的问题。

最后,几点建议:

  1. 想要了解知识点的时候,可以通过chatgpt大概了解一下。
  2. 带着聊天过程中产生的疑问去查阅官方文档或其它资料。
  3. 动手实践一下,去伪存真。

重复以上过程,将chatgpt作为学习的助手,在给出的答案上进行决策,效率会有很大的提升。

觉的不错?可以关注我的公众号↑↑↑

给我留言

Copyright © 字痕随行 保留所有权利.   Theme  Ality

用户登录

分享到: