我们的情况是,我们有大量的Spring Boot应用程序运行在容器(在OpenShift上)中,这些容器访问集中的基础设施(在pod外部),如数据库、队列等。
如果一个中央基础设施坏了,健康检查会返回“不健康”(这是正确的)。问题是,活跃度检查看到了这一点,并重新启动了pod(就绪检查然后看到它也下降了,所以不会启动应用程序)。当只有几个应用程序可用时,这是很好的,但如果许多(可能有数百个)应用程序都在使用它,它会强制所有应用程序重新启动(崩溃循环)。
>
使用促动器检查是否活跃/就绪是检查Spring Boot Pod中是否有健康应用程序的实际方法。您的应用程序,一旦启动,理想情况下应该不会关闭或变得不健康如果一个中心部分,如DB或队列服务关闭,理想情况下,您应该添加某种弹性,可以连接到备用的DR站点,或者等待一定时间,中心服务恢复,应用程序重新连接。这更多的是后端的技术故障,导致应用程序在干净利落地启动后出现功能故障。
是的,活跃和准备都是必要的,因为它们都有不同的目的。读这个
在我以前的一个项目中,用于准备就绪的设置大约是30秒,活跃度大约是90秒,但老实说,这完全取决于您的应用程序,如果您的应用程序需要1分钟启动,这就是您的准备就绪时间应该配置的,并且您的活跃度应该考虑到相同的因素,以及您的后端服务进行故障转移切换所需的任何时间。
希望这有帮助。
{“Status”:“Down”} 我需要做什么才能显示自定义健康状况指示器?
对于我一直在开发的一个微服务,我创建了一个自定义健康检查类,扩展了AbstractHealthIndicator,并能够在中获得输出 但当我向领事注册服务时,健康检查状态为失败。 尝试将执行器url配置为领事健康检查为spring。云领事发现健康检查url=http://localhost:8080/actuator/health。但它仍然失败,出现错误http://localhost:8566/
我们正在尝试healthcheck一个Spring Boot应用程序,我们正在计划使用Spring Boot执行器health来获得健康状态。 令人困惑的是,当CassandraHealthIndicator、DiskSpaceHealthIndicator、DataSourceHealthIndicator、ElasticsearchHealthIndicator、JmsHealthIndica
但我想要一些我可以调用从AWS弹性负载均衡器/自动缩放组。默认情况下,如果一个实例未通过健康检查,ELB/ASG将终止它并用一个新的实例替换它。问题是一些健康检查,如DataSourceHealthIndicator,会在数据库关闭时向下报告,但我的应用程序实例在其他方面是完全健康的。如果我使用默认行为,AWS将抛出完全正常的实例,直到数据库重新启动,这将导致我的账单增加。 我可以去掉DataSo
第一次尝试执行器依赖关系时,我将其配置为选入 当我在本地调用时,大约需要1.4秒来响应。请记住,这是一个本地调用,来自服务器的同一台机器。 如果我创建了一个以空响应进行响应的常规endpoint,则请求只需几毫秒。 这正常吗?我能让它回复快一点吗?
目前,我们有一个集群应用程序运行Spring Boot(1.5.2)。有时,命中/health致动器endpoint的健康检查以503响应。但是,日志中没有任何内容表明服务不可用的原因。有没有办法得到一个更准确的原因为什么503是生产?