Spring Openshift/Kubernetes中的弹簧靴执行器健康检查
在这种情况下,我们有大量的Spring引导应用程序运行在容器(在OpenShift上)中,这些容器访问集中式基础设施(pod外部),如数据库、队列等 如果某个中央基础设施出现故障,健康检查将返回“不健康”(这是理所当然的)。问题是,活跃性检查看到了这一点,并重新启动pod(就绪性检查随后发现pod也关闭了,因此不会启动应用程序)。当只有少数应用程序可用时,这是很好的,但如果许多(可能有数百个)应用程序正在使用它,则会强制所有应用程序重新启动(崩溃循环) 我知道中央基础设施瘫痪是件坏事。它“应该”永远不会发生。但是如果真是这样(墨菲定律),它就会把容器扔进一个疯狂的状态。看起来我们不是做错了什么,就是应该重新配置 有几个问题:Spring Openshift/Kubernetes中的弹簧靴执行器健康检查,spring,spring-boot,kubernetes,openshift,spring-boot-actuator,Spring,Spring Boot,Kubernetes,Openshift,Spring Boot Actuator,在这种情况下,我们有大量的Spring引导应用程序运行在容器(在OpenShift上)中,这些容器访问集中式基础设施(pod外部),如数据库、队列等 如果某个中央基础设施出现故障,健康检查将返回“不健康”(这是理所当然的)。问题是,活跃性检查看到了这一点,并重新启动pod(就绪性检查随后发现pod也关闭了,因此不会启动应用程序)。当只有少数应用程序可用时,这是很好的,但如果许多(可能有数百个)应用程序正在使用它,则会强制所有应用程序重新启动(崩溃循环) 我知道中央基础设施瘫痪是件坏事。它“应该”
- 如果您被迫从运行在OpenShift/Kubernetes上的容器中的Spring boot应用程序中使用集中式基础设施,是否仍应为后端启用所有执行器检查?(反弹容器实际上不会修复后端的故障)
- 是否应为活跃度探针和准备度探针设置/执行器/健康端点
- folk在spring boot应用程序中使用了哪些常见的准备就绪/活力探测设置?(超时/间隔/等)
希望这能有所帮助。您知道如何全局配置后端连接以在spring boot中重试吗?它必须以某种方式让健康检查成功,否则Liveity probe中的健康检查超时将在等待它重试直到它恢复时启动。您需要应用高可用性DB或应用断路器模式。阅读更多细节