当前位置: 首页 > news >正文

RPC-健康检测机制

什么是健康检测?

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

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

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

健康检测的逻辑

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

服务器健康三个状态:

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

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

image-20241105224936086

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

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

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

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

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

http://www.lryc.cn/news/486896.html

相关文章:

  • 关于Java处理Excel常规列表记录,并入库的操作
  • 深入理解 JavaScript 中的 Array.find() 方法:原理、性能优势与实用案例详解
  • 计算机网络安全 —— 对称加密算法 DES (一)
  • 5. ARM_指令集
  • Jenkins的pipeline Script的 每个组件的详细讲解
  • Tomcat 和 Netty 的区别及应用场景分析
  • 6.C操作符详解,深入探索操作符与字符串处理
  • 生数科技发布 Vidu 1.5 新版本,引领视频大模型新潮流
  • CentOS 7 aarch64停止更新后安装gcc8 —— 筑梦之路
  • WPF下 DataGrid加入序号列
  • iOS UI 自动化 手势右滑退出当前页面
  • 《MySQL 实战教程:从零开始到高手进阶》
  • 第27天 安全开发-PHP应用TP 框架路由访问对象操作内置过滤绕过核心漏洞
  • 应用系统开发(12) Zync中实现数字相敏检波
  • 栈Stack和队列Queue
  • uniapp 微信小程序地图标记点、聚合点/根据缩放重合点,根据缩放登记显示气泡marik标点
  • Percona XtraBackup备份docker版本mysql 5.7
  • C++:关联式容器的介绍及map与set的使用
  • 一文说清:Linux下C++静态库的封装和调用
  • 【Java 学习】数据类型、变量、运算符、条件控制语句
  • 【软考】系统架构设计师-数据库设计基础
  • 【Jmeter相关】
  • 拍立淘按图搜索API接口系列,返回示例图参考
  • OSG开发笔记(三十二):深入理解相机视口、制作支持与主视图同步变换旋转的相机HUD
  • 2024RISC-V中国峰会 演讲幻灯片和视频回放均已公开
  • 河道无人机雷达测流监测系统由哪几部分组成?
  • 28.<Spring博客系统⑤(部署的整个过程(CentOS))>
  • OpenAI震撼发布:桌面版ChatGPT,Windows macOS双平台AI编程体验!
  • 香港站群服务器有助于提升网站在搜索引擎中的排名
  • YOLOX:使用自己数据集训练模型及改进--1.YOLOX环境搭建及运行