【Java高级工程师蜕变之路】061 分布式系统设计策略之心跳检测
本文阐述了分布式系统中常见的设计策略。
分布式系统设计策略
2022/03/01 校对完成
文章更新历史
2022/03/01 初稿。
分布式系统中需要解决的问题
- 如何检测当前节点是否存活?
- 如何保障高可用
- 容错处理
- 负载均衡
心跳检测
检测节点故障的通用手段:心跳检测
心跳,就是以固定的频率向其他节点汇报当前节点状态的方式。收到心跳,一般可以认为一个节点和现在的网络是良好的。
心跳汇报时,一般会携带附加状态、元数据信息等,便于管理。
image-20220410224103189
若Sever没有收到Node3的心跳时,Server认为Node3失联。
但是失联只是Node3失去联系,不代表Node3存在故障,有可能是Node3处于繁忙状态,导致调用检测超时,也有可能Server与Node3直接出现网络闪断或者链路故障。
因此,心跳不是万能的。收到心跳可以确认正常,但是收不到心跳,不能认定该节点已经死亡。这时候,可以通过一些方法帮助Server做决定:
周期性心跳检测机制、累计失效检测机制。