【发布时间】:2020-07-08 04:46:46
【问题描述】:
有什么方法可以在 Spring Boot 应用程序上支持多个健康端点?
原因如下:标准执行器健康检查非常棒,内置检查非常棒,自定义选项非常棒 - 对于单个用例:报告一般应用程序健康状况。
但我想从 AWS Elastic Load Balancer / AutoScaling Group 调用一些东西。默认情况下,如果实例未通过健康检查,ELB/ASG 将终止它并用新实例替换它。问题是一些健康检查,如 DataSourceHealthIndicator,如果数据库关闭,将报告 DOWN,但我的应用程序实例在其他方面非常健康。如果我使用默认行为,AWS 将抛出完全健康的实例,直到数据库恢复正常,这将增加我的账单。
我可以摆脱 DataSourceHealthIndicator,但我喜欢将它用于一般健康检查目的。所以我真正想要的是两个不同的端点用于两个不同的目的,例如:
/health - 一般应用程序运行状况 /ec2Health - 忽略与 EC2 实例无关的方面,例如数据库中断。
希望这是有道理的。
【问题讨论】:
-
你用的是什么版本的spring boot?如果您只想检查应用程序是否能够响应 HTTP 请求并且其外部资源都没有下降,那么编写自己的运行状况检查相当简单
标签: spring-boot amazon-elb spring-boot-actuator