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

将领事健康检查配置为Spring引导执行器“/健康”

李景天
2023-03-14

对于我一直在开发的一个微服务,我创建了一个自定义健康检查类,扩展了AbstractHealthIndicator,并能够在中获得输出

http://localhost:8080/actuator/health

但当我向领事注册服务时,健康检查状态为失败。

尝试将执行器url配置为领事健康检查为spring。云领事发现健康检查url=http://localhost:8080/actuator/health。但它仍然失败,出现错误http://localhost:8566/actuator/health:拨打tcp 127.0.0.1:8566:连接:连接被拒绝

如果我尝试使用健康检查路径: /actuator/health,它根本没有采用此路径,默认为超文本传输协议://QINDW062.it.local:8566/my-health-check

有什么建议吗?

编辑:

共有1个答案

柯曜文
2023-03-14

您需要在配置文件(例如application.yml)中设置一个指向健康检查endpoint的属性:

spring:
  cloud:
    consul:
      discovery:
        healthCheckPath: /actuator/health

您还可以使用以下属性决定健康检查的时间间隔(Consor调用健康检查的频率):

spring:
  cloud:
    consul:
      discovery:
        healthCheckInterval: 20s
 类似资料:
  • 我有一个带有2个主机的consur堆栈(用于测试)。1台主机仅在引导模式下运行consur,另一台主机在注册器下运行客户端模式,用于自动注册服务(均在docker上运行)。现在,如果我启动一个应用程序(例如8080端口)容器,注册器将检测并将其注册到Consor,但它没有我想要的http检查。我发现Registrator有自动注册健康检查的选项是将SERVICE\u 8080\u check\u

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

  • 我们的情况是,我们有大量的Spring Boot应用程序运行在容器(在OpenShift上)中,这些容器访问集中的基础设施(在pod外部),如数据库、队列等。 如果一个中央基础设施坏了,健康检查会返回“不健康”(这是正确的)。问题是,活跃度检查看到了这一点,并重新启动了pod(就绪检查然后看到它也下降了,所以不会启动应用程序)。当只有几个应用程序可用时,这是很好的,但如果许多(可能有数百个)应用程

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

  • 在设置ELB健康检查的对话框中,它会声明: 如果实例未通过健康检查,它将自动从负载均衡器中删除。自定义健康检查以满足您的特定需要。 当健康检查失败时,将从ELB后面删除实例。我的问题是围绕“健康门槛”设置。当你悬停在帮助上时,它会说: 在声明EC2实例健康之前连续运行状况检查成功的次数。 如果实例声明为健康的,它是否被拉回负载平衡组?

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