加入收藏 | 设为首页 | 会员中心 | 我要投稿 桂林站长网 (https://www.0773zz.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长资讯 > 评论 > 正文

DataNode 如何向 NameNode 发送心跳的

发布时间:2021-03-25 17:03:17 所属栏目:评论 来源:互联网
导读:、分布式系统中的心跳技术 心跳是分布式技术中常用的技术手段。心跳,顾名思义,就是以固定的频率向其他节点汇报当前节点状态的方式。收到心跳,一般可以认为发送心跳的这个节点在当前的网络拓扑中是良好的。 当然,心跳汇报时,一般也会携带一些附加的状态

、分布式系统中的心跳技术

心跳是分布式技术中常用的技术手段。心跳,顾名思义,就是以固定的频率向其他节点汇报当前节点状态的方式。收到心跳,一般可以认为发送心跳的这个节点在当前的网络拓扑中是良好的。

当然,心跳汇报时,一般也会携带一些附加的状态、元数据信息、当前节点的信息,以便其他节点管理。

心跳有两种方式:

  • 单向的 heartbeat;
  • 交互的 ping-pong;

第一种方式下,target 进程需要定时给 detector 发送消息,告知自己的存活性。而 detector 无需给 target 回复任何消息,只是每隔一段时间去检测 target 进程有没有汇报。

第二种方式更为常见,比如我们的 redis 就是采用这种方式:

ctor 发起检测,如果 target 连续 N 次不回复消息,那么 detector 就认为其处于 non-active 状态。

那么常用的心跳检测机制有哪些:

(1)传统的周期检测心跳机制

其检测方法很粗暴:设定一个超时时间 T,只要在 T 之内没有收到对方的心跳包便可认为对方宕机,方法简单有效,使用比较广泛。

所以这个方法的重点就在于这个超时时间 T 的设置,设置的太短了,有可能会因为当前网络阻塞导致误判,让这个节点下线,产生其他不必要的后果;设置的太长,会导致判断“迟缓”,所以需要综合各种情况来权衡和设定。

HDFS 就是使用的这种心跳机制。

(2)累积失效检测机制

随着网路负载的加大,Server 心跳的接收时间可能会大于上限值 T;但当网络压力减少时,心跳接收时间又会小于 T ,如果用一成不变的T 来反映心跳状况,则会造成判断”迟缓“或误判。这个时候我们可以计算心跳延迟的概率,用这个概率来判断是否发生故障,提

(编辑:桂林站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读