spring health
为什么
我们新JavaScript客户端应用程序会定期调用Grails后端的/health
端点,以确定离线状态。 事情开始变得“有趣”。
我们免费获得该端点,因为Grails基于Spring Boot,而Spring Boot带有一个名为Spring Boot Actuator的子项目。
这给了我们许多端点 ,使我们可以监视我们的应用程序并与之交互,包括/health
返回健康信息。
因此,我们的JS客户端会检查它是否可以到达此/health
端点(每隔几秒钟执行一次),以确定用户是在线还是离线。 没什么好想的,以后我们可能会切换到仅使用Google主页之类的东西,但是现在可以了。
健康检查失败
在localhost
一切似乎总是很好,但是一旦我有了Jenkins管道,最终在每次构建后将应用程序部署到我们的测试服务器上,然后我们开始在那里验证应用程序,一切就变得很有趣。
通常情况下,我们的通话情况非常好。
GET https://tst.example.com/health 200 ()
GET https://tst.example.com/health 200 ()
GET https://tst.example.com/health 200 ()
etc
每隔几秒钟,我们就会在Chrome检查器中看到错误累积的情况。 运行状况检查将失败,并且HTTP状态代码503 Service unavailable
长时间503 Service unavailable
。
GET https://tst.example.com/health