qq外国注册网站,广东商城网站建设,网站主题服务,南宁制作网站公司什么是健康检测#xff1f; 在真实环境中服务提供方是以一个集群的方式提供服务#xff0c;这对于服务调用方来说#xff0c;就是一个接口会有多个服务提供方同时提供服务#xff0c;调用方在每次发起请求的时候都可以拿到一个可用的连接。 健康检测#xff0c;能帮助从连…什么是健康检测 在真实环境中服务提供方是以一个集群的方式提供服务这对于服务调用方来说就是一个接口会有多个服务提供方同时提供服务调用方在每次发起请求的时候都可以拿到一个可用的连接。 健康检测能帮助从连接列表里面过滤掉一些存在问题的节点避免在发请求的时候选择出有问题的节点而影响业务。
终极解决方案是让调用方实时感知到节点的状态变化。
健康检测的逻辑
服务调用方每隔一段时间就问一下服务提供方“兄弟你还好吧”然后服务提供方很诚实地告诉调用方它目前的状态。
服务器健康三个状态
健康状态建立连接成功并且心跳探活也一直成功亚健康状态建立连接成功但是心跳请求连续失败死亡状态建立连接失败。
节点的状态并不是固定不变的它会根据心跳或者重连的结果来动态变化具体状态间转换图如下 可用率计算方式是某一个时间窗口内接口调用成功次数的百分比成功次数/总调用次数。
当可用率低于某个比例就认为这个节点存在问题把它挪到亚健康列表这样既考虑了高低频的调用接口也兼顾了接口响应时间不同的问题。 应用僵死TCP连接健康端口正常让每个应用实例提供一个“健康检测”URL检测程序定时访问该URL然后根据响应结果来进行存活判断这样可以防止僵死状态的误判。 但是检测程序如果与目标机器之间存在网络问题就可能存在误判几率实际目标机器是正常的但是因为网络原因产生误判。
有一个办法可以减少误判的几率那就是把检测程序部署在多个机器分布在不同的机架甚至不同的机房。这样网络同时故障的概率非常低只要任意一个检测程序实例访问目标机器正常就可以说明该目标机器正常。