RPC-健康检测机制

什么是健康检测?

在真实环境中服务提供方是以一个集群的方式提供服务,这对于服务调用方来说,就是一个接口会有多个服务提供方同时提供服务,调用方在每次发起请求的时候都可以拿到一个可用的连接。

健康检测,能帮助从连接列表里面过滤掉一些存在问题的节点,避免在发请求的时候选择出有问题的节点而影响业务。

终极解决方案是让调用方实时感知到节点的状态变化

健康检测的逻辑

服务调用方每隔一段时间就问一下服务提供方,"兄弟,你还好吧?",然后服务提供方很诚实地告诉调用方它目前的状态。

服务器健康三个状态:

  1. 健康状态:建立连接成功,并且心跳探活也一直成功;
  2. 亚健康状态:建立连接成功,但是心跳请求连续失败;
  3. 死亡状态:建立连接失败。

节点的状态并不是固定不变的,它会根据心跳或者重连的结果来动态变化,具体状态间转换图如下:

可用率:计算方式是某一个时间窗口 内接口调用成功次数的百分比(成功次数/总调用次数)。

当可用率低于某个比例就认为这个节点存在问题,把它挪到亚健康列表,这样既考虑了高低频的调用接口,也兼顾了接口响应时间不同的问题。

应用僵死(TCP连接健康,端口正常),让每个应用实例提供一个"健康检测 "URL检测程序定时访问该URL,然后根据响应结果来进行存活判断,这样可以防止僵死状态的误判。

但是检测程序如果与目标机器之间存在网络问题,就可能存在误判几率,实际目标机器是正常的,但是因为网络原因产生误判。

有一个办法可以减少误判的几率,那就是把检测程序部署在多个机器,分布在不同的机架,甚至不同的机房。这样网络同时故障的概率非常低,只要任意一个检测程序实例访问目标机器正常,就可以说明该目标机器正常。

相关推荐
KaMeidebaby24 分钟前
卡梅德生物技术快报 | 核酸适配体文库测序:核酸适配体文库测序的技术原理、实验流程与数据解析
前端·网络·数据库·人工智能·算法
上海云盾商务经理杨杨31 分钟前
2026 生产级 Linux 内核抗 DDoS 调优!全套 sysctl 配置直接套用
网络·安全·ddos
rcms152702692181 小时前
CISCO 73-11029-01 印刷电路板
网络
韩楚风1 小时前
【参天引擎】一次宕机后的数据恢复,让我把 Cantian 持久化与恢复的六大机制全搞明白了
服务器·网络·数据库·分布式·mysql·架构·cantian
星恒讯工业路由器2 小时前
工业以太网核心技术解析
网络·物联网·网络拓扑·信息与通信·业以太网·网络冗余
云栖梦泽在2 小时前
稳如狗网络工具箱:IP、DNS、WebRTC、测速、连通性和全球延迟检测工具简明介绍
网络·网络协议·tcp/ip·网络安全·性能优化·webrtc
网络安全零基础教程2 小时前
网络安全春招面试避坑与复盘指南
linux·网络·安全·web安全·面试·职场和发展
kirs_ur2 小时前
SSD 安全特性 — 加密与 TCG Opal
服务器·网络·安全
Mortalbreeze2 小时前
深入 Linux Socket 编程:端口号、网络字节序与 struct sockaddr 详解
linux·服务器·网络·c++
AI产品库4 小时前
从沙盒到生产库:OpenAI GPT-5.6 Sol 在评测中自主入侵 Hugging Face
网络·gpt