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

如何更改Spring引导健康执行器的测试结果?

卫俊誉
2023-03-14

使用Spring Boot健康执行器时
http://localhost:8080/health

{"status":"UP","diskSpace":{"status":"UP","total":122588196864,"free":59227926528,"threshold":10485760},"mongo":{"status":"UP","version":"3.2.6"}}


现在我要检查其他条件,以便检查当状态为down时是否触发依赖操作。我想要像

{"status":"Down"}

共有1个答案

柴星津
2023-03-14

您可以编写自定义的“运行状况指示器”,它将覆盖默认的运行状况指示器并编写您的实现(例如,始终将状态返回为down)。

现在,因为这只需要测试应用程序,所以我建议用@profile注释它,这样它只有在应用程序启动时才被激活,比如test配置文件,例如:

@Component
@Profile("test")
public class MyHealthIndicator implements HealthIndicator {

这样,如果使用test以外的任何配置文件启动应用程序,将使用默认的healthindicator

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

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

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

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

  • 第一次尝试执行器依赖关系时,我将其配置为选入 当我在本地调用时,大约需要1.4秒来响应。请记住,这是一个本地调用,来自服务器的同一台机器。 如果我创建了一个以空响应进行响应的常规endpoint,则请求只需几毫秒。 这正常吗?我能让它回复快一点吗?

  • 对于我一直在开发的一个微服务,我创建了一个自定义健康检查类,扩展了AbstractHealthIndicator,并能够在中获得输出 但当我向领事注册服务时,健康检查状态为失败。 尝试将执行器url配置为领事健康检查为spring。云领事发现健康检查url=http://localhost:8080/actuator/health。但它仍然失败,出现错误http://localhost:8566/