当前位置: 首页 > 知识库问答 >
问题:

Spring引导执行器/健康endpoint响应慢?

常源
2023-03-14

第一次尝试执行器依赖关系时,我将其配置为选入

management.endpoints.enabled-by-default=false
management.endpoint.info.enabled=true
management.endpoint.health.enabled=true

当我在本地调用/acture/healt时,大约需要1.4秒来响应。请记住,这是一个本地调用,来自服务器的同一台机器。

如果我创建了一个以空响应进行响应的常规endpoint,则请求只需几毫秒。

这正常吗?我能让它回复快一点吗?

共有1个答案

董子平
2023-03-14

基本上,healthendpoint的实现方式是包含实现接口HealthIndicator的所有Spring bean的列表。

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

以便在调用健康endpoint时,它遍历此列表并获得关于每个子系统的信息,然后构造答案。

因此,您可以在相关的健康指标中放置一个断点(假设您知道检查了哪些子系统),然后看看发生了什么。

如果您正在查找HTTP入口点--当您调用HTTP:///acturet/health时调用的代码(根据您的设置可能会有所不同,但您有这样的想法)`,可以在这里找到它

还有一种方法是禁用“可疑”的健康检查,通过消除来发现慢的。

例如,如果您有一个elastricsearch并希望禁用它,请在Application.properties中使用:

management.health.elasticsearch.enabled = false
 类似资料:
  • {“Status”:“Down”} 我需要做什么才能显示自定义健康状况指示器?

  • 但我想要一些我可以调用从AWS弹性负载均衡器/自动缩放组。默认情况下,如果一个实例未通过健康检查,ELB/ASG将终止它并用一个新的实例替换它。问题是一些健康检查,如DataSourceHealthIndicator,会在数据库关闭时向下报告,但我的应用程序实例在其他方面是完全健康的。如果我使用默认行为,AWS将抛出完全正常的实例,直到数据库重新启动,这将导致我的账单增加。 我可以去掉DataSo

  • 在我们的Spring Boot应用程序中,我们使用对可以访问我们应用程序的用户进行身份验证。我们在身份验证功能上没有看到任何问题,但是当我们点击URL时,我们会得到LDAP的以下状态: 在跟踪此空指针异常时,我们在尝试访问时获得此跟踪: 最后,下面是我们的安全配置的样子: 现在我们确实在控制台中得到一条消息,说,但这是我们的预期,我们对此很满意。看来健康终点并不尊重这一点。我不知道这是我们的代码的

  • http://localhost:8080/myapp/apphealth 只需要名称更改,而不需要执行器/运行状况的响应。有可能吗?

  • 我们正在尝试healthcheck一个Spring Boot应用程序,我们正在计划使用Spring Boot执行器health来获得健康状态。 令人困惑的是,当CassandraHealthIndicator、DiskSpaceHealthIndicator、DataSourceHealthIndicator、ElasticsearchHealthIndicator、JmsHealthIndica

  • 目前,我们有一个集群应用程序运行Spring Boot(1.5.2)。有时,命中/health致动器endpoint的健康检查以503响应。但是,日志中没有任何内容表明服务不可用的原因。有没有办法得到一个更准确的原因为什么503是生产?