如何覆盖Spring Boot健康响应代码

时间:2018-02-18 10:15:28

标签: spring-boot spring-boot-actuator

如何基于其状态覆盖执行器的默认/健康状况响应状态代码:DOWN,UP,UNKNOWN等等?例如,如果运行状况为“UP”,则响应代码应为200.如果DOWN:400,未知300.是否有任何解决方法可以实现此目的?

注意:我不想要自己的健康端点。相反,现有的需要重写。

4 个答案:

答案 0 :(得分:3)

从春季启动文档中,这可以通过一些属性更改轻松实现,

https://docs.spring.io/spring-boot/docs/current/reference/html/production-ready-endpoints.html#_writing_custom_healthindicators

[ { "id": 1, "name": "Test", "relation2": [ { "id": 3, "col2_id": 1, "col3_id": 1, "col4": "1", "pivot": { "col1_id": 1, "col2_id": 2, "is_column1": "1" } } ] } ]

endpoints.health.mapping.DOWN=400

endpoints.health.mapping.UP=200

答案 1 :(得分:1)

似乎the documentation已更新。运行状况检查状态映射的当前属性是:

management.health.status.http-mapping.DOWN=400
management.health.status.http-mapping.UP=200

答案 2 :(得分:0)

状态代码通过application properties进行配置。这些是默认设置:

management.health.status.http-mapping:
  UP: 200
  DOWN: 503
  OUT_OF_SERVICE: 503
  UNKNOWN: 200

对于Spring Boot 1.x,该属性为endpoints.health.mapping

使用您建议的代码是一个坏主意,因为它们已经意味着其他事情。如果您希望上游系统将其与UNKNOWN: 500区别对待,则可以进行合理的更改是设置UP

答案 3 :(得分:0)

默认情况下,OUT_OF_SERVICEDOWN 映射到 503。任何未映射的健康状态,包括 UP,映射到 200。

如其他答案中所述,这些值可以被覆盖。