【问题标题】:spring boot application on elastic beanstalk - health check fails弹性beantalk上的spring boot应用程序-健康检查失败
【发布时间】:2018-04-21 17:23:34
【问题描述】:

我已经在 elastic beanstalk 上部署了我的 fat jar,它正在侦听端口 5000 并成功连接到端口 3306 上的 RDS mysql 实例。

但是,当我尝试访问我的 API 时,我收到 503 后端服务器过载等错误。我查了一下,似乎是健康检查失败

在本地,我可以使用 spring boot actuator 提供的 localhost:5000/health 检查系统健康状况,但是当我将 /health 设置为负载均衡器的端点以进行健康检查时,它会失败。由于我没有运行任何“健康实例”,因为它们未能通过健康检查,因此服务器无法用于 REST 请求。

有人知道如何让负载均衡器成功 ping 应用程序进行健康检查吗?

【问题讨论】:

  • 什么类型的负载均衡器?
  • 什么是/health?这是目录还是 HTML 页面?如果是目录,则需要指定页面的实际完整路径。
  • /health 是 Spring Boot 执行器包提供的 HTTP 端点。如果服务器已启动,则返回 200 ok 和 JSON {"status":up}
  • 你找到答案了吗?

标签: amazon-web-services spring-boot amazon-elastic-beanstalk


【解决方案1】:

这取决于你的 spring boot 配置,默认情况下:

健康端点映射到/actuator/health

Part V. Spring Boot Actuator: Production-ready features - Endpoinds

所以你在负载均衡器上的配置应该是这样的。

  • HTTP 代码:200
  • 路径:/actuator/health

如果您已经设置了属性server.servlet.context-path,那么您必须将其添加到路径的前缀。

应用不同状态的响应码是:

  • 关闭:SERVICE_UNAVAILABLE (503)
  • OUT_OF_SERVICE:SERVICE_UNAVAILABLE (503)
  • UP:默认无映射,所以http状态为200
  • UNKNOWN:默认没有映射,所以http状态为200

您可以阅读详情here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-14
    • 1970-01-01
    • 2018-07-11
    • 1970-01-01
    • 1970-01-01
    • 2019-05-05
    • 1970-01-01
    • 2019-03-08
    相关资源
    最近更新 更多