spring boot 2:执行器/健康端点需要更多时间

2024-03-17

在我的一项服务 /actuator/health 端点中花费了更多时间(大约 9 秒)。我正在使用以下依赖项,如何调试它?

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-logging</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-tomcat</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jetty</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>

使用的 Spring Boot 版本:2.0.3.发布

谢谢, 哈里


基本上health端点的实现方式是它包含实现该接口的所有 Spring bean 的列表HealthIndicator.

每个健康指示器负责提供有关一个子系统的健康信息(此类子系统的示例有:disk、postgres、mongo 等),spring boot 附带了一些预定义的 HealthIndicators。

这样当health端点被调用时,它会迭代此列表并获取有关每个子系统的信息,然后构造答案。

因此,您可以在相关运行状况指标中放置一个断点(假设您知道检查了哪些子系统)并查看会发生什么。

如果您正在寻找 HTTP 入口点 - 当您调用时会调用的代码http://<host-port>/health(可能会根据您的设置而有所不同,但您明白了)`,可以找到here https://github.com/spring-projects/spring-boot/blob/0ddd1b6ce81a24c14518ef715527aa72b524d7eb/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/health/HealthEndpoint.java

我想到的另一种方法是禁用“可疑”健康检查并通过消除找到缓慢的检查。

例如,如果您有一个 elasticsearch 并且想要禁用它,请在application.properties:

management.health.elasticsearch.enabled = false
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

spring boot 2:执行器/健康端点需要更多时间 的相关文章

随机推荐

  • 背景不适用于 div,因为它应该

    我的路径有一个奇怪的问题 这个可以工作 在 Windows 上 div style background none div folder1 image gif 尽管如此 此页面的说法完全相反 不是第一个版本 而是第二个版本应该有效 背景不适
  • 如何在 Python 中将一个字符串附加到另一个字符串?

    如何有效地将一个字符串附加到另一个字符串 有没有更快的替代方案 var1 foo var2 bar var3 var1 var2 For handling multiple strings in a list see How to conc
  • 简化 semver 版本比较逻辑

    有标准的 npm semver 版本比较库 但我在这里有一些简单的逻辑来比较 semver 版本 const versionA 14 8 3 const versionB 15 1 1 const versionC 15 1 2 const
  • 为什么我的 iPhone 应用程序应该使用 Core Data?

    我正在开发我的第二个 iPhone 应用程序 对 Core Data 很好奇 这个项目的时间是有限的 我的总体时间也是有限的 我是唯一的开发人员 我感觉核心数据会很有用 但我无法清楚地解释为什么 请原谅以下混淆 应用程序需要从中央服务器检索
  • facet_wrap() + ggplot2() 中每个面的独立颜色渐变

    我正在努力为每个方面绘制渐变色标facet wrap 独立 数据太大 无法在这里发布 但这是我的代码 ggplot stack aes hour day geom tile aes fill percent colour white fac
  • 如何使用 HTML Agility Pack 修复格式错误的 HTML?

    我的 HTML 格式不正确 标签重叠 p word1 b word2 b p p word3word4 p 重叠也可以嵌套 如何使用 HTML Agility Pack HAP 将其转换为格式良好的 HTML 我正在寻找这个输出 p wor
  • echo $_GET["jsoncallback"] 时出错

    当我回显结果时 它是错误的 如何修复它 由于您没有准确地写出您想要执行的操作 因此我猜测您正在尝试返回 JS 回调函数将放置在文档中的 HTML 选项列表 尝试这个
  • 使用 gnuplot 用数据文件制作电影

    我确实有很多数据文件 他们看着像是 1 数据 2 数据 1000 dat 我想用这些文件按顺序绘制它们来制作一部电影 请问有人有什么想法吗 如果您能帮助我 我将非常高兴 ND 这里你需要两步 第一个是根据数据创建 jpeg 或 png 绘图
  • const_cast<> 的正确用法

    作为一个常见的规则 使用它通常被认为是一种不好的做法const cast lt gt 在 C 代码中 因为它揭示了 大多数时候 设计中的缺陷 虽然我完全同意这一点 但我想知道使用的情况是什么const cast lt gt is ok和唯一
  • 尝试在命令行中静默执行自解压 zip 文件

    我有这些自解压 zip 文件 我正在尝试在 2008 7 机器上远程解压它们 但它们以 exe 的形式出现 需要用户双击并选择提取位置 在 WinZip 支持网站上 他们说要使用 auto 标志 因此命令将如下所示 C deploy exe
  • 简单的udp代理解决方案

    我正在寻找可以代理我的 udp 数据包的解决方案 我有一个客户端向服务器发送 udp 数据包 它们之间的连接非常糟糕 导致大量数据包丢失 一种解决方案是使用一个新的代理服务器 它将所有数据包从客户端重定向到目标服务器 新的代理服务器与这两个
  • py_environment“time_step”与“time_step_spec”不匹配

    我通过 tf 代理创建了一个自定义 py 环境 但是我无法使用 py policy action 验证环境或在其中采取步骤 我对 time step specs 中排除的内容感到困惑 我尝试通过 tf py environment TFPy
  • 如何在C++中检查字符串开头

    C 有没有办法检查字符串是否以某个字符串开头 小于原始字符串 就像我们在 Java 中可以做的那样 bigString startswith smallString std string s Hello world if s find He
  • 有没有办法用 XMLHttpRequest 对象发送二进制数据?

    我正在尝试使用 XMLHttpRequest 发送二进制块 var xhr new XMLHttpRequest var bindata 0x0f0f xhr open POST binary reader php xhr send bin
  • NestJS:“字符串”类型的参数不可分配给“从不”类型的参数

    import INestApplication Injectable OnModuleInit from nestjs common import Prisma PrismaClient from prisma client Injecta
  • Asterisk 拨号方案 (extensions.conf) 应用程序

    我正在开发一个应用程序 允许用户使用手机访问他们的邮箱 我开发了一个 IVR 菜单 用户可以使用它来检索他们的邮件 更具体地说 我用 Perl 编写了一个 AGI 来检索邮件 问题是 AGI 执行需要相当长的时间 为此 我需要让我的用户在执
  • SVN+SSH,不用每次都做ssh-add吗? (苹果系统)

    我知道答案就在那里 但我对 Unix 很笨 如果它击中我的脸 我可能不会认出这个解决方案 我在 Mac 上 通过 SSH 隧道连接到 SVN 服务器 我必须ssh add privateKey txt每次我想连接到SVN服务器时 Corne
  • 在 Django 中返回“HttpResponseNotFound”和引发“Http404”有什么区别?

    在 Django 中显然有两种不同的方法返回 404 错误 HttpResponseNotFound对象或通过提出Http404例外 虽然我在项目中使用前者 但 Django 的内部视图似乎主要使用后者 除了 例外就是例外 的口头禅之外 这
  • TextView:让它截断而不考虑单词之间的空格

    如何配置 TextView 在单词中间截断 因此 如果我有 text Some Text 我希望它显示为 Some Te 假设宽度支持这一点 相反 我看到的是 一些 即使有足够的空间容纳更多字符 它也会截断整个单词 Text 这对我有用
  • spring boot 2:执行器/健康端点需要更多时间

    在我的一项服务 actuator health 端点中花费了更多时间 大约 9 秒 我正在使用以下依赖项 如何调试它