心跳探测机制的问题:通常心跳探测实现采用7层健康检查(4层健康检查局限性太大这里我们就忽略吧),传统7层健康检查实现是检查特定路径下status文件是否存在并通过HTTP Status Code来进行区分,这已经是脚本或者人肉运维时代的机制。我们现在强调devops,甚至infrastructure as code,需要系统有自动部署的能力,status文件也就退化成了镜像里的一个普通文件,此时7层和4层检查的差异也就不大了。另外跟Server的7层健康检查实现有关,当系统出现异常的情况下,心跳探测请求不一定能反应出系统的异常。就算我们对其实现进行优化,可以让系统异常的情况下返回404,但是也解决不了心跳探测的网络链路跟client实际访问server的网络链路不一致的问题。